时序数据有什么特征

物联网数据天然带时间戳:传感器读数、设备状态、GPS 坐标,每条记录都是「时间 + 测点 + 数值」。这类数据只追加、极少更新、按时间查询,用关系型数据库存会既浪费又变慢。

时序数据库为这种模式优化:列式存储、高压缩率、时间分区、降采样聚合。一台设备一天上千条记录,十万台设备就是千万级写入,选对存储是第一步。

时序数据的特点决定了它的存储方式:追加为主,按时间聚合。
时序三特征
  • 追加几乎不更新。。
  • 时间查询按窗口。。
  • 高频批量写入。。
物联网时序数据库配图:发光数据库圆柱、时间轴折线与时钟轮廓
数据入仓,趋势可见。

选型:TDengine 与 InfluxDB

TDengine 是国产开源时序库,针对物联网场景做了超级表与标签分离,写入吞吐高、自带降采样;InfluxDB 生态成熟、查询语言友好,适合中小规模快速起步。

选型维度:写入吞吐、查询延迟、集群能力、运维成本、与现有技术栈的契合度。数据量百万级以下两者都轻松,千万级以上优先看 TDengine 或云托管的时序服务。

数据建模与写入

建模核心是「测点表 + 标签表」:设备元信息(位置、型号、固件版本)放标签,随时间变化的读数放测点。查询按标签过滤设备,按时间取窗口数据。

-- TDengine 建表:超级表 + 子表
CREATE STABLE meters (ts TIMESTAMP, val FLOAT)
  TAGS (device_id NCHAR(32), site NCHAR(32));
CREATE TABLE meter_001
  USING meters TAGS ('d001', '工厂A');

写入用批量插入,一次带多条记录;数据通过消息队列进入,保证顺序与背压。高频测点按需降频,原始数据与聚合数据分层存储。

压缩与分区策略

时序库的压缩率通常能达到十几倍:相同测点数值变化小、时间戳规律性强。分区按天或月切分,过期数据直接删分区,不用逐行清理。

保留策略分级:原始数据保留三十天,分钟级聚合保留一年,小时级聚合永久保存。成本与可用性平衡的关键就在保留策略设计。

查询与分析

典型查询:某设备最近一小时温度曲线、某站点设备平均电量、异常波动检测。时序库原生支持时间窗口聚合,查询语句简洁。

-- 最近一小时每五分钟平均温度
SELECT AVG(val) FROM meter_001
WHERE ts >= NOW - 1h
INTERVAL(5m);

聚合结果直接喂给可视化看板与告警引擎,趋势图、热力图、异常标注都在查询层完成。