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 alarm4️⃣ 能耗管理(非常重要)
电表数据: 时间 用电量 10:00 120kWh 10:01 121kWh 10:02 121.5kWh应用:
- 节能分析
- 峰谷用电
- 成本计算
5️⃣ 视频监控辅助数据(结合RTSP)
你做的智慧园区很典型:
摄像头状态 码流 帧率 在线情况 丢帧率例如:
camera_01 fps = 25 bitrate = 2Mbps delay = 120ms6️⃣ 告警系统(实时 + 历史)
温度 > 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 的“记忆系统”
它负责:
- 记录设备每一秒状态
- 支撑实时监控
- 支撑历史分析
- 支撑告警与预测
