Webinar
让 AI Agents 协同工作:探索 A2A over MQTT 与 EMQX A2A Registry|立即报名 →

EMQX CLICKHOUSE 集成

将 MQTT 数据流式传输到 ClickHouse

使用 EMQX 接入、过滤和转换设备遥测数据,再通过 ClickHouse 查询,用于仪表盘展示和数据分析。

概览

从 MQTT 遥测到数据分析

借助 EMQX 处理的遥测数据,查询设备历史、比较设备性能并排查变化原因。

让遥测数据可查询

查询设备读数和事件,追踪数据随时间的变化,并围绕业务运营构建仪表盘。

只保留有用的数据

在 EMQX 中过滤消息、选取所需字段,让写入 ClickHouse 的数据直接满足查询需要。

应对临时中断

ClickHouse 临时中断期间,EMQX 可将请求放入队列,并在配置的缓冲容量和过期时间范围内重试写入。

架构

从 MQTT 消息到 ClickHouse 查询

设备向 EMQX 发布数据,由 SQL 规则预处理遥测数据并写入 ClickHouse 表,再由分析工具查询。

核心能力

构建 ClickHouse 数据写入流程

预处理消息字段、调优数据库写入,并监控从 EMQX 到 ClickHouse 的数据投递。

用 SQL 预处理数据

写入数据库前,通过 SQL 规则选取主题和字段、过滤无关消息、转换负载中的字段值。

规则 SQL 参考

将字段映射到数据表

通过 INSERT 模板将规则输出映射到 ClickHouse 的列,并确保字段值和数据类型与目标表一致。

ClickHouse Sink 指南

批量写入数据库

将多条记录合并为一个批次写入,减少数据库请求次数。请使用具有代表性的流量调整批量大小,并确认数据写入后多久可以被查询。

批量写入设置

选择查询模式

可将 EMQX 的查询模式设置为同步或异步。在异步模式下,MQTT 消息发布无需等待数据库响应。

查询模式指南

缓冲与重试

根据业务负载配置缓冲容量和请求过期时间。监控投递失败情况,并测试中断后数据写入流程的恢复情况。

缓冲设置

监控数据写入

跟踪成功、失败和丢弃的请求数以及队列深度,及时发现投递问题并优化写入流程。

监控指南

工作原理

三步完成数据接入

准备好 ClickHouse 数据表以及允许 EMQX 写入数据的凭证,然后在 EMQX Dashboard 中完成配置。

开始之前

  • EMQX 可访问的 ClickHouse 端点。
  • 用于存储遥测数据的目标表。
  • 具备目标表写入权限的凭据。
  1. 1

    连接设备

    将设备或 MQTT 客户端连接到 EMQX,发布需要分析的遥测数据。

  2. 2

    预处理消息

    创建并测试 SQL 规则,筛选消息并为 ClickHouse 数据表准备好字段。

  3. 3

    写入并验证

    配置 ClickHouse 连接器和 Sink,并设置 INSERT 模板。发布一条测试消息,再查询数据表确认数据已写入。

资源

探索 EMQX 与 ClickHouse 集成

FAQ

常见问题

构建 MQTT 到 ClickHouse 的数据链路

与 EMQX 专家一起规划 MQTT 数据接入、ClickHouse 表结构和分析目标。