规则引擎
大约 2 分钟
一、规则引擎
规则定义
规则引擎是 FMQ内置的数据处理功能,它使用 SQL 语句编排规则,并通过消息、客户端事件以及外部数据系统触发,无需编写代码即可实现一站式的 IoT 数据提取、过滤、丰富和转换处理,并将处理完成后的数据输出到动作或外部数据系统中。
规则提供了强大的数据集成能力,配合连接器,动作组合使用,基于SQL语句的编排规则,无需编写代码即可实现一站式的 IoT 数据提取、过滤、转换、存储与处理,以加速应用集成和业务开发。

规则组成
规则引擎组成由 连接器、动作、SQL编排 三项编辑而成。

描述了 MQTT数据来源、数据匹配处理、数据路由的一个过程
- MQTT数据来源:规则的数据源可以是消息或事件,规则通过 SQL 的 FROM 子句指定数据的来源;
- 数据匹配处理:规则通过SQL编排语句。SQL 的 WHERE 子句用于过滤数据,SELECT 子句以及 SQL 函数用于提取和转换数据;
- 数据路由:规则可以定义一个或多个动作来处理 SQL 的输出结果。如果 SQL 执行通过,规则将按顺序执行相应的动作,将结果发送到外部数据系统中,如 rocketmq,Kafka,MQTT服务 等。
规则SQL示例
规则SQL指定数据的来源
数据源是MQTT事件
select
*
from
"$events/client_connected"
where topic =~ '/property/post'- 数据来源:事件 ,连接成功事件
"$events/client_connected" - 数据匹配:根据topic匹配数据,这里使用
=~匹配包含property/post的所有主题 - 数据选择:
*,表示匹配所有连接成功事件的所有字段
数据源是消息
SELECT
payload,
clientId
FROM
"test/abc"
WHERE
clientId = "fastbee"- 数据来源:消息 ,匹配主题为
test/abc主题消息 - 数据匹配:根据
clientId筛选 为fastbee的值 - 数据选择: 这里获取
clientId、payload两个字段
