让遥测数据可查询
查询设备读数和事件,追踪数据随时间的变化,并围绕业务运营构建仪表盘。
EMQX CLICKHOUSE 集成
使用 EMQX 接入、过滤和转换设备遥测数据,再通过 ClickHouse 查询,用于仪表盘展示和数据分析。
概览
借助 EMQX 处理的遥测数据,查询设备历史、比较设备性能并排查变化原因。
查询设备读数和事件,追踪数据随时间的变化,并围绕业务运营构建仪表盘。
在 EMQX 中过滤消息、选取所需字段,让写入 ClickHouse 的数据直接满足查询需要。
ClickHouse 临时中断期间,EMQX 可将请求放入队列,并在配置的缓冲容量和过期时间范围内重试写入。
架构
设备向 EMQX 发布数据,由 SQL 规则预处理遥测数据并写入 ClickHouse 表,再由分析工具查询。
EMQX 企业版
MQTT Broker
核心能力
预处理消息字段、调优数据库写入,并监控从 EMQX 到 ClickHouse 的数据投递。
写入数据库前,通过 SQL 规则选取主题和字段、过滤无关消息、转换负载中的字段值。
规则 SQL 参考通过 INSERT 模板将规则输出映射到 ClickHouse 的列,并确保字段值和数据类型与目标表一致。
ClickHouse Sink 指南将多条记录合并为一个批次写入,减少数据库请求次数。请使用具有代表性的流量调整批量大小,并确认数据写入后多久可以被查询。
批量写入设置可将 EMQX 的查询模式设置为同步或异步。在异步模式下,MQTT 消息发布无需等待数据库响应。
查询模式指南根据业务负载配置缓冲容量和请求过期时间。监控投递失败情况,并测试中断后数据写入流程的恢复情况。
缓冲设置跟踪成功、失败和丢弃的请求数以及队列深度,及时发现投递问题并优化写入流程。
监控指南工作原理
准备好 ClickHouse 数据表以及允许 EMQX 写入数据的凭证,然后在 EMQX Dashboard 中完成配置。
开始之前
将设备或 MQTT 客户端连接到 EMQX,发布需要分析的遥测数据。
创建并测试 SQL 规则,筛选消息并为 ClickHouse 数据表准备好字段。
配置 ClickHouse 连接器和 Sink,并设置 INSERT 模板。发布一条测试消息,再查询数据表确认数据已写入。
资源
FAQ
ClickHouse 是面向分析查询的列式 SQL 数据库。即使数据量不断增长,您也可以用它查询设备历史、聚合遥测数据,并为仪表盘提供数据。
遇到临时连接故障时,EMQX 可将请求放入队列并重试。达到配置的上限后,请求可能过期或被丢弃。请根据业务负载设置缓冲容量和请求 TTL,并监控失败和丢弃的请求。
可以。在 ClickHouse Sink 将数据写入数据表之前,EMQX 的 SQL 规则可以选取主题和负载字段、过滤消息并转换字段值。
吞吐量取决于消息大小、SQL 规则、批量设置、网络状况和 ClickHouse 的处理能力。建议使用具有代表性的流量对完整的数据写入流程进行基准测试,再调整批量和并发设置,以满足数据写入需求。
您需要准备支持 ClickHouse 集成的 EMQX 部署、可访问的 ClickHouse 端点、数据库名称、具备写入权限的凭证以及目标数据表。然后配置连接器、规则和带 INSERT 模板的 Sink,最后发送一条测试消息,确认数据已成功写入。