读数与上下文统一存储
将传感器读数与设备属性、元数据存储在一起。随着设备类型和数量不断变化,MongoDB 灵活的文档模型可以适配不同设备的数据结构。
EMQX MongoDB 集成
使用 EMQX 采集传感器读数、设备状态和资产位置,并存储到 MongoDB,供应用查询和仪表盘使用。
概览
EMQX 负责连接设备并预处理设备消息,MongoDB 负责存储处理后生成的文档,供应用查询。
将传感器读数与设备属性、元数据存储在一起。随着设备类型和数量不断变化,MongoDB 灵活的文档模型可以适配不同设备的数据结构。
EMQX 负责 MQTT 连接和消息处理,MongoDB 负责响应应用查询。您可以根据流量和数据访问需求,分别规划每一层的资源规模。
在 EMQX 中缓存待发送的请求,并重试可恢复的错误。您可以根据业务负载设置缓冲容量和请求过期时间,并监控失败和被丢弃的请求。
架构
设备将 MQTT 消息发布到 EMQX,SQL 规则负责筛选和转换数据,再由 MongoDB Sink 将结果插入集合,供应用查询。
EMQX 企业版
MQTT Broker
核心能力
自主决定存储哪些消息、如何映射字段,以及如何监控数据投递。
通过 Sink 的有效载荷模板,将规则处理结果映射为 MongoDB 文档。保持字段名称和类型一致(包括嵌套对象和数组),便于跨设备查询。
文档映射指南在写入 MongoDB 之前,匹配 MQTT 主题、选取载荷字段、过滤无用消息并转换字段值。
规则 SQL 参考支持连接单节点实例、副本集或分片集群。根据 MongoDB 部署方式选择对应的连接器模式,并可启用 TLS 加密数据库连接。
MongoDB 连接器指南使用 MongoDB 查询和聚合管道分析读数与事件,并根据应用的访问模式在 MongoDB 中创建索引。
聚合指南以 GeoJSON 格式存储资产或车辆位置,再利用 MongoDB 地理空间索引进行邻近搜索和区域搜索。
地理空间查询指南在 EMQX Dashboard 中跟踪成功、失败和被丢弃的请求,借助这些指标排查投递问题并优化数据管道。
数据投递监控指南工作原理
开始之前,您需要准备 EMQX 企业版、可访问 MongoDB 的网络,以及对目标数据库和集合具有写入权限的凭证。
开始之前
在 EMQX Dashboard 中创建 MongoDB 连接器,选择部署模式,填写连接信息和凭证,然后测试连通性。
创建 SQL 规则以匹配 MQTT 主题并整理所需字段。添加 MongoDB Sink,然后设置集合和有效载荷模板。
连接 MQTT 客户端并发布一条测试消息。在接入生产流量之前,查询 MongoDB,确认文档的字段和类型正确。
资源
FAQ
MongoDB 以 BSON 文档的形式存储遥测数据,支持嵌套对象、数组以及因设备而异的元数据。EMQX 负责接入 MQTT 消息并预处理数据,再由 MongoDB Sink 将数据插入集合。本页展示的数据流为单向,即从 EMQX 写入 MongoDB。
先使用 EMQX SQL 规则提取和整理字段,再通过 Sink 的有效载荷模板映射处理结果。二进制或自定义格式的载荷需要先使用合适的解码器解析。在模板中,字符串需加引号,数字不加引号,以保留原有类型。请使用具有代表性的设备消息进行测试。
可以,前提是部署规模与业务负载相匹配。系统容量取决于消息大小和速率、文档结构、索引以及数据库资源。MongoDB 副本集提供冗余和故障切换能力,分片则将数据分布到多个分片上。建议使用具有代表性的流量和查询,对整条数据管道进行基准测试。
EMQX 可以缓存待发送的请求,并对可恢复的错误进行重试。缓冲容量和请求过期时间决定了投递最长可以延迟多久。请监控失败和被丢弃的请求,测试中断和重启后的恢复情况,并根据数据持久性要求配置 MongoDB 的写入确认。
您需要支持 MongoDB 集成的 EMQX、可访问数据库的网络,以及具有写入权限的凭证。先根据 MongoDB 部署方式配置连接器,再创建 SQL 规则和 Sink,并指定集合与有效载荷模板。启用 TLS 以加密连接,最后写入一条测试文档验证结果。