当前位置: 首页 > news >正文

物联网系统中“时序数据库(TSDB)”和“关系型数据库(RDBMS)”

在物联网系统中,将MQTT设备数据分别存储在时序数据库(TSDB)和关系型数据库(RDBMS),主要是基于两者不同的设计特性和适用场景,目的是为了兼顾高性能写入/查询和业务关联分析的需求。以下是具体对比和目的说明:


1. 时序数据库(InfluxDB/TimescaleDB/Prometheus等)

核心目的:高效处理时间序列数据,满足物联网场景下的高频写入和时序查询需求。
适用场景

  • 设备传感器产生的周期性、时间戳严格有序的数据(如温度、湿度、GPS坐标等)。
  • 高频写入(每秒数千甚至数百万数据点)。
  • 基于时间范围的聚合分析(如“过去24小时的平均温度”)。

优势

  • 写入性能极高:针对时间序列数据优化,压缩率高,写入吞吐量远高于关系型数据库。
  • 存储效率高:自动数据降采样(Downsampling),支持TTL(自动过期旧数据)。
  • 时序查询优化:内置时间窗口函数(如GROUP BY time(1h))、插值、连续查询(CQ)等功能。
  • 横向扩展:易于分布式部署(如InfluxDB Cluster)。

示例查询

-- 查询设备A在过去1小时内的温度平均值(每5分钟一个点)
SELECT mean("temperature") FROM "sensor_data" 
WHERE "device_id"='A' AND time > now() - 1h 
GROUP BY time(5m)

2. 关系型数据库(MySQL/PostgreSQL等)

核心目的:支持业务逻辑关联查询和事务处理,存储设备元数据、用户信息等结构化数据。
适用场景

  • 设备元数据管理(如设备型号、所属用户、安装位置等)。
  • 业务系统关联查询(如“查询设备A的所有者联系方式”)。
  • 需要ACID事务的操作(如设备权限变更、用户订阅关系)。

优势

  • 复杂查询能力:支持多表JOIN、子查询、事务等。
  • 数据一致性:严格遵循ACID,适合关键业务数据。
  • 灵活性:支持动态Schema修改(如新增字段)。

示例查询

-- 查询设备A的所有者信息(需要关联设备表和用户表)
SELECT u.name, u.phone FROM devices d 
JOIN users u ON d.owner_id = u.id 
WHERE d.device_id = 'A';

3. 为什么需要同时使用两者?

物联网系统的典型架构中,两类数据库通常协同工作

  1. 时序数据库
    • 存储原始传感器数据,支持实时监控和大规模时序分析。
    • 例如:存储温度传感器的每秒读数。
  2. 关系型数据库
    • 存储设备静态信息、用户权限、业务规则等。
    • 例如:存储设备所属的客户、保修期、告警阈值等。

协同流程示例

  • 设备通过MQTT上报数据 → 数据同时写入InfluxDB(原始数据)和MySQL(设备状态快照)。
  • 前端展示时:
    • 实时曲线图从InfluxDB查询时序数据。
    • 设备详情页从MySQL查询元数据和用户信息。

4. 对比总结

特性时序数据库关系型数据库
数据模型时间序列(时间戳+指标)结构化表(行和列)
写入性能极高(百万级/秒)中等(万级/秒)
查询优势时间范围聚合、降采样多表关联、复杂条件过滤
存储成本低(压缩率高,自动过期)较高(需手动归档)
典型场景监控、传感器数据分析用户管理、设备元数据

5. 实际案例

  • 智能家居系统
    • InfluxDB:存储温湿度传感器的实时数据,支持APP中的历史曲线查询。
    • PostgreSQL:存储用户账号、设备绑定关系、告警规则。
  • 工业物联网
    • TimescaleDB:存储工厂设备的振动频率时序数据,用于预测性维护。
    • MySQL:存储设备保养记录、工程师工单信息。

通过这种分工,既能满足物联网场景下的高性能时序数据处理,又能支持业务系统的复杂逻辑


文章转载自:
http://analectic.hnsdj.cn
http://characterization.hnsdj.cn
http://amphibolous.hnsdj.cn
http://checkerwork.hnsdj.cn
http://adjourn.hnsdj.cn
http://assent.hnsdj.cn
http://ambagious.hnsdj.cn
http://acclimate.hnsdj.cn
http://brimstone.hnsdj.cn
http://affectionately.hnsdj.cn
http://bushveld.hnsdj.cn
http://bromate.hnsdj.cn
http://airmail.hnsdj.cn
http://anticolonialism.hnsdj.cn
http://amatory.hnsdj.cn
http://brasswind.hnsdj.cn
http://bim.hnsdj.cn
http://chrominance.hnsdj.cn
http://braunschweiger.hnsdj.cn
http://barquisimeto.hnsdj.cn
http://arthrodic.hnsdj.cn
http://catachrestial.hnsdj.cn
http://cetology.hnsdj.cn
http://chainbelt.hnsdj.cn
http://bethlehem.hnsdj.cn
http://azole.hnsdj.cn
http://bec.hnsdj.cn
http://aging.hnsdj.cn
http://adversative.hnsdj.cn
http://alchemy.hnsdj.cn
http://www.dtcms.com/a/280759.html

相关文章:

  • GD32VW553-IOT LED呼吸灯项目
  • 软考高级网络规划设计师2009-2024历年真题合集下载
  • AWS中国区资源成本优化全面指南:从理论到实践
  • 板凳-------Mysql cookbook学习 (十一--------11)
  • QT——QComboBox组合框控件
  • Filter(过滤器)
  • Kruskal重构树
  • AutoSQT 2025 第二届汽车软件质量与测试峰会开启报名!
  • wkhtmltopdf导出pdf调试参数
  • 无法判断项目进度中的关键路径,如何进行关键路径分析
  • 创客匠人:创始人 IP 的破局思维,重构知识变现的深层逻辑
  • 基于redis的分布式锁 lua脚本解决原子性
  • easy-ui中的相对路径和绝对路径问题
  • ARM GCC内联汇编
  • 如何轻松将音乐从安卓设备传输到安卓设备
  • 用vue自定义指令设置页面权限
  • Android 事件机制详解
  • day053-初识docker与基础命令
  • 广东省省考备考(第四十六天7.15)——判断推理:位置规律(听课后强化训练)
  • SD-WAN 技术在新能源行业的应用与优选方案分析
  • 【华为机试】3. 无重复字符的最长子串
  • 光米投影 多余之物的本思
  • 怎么样才能入门深度学习?
  • element plus使用插槽方式自定义el-form-item的label
  • NW917NW921美光固态闪存NW946NW952
  • 1.2 vue2(组合式API)的语法结构以及外部暴露
  • Vue框架之模板语法(插值表达式、指令系统、事件处理和表单绑定)全面解析
  • MATLAB 安装 ACADO 的完整步骤
  • 简单工厂设计模式
  • Web应用防火墙(WAF)技术