三条设计约束
遥测数据量大、写入频繁、查询以时间范围为主,因此模型要保证三件事:主键稳定(设备标识加时间戳唯一确定一条记录)、语义统一(同名指标在所有设备上含义与单位一致)、结构可演进(新增指标不破坏既有解析)。把连续量测与状态事件混在一起,是后期查询与告警难做的常见原因。
设计项与做法
| 设计项 | 做法 | 原因 |
|---|---|---|
| 主键 | 设备标识加时间戳,必要时再加指标名 | 保证幂等写入与去重 |
| 时间戳 | 采集时间与接收时间分别保存 | 只有接收时间时无法还原真实顺序 |
| 命名与单位 | 全平台统一命名与单位 | 命名不一致会让跨设备聚合失效 |
| 结构演进 | 用可扩展字段承载新增指标 | 避免每加指标就改表结构 |
| 指标与事件分离 | 连续量测与状态变化分别建模 | 两类数据的查询与保留策略不同 |
| 质量标记 | 记录数据来源与可信度 | 区分实测、补传与估算值 |
典型使用场景
- 多站点汇总:命名与单位统一后可直接跨站点聚合
- 趋势与报表:按指标与时间范围查询,避免全表扫描
- 断网补传:采集时间与接收时间并存,能还原真实时序
- 异常分析:质量标记把估算值与实测值分开,统计更可信
模型设计阶段就应确定保留周期与聚合粒度:原始数据、分钟级聚合与小时级聚合的存储成本差别很大,事后补建代价更高。
指标命名与单位一旦被下游报表依赖就很难修改,前期多花时间做评审,比上线后协调所有消费方改动便宜得多。
保留与聚合
原始数据与聚合数据的保留周期应按业务价值分别设定:诊断类数据在原始精度下保留较短时间,趋势与统计类数据以聚合形式长期保留,成本与可回溯性才能兼顾。