连接 EMQX
前提条件
- 你已熟悉 MQTT 协议,它是一种极其轻量的发布/订阅消息传输协议。
- 你正在使用 EMQX 或 EMQX Cloud 作为实时消息处理引擎,为大规模 IoT 设备提供事件流能力。
- 你已准备好一个 ClickHouse Cloud 实例来持久化设备数据。
- 我们使用 MQTT X 作为 MQTT 客户端测试工具,连接已部署的 EMQX Cloud 并发布 MQTT 数据。或者,也可以使用其他方法连接到 MQTT broker。
获取 ClickHouse Cloud 服务
在 EMQX Cloud 上创建 MQTT 服务
获取账户
创建 MQTT 集群
N.Virginial 区域,然后点击 Create Now。几分钟后,你就会获得一个全托管的 MQTT broker:
现在点击该面板进入集群视图。在此仪表板上,你将看到 MQTT broker 的概览。
添加客户端凭据
emqx 和 xxxxxx 作为用户名和密码。
点击“Confirm”后,一个可用的全托管 MQTT broker 就准备好了。
启用 NAT gateway
将 EMQX Cloud 与 ClickHouse Cloud 集成
创建 ClickHouse 资源
- 注意:为该资源添加备注。
- 服务器地址:这是你的 ClickHouse Cloud 服务地址,记得填写端口。
- 数据库名称:我们在上述步骤中创建的
emqx。 - 用户:用于连接到你的 ClickHouse Cloud 服务的用户名。
- 密钥:连接密码。
创建新规则
temp_hum/emqx topic 读取消息,并为该 JSON 对象补充 client_id、topic 和时间戳信息。
因此,你发送到该 topic 的原始 JSON 如下:
添加响应动作
查看规则详情
temp_hum/emqx topic 的 MQTT 消息都会被持久化到您的 ClickHouse Cloud 数据库中。
将数据写入 ClickHouse
向 EMQX Cloud 发布 MQTT 消息
- Name:连接名称。可使用任意你喜欢的名称。
- Host:MQTT broker 的连接地址。可从 EMQX Cloud 的 Overview 页面获取。
- Port:MQTT broker 的连接端口。可从 EMQX Cloud 的 Overview 页面获取。
- Username/Password:使用上面创建的凭证,本教程中应为
emqx和xxxxxx。
- 将载荷格式设为 “JSON”。
- 将 topic 设为:
temp_hum/emqx(即我们刚刚在规则中设置的 topic) - JSON 正文: