在 Dashboard 页面,您可以定义 SQL 语句用来处理并筛选来自消息、事件以及外部数据系统的数据,并为规则添加动作,实现将处理结果通过消息发布、打印到控制台或通过 Sink 进行转发的目的。
规则是 MQTT 内置的数据处理功能。
目前支持消息重发布、控制台输出、 外部数据系统 3 种动作类型,每种动作类型的作用和应用场景不同,请先查看以下描述,再根据业务场景创建合适的规则。
如果您需要创建将处理结果转发到外部数据系统的规则,请提前创建相应类型的连接器,具体操作步骤,请参见 创建连接器。
说明
下图中的 SQL 语句为SELECT * FROM "mqtt-topic-1"
,表示选择名为mqtt-topic-1
的主题中所有的信息。
系统默认是选择t/#
模式的所有主题下的消息。您修改 SQL 语句后,右侧的数据输入页签下的信息也会发生变化。
您可以使用模拟数据执行 SQL 语句,验证 SQL 执行结果是否符合预期。
说明
SQL 处理结果将以 JSON 形式呈现在输出结果部分。SQL 处理结果中的所有字段都可以通过后续操作(内置操作或 Sink)以 ${key}
的形式进行引用。
说明
规则创建后,默认启用。
当消息、事件以及外部数据系统的数据触发规则,将执行 SQL 以及规则中添加的所有动作,并获得每个步骤的执行结果。
消息重发布动作用来发布一条新的 MQTT 消息,适用于需要发送下行消息的场景。
参数 | 说明 |
---|---|
动作类型 | 此处选择消息重发布。 |
主题 | 将消息重发布到 MQTT 的目标主题,比如 说明 消息发布时,主题不能使用 |
QoS | 按需设置 MQTT 消息服务质量(QoS)。
|
Retain | 设置是否将此消息作为保留消息转发,默认为 False。 |
Payload | 输入 |
MQTT 5.0 消息属性 | 是否配置 MQTT 5.0 消息属性,启用后,可配置以下参数。
|
控制台输出动作用于查看规则的输出结果,结果将以日志的形式打印到控制台或日志中。
说明
控制台输出动作仅用于调试。如果在生产环境中使用,可能会导致性能问题。
将规则结果通过 Sink 组件转发到外部数据系统。
发送到 Kafka 生产者
说明
将规则结果转发到 Kafka 生产者连接器对应实例的 Topic 中,请先在相应实例中创建 Topic。
参数 | 说明 |
---|---|
动作类型 | 此处选择 Kafka 生产者。 |
动作 | 仅支持创建动作。 |
名称 | 自定义设置 Sink 组件的名称。 |
连接器 | 从下拉列表中选择已提前创建好的 Kafka 生产者连接器。如何创建,请参见创建连接器。 |
描述 | 自定义设置描述语句。 |
Kafka 主题名称 | 在 Kafka 生产者连接器对应的实例中,已经创建好的 Topic 名称。 |
Kafka Headers | 输入与消息相关的元数据或上下文信息。按需提供用作 Kafka Headers 的占位符,例如 说明
|
Kafka Headers 值编码类型 | Kafka Headers 的值编码类型:
|
消息的键 | 消息键。输入一个字符串,可以是纯字符串或包含占位符 (${var}) 的字符串。 |
消息的值 | 消息值。输入一个字符串,可以是纯字符串或包含占位符 (${var}) 的字符串。 |
消息的时间戳 | 消息时间戳。 |
压缩 | 是否使用压缩算法压解压消息中的记录。 |
分区选择策略 | 选择生产者向分区分发消息的方式。 |
分区限制 | 限制生产者能够发送消息的最大分区数量。 |
发送到 MySQL
说明
将规则结果转发到 MySQL 连接器对应的数据库中,请先在相应数据库中创建好数据表。
参数 | 说明 |
---|---|
动作类型 | 此处选择 MySQL。 |
动作 | 仅支持创建动作。 |
名称 | 自定义设置 Sink 组件的名称。 |
连接器 | 从下拉列表中选择已提前创建好的 MySQL 连接器。如何创建,请参见创建连接器。 |
描述 | 自定义设置描述语句。 |
SQL 模板 | 构造 SQL 语句,从规则处理结果中提取数据,并写入指定数据表中。
以上 SQL 语句实现了将 说明
|