数据筛选
更新时间:2020-09-14
数据筛选
数据筛选是规则对进入的消息进行的处理,规则对消息进行过滤、格式转换,得到预期的输出结果。
在规则「编辑调试」页面设置数据筛选条件,规则将按设置的条件进行数据处理。
规则引擎支持对接收到的任意格式数据进行转发,但是仅支持对JSON格式数据进行过滤、查询,非JSON格式数据只支持透传。
数据格式 | 透传 | 过滤条件 | 查询语句 | 逻辑表现 |
---|---|---|---|---|
JSON | 支持 | 支持 | 支持 | 先执行过滤条件,再执行查询语句,最终结果转发给数据目的地 过滤条件和查询语句均可以为空,为空时不执行相应节点 |
非JSON | 支持 | 不支持 | 不支持 | 过滤条件、查询语句同时设置为空(不输入任何内容),不执行过滤、查询节点,原始消息直接转发至目的地,即透传 过滤条件或查询语句任意不为空,执行相应过滤或查询,此时由于数据格式不符合JSON要求,过滤、查询节点会丢弃消息而不会转发至目的地 特别注意:非JSON格式数据源时,请勿设置查询语句和过滤条件 |
测试输入
在规则调试过程中,可以选取一条真实的待处理的消息(设备上报、服务下发等通过数据来源进入规则处理的消息)作为示例消息对规则进行调试。
「测试输入」支持任意格式字符串。符合JSON格式时,「格式预览」出会显示格式化的JSON格式。不符合JSON格式时,会提示“输入不是JSON格式”。
过滤条件
过滤条件即规则对消息的筛选,只有过滤条件返回的结果为true时,消息才会被发送到下一步进行继续处理,否则消息被过滤掉而不会继续向下流转。
- 过滤条件是由基本的查询操作符、函数组成的任何可以返回布尔值的表达式
- 表达式输出为false或表达式语法错误均被视为false
- 表达式输出为true或过滤条件为空时视为true
查询语句
利用查询语句可以对原始消息进行格式变换,包括但不限于以下场景:
- 组装全新数据结构
- 过滤掉原始消息指定的数据
- 向原始消息中添加数据
- 将对象元素转换为数组元素
- 将数组元素遍历展平为对象
- 运行函数获取时间戳、随机数、截取字符串等添加到目标消息中
查询语句的编写,请参考《数据查询语法和函数》
同时,控制台提供了常用的「查询语句模板」帮助开发者引入示例语句,根据实际消息格式选取相近的模板,在此基础上进行编辑修改,快速完成查询语句的编写。