什么是时序数据
时序数据(时间序列数据)是带时间戳、按时间顺序不断产生的数据。工业里的温度、压力、转速、电流、设备状态,每秒周期性采集,都是典型时序数据。
它有几个鲜明特点:
- 写入量大、且基本是追加,很少修改历史
- 每条都带时间,查询几乎都带时间范围
- 数据结构高度同质(都是“设备+点位+值+时间”)
- 需要按时间做聚合(每分钟平均、每小时最大)
- 需要长期保留、但太久远的数据可以降精度或过期
普通数据库为什么不够用
通用关系数据库为增删改查和复杂关系设计,面对“持续高频追加 + 海量时间范围查询”会出现写入瓶颈、索引膨胀、磁盘暴涨、聚合缓慢(详见《用 MySQL 存高频点位的教训》)。
时序数据库的四大核心能力
1. 高吞吐写入 按时间顺序追加,写入路径优化,轻松支撑每秒成千上万点。
2. 高压缩比 列式存储结合同类型数据压缩,同样的历史占用空间远小于行存关系库。
3. 时间窗口聚合与降采样 原生支持按时间分桶统计(如每 5 分钟平均值),并可把高精度原始数据自动降成低精度长期数据。
4. 数据保留策略(Retention) 可以设定原始数据保留多久、聚合数据保留多久,到期自动清理,不用手工删海量数据。
常见产品方向
- TDengine:国产,工业物联网场景优化,SQL 友好、高压缩,信创适配好
- TimescaleDB:基于 PostgreSQL,完整 SQL、关系生态复用好
- VictoriaMetrics:云原生、监控指标场景、Prometheus 兼容
- InfluxDB:生态成熟,原型和监控场景常见
适用与不适用
适合:设备点位、传感器、监控指标等海量带时间戳的数据。
不适合:用户、权限、工单、配置这类需要复杂关系和事务的数据——这些仍应放普通关系库。
工业系统里的典型位置
采集 → 消息队列 → 时序数据库(历史/分析) → Grafana/报表/算法
↘ 关系数据库(配置/业务/用户)
一句话总结:**时序数据库就是为“随时间源源不断产生、还要按时间快速回看”的数据量身定做的仓库。**工业监控的数据恰好就是这个形态,这正是它越来越重要的原因。