TDengine 官方最新文档以下是建模最佳实践

举报
yd_249127163 发表于 2026/10/23 10:35:16 2026/10/23
【摘要】 一、核心建模三原则一个数据采集点(一块表计)→ 一张子表:表名直接用表计唯一 ID(如 d1001),保证单表单写入者、追加写、按时间连续存储,写入/查询/压缩比最优同类设备 → 一张超级表(STable):超级表是模板(时间戳 + 度量列 + 标签列),本身不存数据;百万级子表统一由超级表管理度量与标签的划分标准:随时间变化的采集量(电流、电压、流量、压力)→ 普通列静态/准静态属性(表计...


一、核心建模三原则

  1. 一个数据采集点(一块表计)→ 一张子表:表名直接用表计唯一 ID(如 d1001),保证单表单写入者、追加写、按时间连续存储,写入/查询/压缩比最优

  2. 同类设备 → 一张超级表(STable):超级表是模板(时间戳 + 度量列 + 标签列),本身不存数据;百万级子表统一由超级表管理

  3. 度量与标签的划分标准:

    • 随时间变化的采集量(电流、电压、流量、压力)→ 普通列

    • 静态/准静态属性(表计编号、台区、安装位置、口径、厂商型号)→ 标签(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)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。