New
EMQX Enterprise 6.3.0 发布:全新功能开关与安全加固,按需灵活部署 →

EMQX MongoDB 集成

将 MQTT 数据流式传输到 MongoDB

使用 EMQX 采集传感器读数、设备状态和资产位置,并存储到 MongoDB,供应用查询和仪表盘使用。

概览

存储应用可直接使用的物联网数据

EMQX 负责连接设备并预处理设备消息,MongoDB 负责存储处理后生成的文档,供应用查询。

读数与上下文统一存储

将传感器读数与设备属性、元数据存储在一起。随着设备类型和数量不断变化,MongoDB 灵活的文档模型可以适配不同设备的数据结构。

数据接入与查询分离

EMQX 负责 MQTT 连接和消息处理,MongoDB 负责响应应用查询。您可以根据流量和数据访问需求,分别规划每一层的资源规模。

中断期间缓冲数据

在 EMQX 中缓存待发送的请求,并重试可恢复的错误。您可以根据业务负载设置缓冲容量和请求过期时间,并监控失败和被丢弃的请求。

架构

从 MQTT 消息到 MongoDB 文档

设备将 MQTT 消息发布到 EMQX,SQL 规则负责筛选和转换数据,再由 MongoDB Sink 将结果插入集合,供应用查询。

核心能力

将 MQTT 数据接入 MongoDB

自主决定存储哪些消息、如何映射字段,以及如何监控数据投递。

将字段映射为文档

通过 Sink 的有效载荷模板,将规则处理结果映射为 MongoDB 文档。保持字段名称和类型一致(包括嵌套对象和数组),便于跨设备查询。

文档映射指南

使用 SQL 过滤和转换

在写入 MongoDB 之前,匹配 MQTT 主题、选取载荷字段、过滤无用消息并转换字段值。

规则 SQL 参考

灵活选择 MongoDB 连接方式

支持连接单节点实例、副本集或分片集群。根据 MongoDB 部署方式选择对应的连接器模式,并可启用 TLS 加密数据库连接。

MongoDB 连接器指南

查询设备历史数据

使用 MongoDB 查询和聚合管道分析读数与事件,并根据应用的访问模式在 MongoDB 中创建索引。

聚合指南

处理位置数据

以 GeoJSON 格式存储资产或车辆位置,再利用 MongoDB 地理空间索引进行邻近搜索和区域搜索。

地理空间查询指南

监控数据投递

在 EMQX Dashboard 中跟踪成功、失败和被丢弃的请求,借助这些指标排查投递问题并优化数据管道。

数据投递监控指南

工作原理

三步将 MQTT 数据写入 MongoDB

开始之前,您需要准备 EMQX 企业版、可访问 MongoDB 的网络,以及对目标数据库和集合具有写入权限的凭证。

开始之前

  • 具备 MongoDB 集成功能的 EMQX 企业版。
  • 确保 EMQX 可通过网络访问 MongoDB。
  • 具备目标数据库和集合写入权限的凭据。
  1. 1

    连接 EMQX 与 MongoDB

    在 EMQX Dashboard 中创建 MongoDB 连接器,选择部署模式,填写连接信息和凭证,然后测试连通性。

  2. 2

    定义规则与 Sink

    创建 SQL 规则以匹配 MQTT 主题并整理所需字段。添加 MongoDB Sink,然后设置集合和有效载荷模板。

  3. 3

    发布并验证

    连接 MQTT 客户端并发布一条测试消息。在接入生产流量之前,查询 MongoDB,确认文档的字段和类型正确。

资源

探索 EMQX 与 MongoDB 集成

FAQ

常见问题

构建 MQTT 到 MongoDB 的数据链路

与 EMQX 专家一起规划 MQTT 数据流、文档结构和 MongoDB 部署方案。