TDengine 官方最新文档以下是建模最佳实践
【摘要】 一、核心建模三原则一个数据采集点(一块表计)→ 一张子表:表名直接用表计唯一 ID(如 d1001),保证单表单写入者、追加写、按时间连续存储,写入/查询/压缩比最优同类设备 → 一张超级表(STable):超级表是模板(时间戳 + 度量列 + 标签列),本身不存数据;百万级子表统一由超级表管理度量与标签的划分标准:随时间变化的采集量(电流、电压、流量、压力)→ 普通列静态/准静态属性(表计...
一、核心建模三原则
-
一个数据采集点(一块表计)→ 一张子表:表名直接用表计唯一 ID(如
d1001),保证单表单写入者、追加写、按时间连续存储,写入/查询/压缩比最优 -
同类设备 → 一张超级表(STable):超级表是模板(时间戳 + 度量列 + 标签列),本身不存数据;百万级子表统一由超级表管理
-
度量与标签的划分标准:
-
随时间变化的采集量(电流、电压、流量、压力)→ 普通列
-
静态/准静态属性(表计编号、台区、安装位置、口径、厂商型号)→ 标签(TAGS):不随数据增长膨胀、可被索引过滤、后期可
ALTER增删改
-
二、标准建表示例(电表)
sq
| 决策点 | 建议 |
|---|---|
| 设备类型 | 电表、水表、气表、热表 Schema 不同,分别建超级表,不要混入一张大表 |
| 数据库划分 | 采集频率/保留期/副本/块大小差异大的数据放不同 DATABASE(如负荷曲线库 KEEP 180、冻结结算库 KEEP 3650) |
| 多采集频率 | 同一设备的不同频率采集点拆成不同子表(不同超级表),避免大量 NULL |
| 结算/冻结数据 | 不要靠原始高频数据现算,用**流计算(CREATE STREAM)**降采样落成日/月粒度子表 |
| 事件类稀疏数据 | 开盖、掉电、阀门异常等告警事件单独建超级表(事件表 ≠ 量测表) |
| 累计值 | 存表底累计值(如 kwh_total),用 LAST - FIRST 求时段用量,不要只存增量 |
| 决策点 | 建议 |
|---|---|
| 设备类型 | 电表、水表、气表、热表 Schema 不同,分别建超级表,不要混入一张大表 |
| 数据库划分 | 采集频率/保留期/副本/块大小差异大的数据放不同 DATABASE(如负荷曲线库 KEEP 180、冻结结算库 KEEP 3650) |
| 多采集频率 | 同一设备的不同频率采集点拆成不同子表(不同超级表),避免大量 NULL |
| 结算/冻结数据 | 不要靠原始高频数据现算,用**流计算(CREATE STREAM)**降采样落成日/月粒度子表 |
| 事件类稀疏数据 | 开盖、掉电、阀门异常等告警事件单独建超级表(事件表 ≠ 量测表) |
| 累计值 | 存表底累计值(如 kwh_total),用 LAST - FIRST 求时段用量,不要只存增量 |
【版权声明】本文为华为云社区用户翻译文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,
举报邮箱:cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)