IoT物联网-时序数据库

时序数据库(Time Series Database, TSDB)在 IoT(物联网)里是核心基础设施之一,几乎所有“设备 + 传感器 + 实时数据”场景都会用到。

一、什么是时序数据库?

时序数据 =带时间的连续数据

例如:

2026-07-01 10:00:01 温度=26.3℃ 2026-07-01 10:00:02 温度=26.4℃ 2026-07-01 10:00:03 温度=26.5℃

特点:

  • 高频写入(每秒/毫秒)
  • 按时间查询
  • 数据持续增长
  • 基本不更新(追加为主)

二、IoT为什么必须用时序数据库?

如果不用 TSDB,用 MySQL 会出现:

❌ MySQL问题

  • 写入压力大(每秒上千设备)
  • 索引爆炸
  • 查询慢(按时间范围)
  • 数据量巨大
  • 归档困难

✅ TSDB优势

  • 高吞吐写入(百万级/秒)
  • 压缩率高(10x~90x)
  • 按时间查询极快
  • 自动分区(按时间)
  • 自动降采样(downsampling)

三、IoT典型数据模型

IoT设备数据一般长这样:

设备ID:sensor_001 时间:2026-07-01 10:00:01 温度:26.3 湿度:60% 电压:220V 状态:在线

转换成 TSDB:

measurement: sensor_data tags: device_id = sensor_001 location = building_A fields: temperature = 26.3 humidity = 60 voltage = 220 timestamp = 2026-07-01 10:00:01

四、IoT常见时序数据库

1. InfluxDB(最常见)

特点:

  • 易用
  • SQL-like查询
  • IoT常用

2. TDengine(国内IoT主流)

特点:

  • 超高性能
  • 专为IoT设计
  • 支持超级表(非常适合设备模型)

3. Prometheus

  • 监控系统
  • DevOps常用
  • IoT辅助监控

4. OpenTSDB

  • Hadoop生态
  • 大规模历史数据

五、IoT中的典型应用场景(重点)


1️⃣ 设备实时监控(最核心)

温度传感器 湿度传感器 电压传感器 水位传感器

例如:

机房温度监控: 每秒采集一次

用途:

  • 实时监控设备状态
  • 异常报警

2️⃣ 智慧园区环境监测

智慧园区系统

例如:

  • 空气质量(PM2.5)
  • 温湿度
  • 噪声
  • 光照
园区A栋 10:00 温度 26℃ 10:01 温度 26.2℃ 10:02 温度 26.5℃

3️⃣ 设备运行状态监控

例如:

  • 电梯运行状态
  • 空调运行状态
  • 水泵状态
设备ID: elevator_03 时间 状态 10:00:01 running 10:00:10 idle 10:00:20 alarm

4️⃣ 能耗管理(非常重要)

电表数据: 时间 用电量 10:00 120kWh 10:01 121kWh 10:02 121.5kWh

应用:

  • 节能分析
  • 峰谷用电
  • 成本计算

5️⃣ 视频监控辅助数据(结合RTSP)

你做的智慧园区很典型:

摄像头状态 码流 帧率 在线情况 丢帧率

例如:

camera_01 fps = 25 bitrate = 2Mbps delay = 120ms

6️⃣ 告警系统(实时 + 历史)

温度 > 60℃ → 告警 烟雾检测 → 告警 门禁异常 → 告警

TSDB用于:

  • 记录告警发生时间
  • 统计告警频率
  • 分析趋势

7️⃣ 轨迹与定位(高级IoT)

例如:

  • 人员轨迹
  • 车辆轨迹
  • 资产移动
时间 位置 10:00 A区 10:05 B区 10:10 C区

六、IoT架构中TSDB位置

完整链路:

设备(传感器/摄像头) │ ▼ MQTT / RTSP / HTTP │ ▼ 数据接入层(EMQX / Kafka) │ ▼ 清洗/计算(Flink) │ ▼ 时序数据库(TDengine / InfluxDB) │ ▼ Java业务系统 │ ▼ 大屏/APP

七、TSDB vs MySQL(核心区别)

对比MySQL时序数据库
数据类型结构化时间序列
写入一般极高
查询任意按时间最优
数据更新常更新基本追加
压缩一般极高
IoT适配专用

八、IoT中必须用TSDB的场景

✔ 传感器数据
✔ 设备监控
✔ 能耗系统
✔ 环境监测
✔ 视频状态数据
✔ 告警记录
✔ 轨迹数据


九、一个典型智慧园区例子(重点理解)

智慧园区系统

场景:

园区 10000 个设备:

  • 2000 摄像头
  • 3000 门禁
  • 2000 传感器
  • 3000 电表

数据流:

设备 → MQTT → EMQX → Kafka → Flink → TDengine

查询:

SELECTavg(temperature)FROMsensor_dataWHEREtime>now()-1hGROUPBYdevice_id;

十、总结一句话

👉时序数据库就是 IoT 的“记忆系统”

它负责:

  • 记录设备每一秒状态
  • 支撑实时监控
  • 支撑历史分析
  • 支撑告警与预测