您可以通过值转化节点将解析任务的流转消息中某个字段,转化为另一个值,该值可以输出到原字段或新定义的字段。通过该节点转化生成多样化的数据,可用于后续分析或输出。
应用场景
场景一:转化值到原字段。
某大棚使用传感器上报光照度(lux)。在实际情况中,光照度没有负值,但是由于某种原因,数据上报到物联网平台后偶尔出现负值,严重影响数据分析结果。此时可以通过值转化节点,将异常数据转化为默认值。例如此处将光照度(lux)的负值转化为默认值0,方便后续数据使用,避免数据出现常识性错误。
场景二:转化值到新定义字段。
某设备需要运行在特定的温度(temperature)范围。为了监测设备运行温度,防止设备故障,使用温度传感器将温度(temperature)数据上报到物联网平台,此时如果需要对温度范围划分等级(例如normal、alarm 、 danger等),根据不同等级来触发不同的后续操作,可以使用值转化节点,新增字段alert_level输出对应等级。
前提条件
已配置数据计算的表达式或数据过滤的筛选器,具体操作,请参见配置数据计算和数据过滤。
背景信息
操作步骤
在中间画布单击当前节点后的添加图标。
在弹出的节点列表中单击值转化节点。
在画布中单击值转化节点,在右侧配置面板,参照下表,配置转化值。
配置项
说明
条件字段名
选择要用于条件判断的字段,通常使用数值型字段。
此处可选字段为上一节点的输出字段。
输出字段名
值转化节点输出的字段名称,由您自定义。
仅支持数字、字母和下划线,不能以数字开头,长度不超过30个字符。
输出字段类型
设置输出字段的数据类型:BIGINT、DOUBLE、VARCHAR。
未匹配时默认输出值
当值转化节点定义的条件都不匹配时,设置输出字段的默认值。
如果需要输出原始数据,则用
${字段名称}
表示。条件分支
设置匹配条件的输出字段值。
选择条件操作符,可选:=(等于)、!=(不等于)、>(大于)、>=(大于等于)、<(小于)、<=(小于等于)、isNull(为空)、isNotNull(不为空)。
输入用于条件判断的具体条件值。
(可选)单击添加且条件,配置条件操作符和条件值。
说明一个条件分支中的多个条件是且关系。
一个条件分支中,最多包含3个且条件。
设置匹配分支条件时,输出字段的值。
物联网平台会根据输出字段类型,进行数据类型校验。
如果需要输出原始字段数据,则用
${字段名称}
表示。
您可以单击添加条件分支,配置多个条件分支。
说明一个值转化节点中:
最多包含10个条件分支。
不同条件分支间按从上到下顺序匹配,如果有多个分支匹配,节点会按照第一个匹配到的分支进行输出。
下面为以“应用场景”中场景二为例的一个具体配置:
该配置的业务含义是判断设备的运行温度范围,在不同的范围输出不同的告警级别:
当
50<temperature<=80
时,输出告警级别(alert_level)为alarm。当
temperature>80
时,输出告警级别(alert_level)为danger。其他情况输出告警级别(alert_level)为normal。
您可以将值转化节点理解为SQL中的
case when
语句,表示形式如下:select case when temperature>50 and temperature<=80 then 'alarm' when temperature>80 then 'danger' else 'normal' end as alert_level
单击数据解析工作台右上角的保存,完成值转化节点的配置。
该节点的输出字段为已设置的输出字段名和上一节点的输出字段。
后续操作
配置完值转化节点后,您可以继续配置其他处理节点,也可以配置目标节点完成整个解析任务配置。