您可以通過值轉化節點將解析任務的流轉消息中某個字段,轉化為另一個值,該值可以輸出到原字段或新定義的字段。通過該節點轉化生成多樣化的數據,可用于后續分析或輸出。
應用場景
場景一:轉化值到原字段。
某大棚使用傳感器上報光照度(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
單擊數據解析工作臺右上角的保存,完成值轉化節點的配置。
該節點的輸出字段為已設置的輸出字段名和上一節點的輸出字段。
后續操作
配置完值轉化節點后,您可以繼續配置其他處理節點,也可以配置目標節點完成整個解析任務配置。