把时序数据库的应用场景讲明白

afcppe 发布于 29 天前 7 次阅读


一、为什么需要时序数据库?

传统关系型数据库(MySQL、PostgreSQL)擅长处理“事务型”数据:账户余额、订单状态、库存数量……这些数据的特点是“当前值最重要”,历史记录往往只用于审计。

而另一类数据——时序数据(Time-Series Data)——则完全不同:

  • 数据量巨大:一条一条地追加,永不更新。
  • 查询模式固定:95% 的查询都围绕“最近 N 分钟/小时/天”展开。
  • 价值随时间衰减:越旧的数据,查询频率越低,精度要求越低。

如果继续用 MySQL 存每秒 10 万条传感器数据,很快就会遇到:

  • 写入吞吐不足;
  • 磁盘空间爆炸;
  • 聚合查询(AVG、MAX、P99)慢到怀疑人生。

于是,时序数据库(Time-Series Database,TSDB)应运而生。


二、时序数据库的 6 大典型应用场景

1. 物联网(IoT)与工业 4.0

关键词:传感器、PLC、SCADA、数字孪生

  • 数据特征:温度、湿度、压力、电流、振动……每秒成千上万条。
  • 查询需求
  • 实时仪表盘:最近 5 分钟产线温度曲线;
  • 异常检测:过去 1 小时振动值 > 阈值;
  • 预测性维护:过去 30 天轴承温度趋势。
  • 代表案例
  • 西门子 MindSphere → InfluxDB;
  • 特斯拉工厂 → 自研 TSDB;
  • 国内某汽车厂 2000 台机床 → TDengine。

代码示例:用 InfluxDB 记录机床主轴温度

-- 建库
CREATE DATABASE factory;

-- 写数据
INSERT spindle_temp,machine=lathe-001 value=65.3 1728720000000000000;

-- 查最近 10 分钟平均温度
SELECT MEAN(value) FROM spindle_temp
WHERE machine='lathe-001'
  AND time >= now() - 10m;

2. 运维监控 & APM

关键词:Prometheus、Grafana、SLI/SLO

  • 数据特征:CPU、内存、磁盘、网络、延迟、错误率。
  • 查询需求
  • 实时告警:CPU > 80% 持续 5 分钟;
  • 容量规划:过去 90 天磁盘增长趋势;
  • 故障复盘:事故发生时所有指标对齐。
  • 代表案例
  • Kubernetes → Prometheus + Thanos;
  • 阿里云 ARMS → 自研 TSDB;
  • 美团 CAT → 基于 OpenTSDB。

代码示例:PromQL 查询 5 分钟平均 CPU 使用率

100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

3. 金融行情 & 量化交易

关键词:Tick、K 线、撮合、回测

  • 数据特征
  • 高频:股票逐笔(Tick)每秒百万级;
  • 多维度:价格、成交量、订单簿深度。
  • 查询需求
  • 实时行情:最新价、涨跌幅;
  • 历史回测:过去 5 年 1 分钟 K 线;
  • 合规审计:某笔订单当时的完整订单簿。
  • 代表案例
  • 摩根大通 → kdb+/q;
  • 国内头部券商 → DolphinDB;
  • 加密货币交易所 → TimescaleDB。

代码示例:用 kdb+/q 计算 1 分钟 VWAP

vwap: { (sum size * price) % sum size } by 1 xbar time.minute from trade

4. 车联网 & 自动驾驶

关键词:CAN 总线、GNSS、激光雷达、影子模式

  • 数据特征
  • 高并发:10 万辆车 × 1000 信号/秒;
  • 多模态:位置、速度、电池、摄像头帧 ID。
  • 查询需求
  • 实时车队监控:过去 30 秒所有车辆位置;
  • 安全事件:急刹车时前后 10 秒所有信号;
  • 模型训练:提取 100 万段变道样本。
  • 代表案例
  • 特斯拉 → 自研 TSDB;
  • 蔚来、小鹏 → Apache IoTDB;
  • 滴滴 → Apache Hudi + 自研索引。

5. 能源 & 公用事业

关键词:智能电网、光伏逆变器、充电桩、碳排

  • 数据特征
  • 广域:百万级电表、逆变器、充电桩;
  • 周期性:15 分钟/1 小时抄表。
  • 查询需求
  • 实时负荷:当前总用电量;
  • 线损分析:过去 24 小时每条线路损耗;
  • 碳排计算:过去 1 年每度电的 CO₂ 排放。
  • 代表案例
  • 国家电网 → 自研 TSDB;
  • 特斯拉 Powerwall → InfluxDB;
  • 欧洲某虚拟电厂 → TimescaleDB。

6. 电商 & 广告实时报表

关键词:埋点、转化、AB 实验、实时大屏

  • 数据特征
  • 高吞吐:双 11 每秒千万级埋点;
  • 维度爆炸:用户、商品、渠道、实验组。
  • 查询需求
  • 实时 GMV:过去 1 分钟成交额;
  • 实验对比:实验组 vs 对照组转化率;
  • 漏斗分析:浏览 → 加购 → 支付。
  • 代表案例
  • 阿里双 11 → 自研 TSDB(基于 HBase);
  • 字节跳动 → Apache Druid;
  • 亚马逊广告 → Amazon Timestream。

三、如何选型?一张图总结

场景典型产品核心诉求备注
IoT/工业InfluxDB, TDengine高压缩、边缘部署支持 MQTT/OPC-UA
运维监控Prometheus, VictoriaMetrics多维标签、PromQL与 K8s 生态深度集成
金融行情kdb+, DolphinDB超高频、列式内存支持 q/SQL 混合
车联网IoTDB, TimescaleDB地理索引、PB 级支持 GIS 函数
能源TimescaleDB, InfluxDB降采样、插值支持阶梯电价计算
电商报表Druid, ClickHouse预聚合、倒排索引支持实时 Roll-up

四、小结

一句话总结:

只要你的数据是“时间戳 + 数值 + 标签”且写多读少、聚合为主,就值得用时序数据库。

从工业传感器到股票 Tick,从汽车 CAN 总线到广告埋点,时序数据库已经成为现代数据栈的“水电煤”。选对 TSDB,你的系统就能在“海量写入”与“实时洞察”之间优雅起舞。

此作者没有提供个人介绍。
最后更新于 2025-10-13