设备平台通常同时需要关系数据库和时序数据库。用户、权限、设备档案和规则具有关系与事务;温度、电压和位置则是持续追加、按时间范围查询的时序数据。

1
2
3
MySQL/PostgreSQL:设备档案、租户、规则、命令、订单
时序数据库:遥测、指标、历史曲线、时间窗口聚合
对象存储:原始文件、图片、音视频和大批量归档

MySQL 与 PostgreSQL

两者都支持 SQL 和事务,但 SQL 不是完全相同。数据类型、自动编号、JSON、日期函数、Upsert、索引和管理工具存在差异,迁移时不能只换连接字符串。

方向 MySQL PostgreSQL
常见优势 Web 业务生态成熟、运维普及 SQL 能力丰富、扩展性强、复杂查询友好
JSON 支持 JSON 类型和函数 JSONB、索引与运算能力完整
扩展 存储引擎和复制生态 PostGIS、TimescaleDB 等扩展生态

选型首先看团队、云服务、数据模型和运维能力,不应根据一张“谁更强”的表决定。

三种时序数据库的侧重点

产品 数据组织特点 更常见的方向
Apache IoTDB 设备树与表模型 工业设备层级、海量测点、边云场景
InfluxDB Measurement、Tag、Field、Time 通用指标、监控、IoT 与采集生态
QuestDB 表模型、SQL、列式时序处理 高频写入、实时 SQL 分析、行情

IoTDB 路径示例:

1
root.factory1.line1.machine001.temperature

Influx Line Protocol 示例:

1
device_metrics,device_id=device001 temperature=36.5,humidity=71 1751180400000000000

QuestDB 表更接近 SQL:

1
2
3
4
5
CREATE TABLE device_metrics (
ts TIMESTAMP,
device_id SYMBOL,
temperature DOUBLE
) TIMESTAMP(ts);

选择前要做的测试

  1. 按真实设备数量和频率写入样本数据。
  2. 测试最近值、时间范围、聚合和多设备查询。
  3. 验证乱序、重复、保留策略和压缩。
  4. 评估高可用、备份、扩容和恢复。
  5. 测试驱动、Grafana、Kafka 和现有语言生态。
  6. 计算存储、网络和云服务成本。

不要把所有原始遥测长期堆进 MySQL,也不要把用户、支付和权限迁进时序库。混合存储往往比寻找“一个数据库解决全部问题”更稳妥。

延伸阅读

站内搜索

没有找到内容!