全部產品
Search
文件中心

IoT Platform:配置相鄰訊息計算

更新時間:Jun 30, 2024

通過運算式或篩選器節點解析源節點資料後,可使用相鄰訊息計算節點,取當前訊息的某個數值欄位的值(僅支援BIGINT、DOUBLE類型)與前一條訊息的相同數值欄位的值,按照定義的運算式進行計算,將計算的結果輸出到定義的輸出欄位上。通過該節點計算產生多樣化的資料,可用於後續分析或輸出。

應用情境

智能電錶每小時上報當前的歷史累計用電量值,如果需要知道最近一小時的增量用電量(kwh),可以通過相鄰訊息計算節點輸出本次上報電量減去前一次上報電量的值。

前提條件

已配置資料計算的運算式或資料過濾的篩選器,具體操作,請參見配置資料計算和資料過濾

背景資訊

操作步驟

  1. 進入資料解析工作台

  2. 在中間畫布單擊當前節點後的添加image表徵圖。

  3. 在彈出的節點列表中單擊相鄰訊息計算節點。

  4. 在畫布中單擊相鄰訊息計算節點,在右側配置面板,參照下表,配置相鄰訊息計算。

    配置項

    參數

    說明

    樣本

    基礎配置

    前一變數欄位

    選擇前一條訊息中數值型欄位,使用對應值在運算式中進行計算。

    運算式中固定以${pre_var}表示該欄位的值。

    重要

    該欄位僅支援使用上一節點輸出欄位中的數實值型別(BIGINTDOUBLE)欄位。

    以“應用情境”中電錶情境為例:此處選擇電量欄位kwh

    當前變數欄位

    選擇當前訊息中數值型欄位,使用對應值在運算式中進行計算。

    運算式中固定以${current_var}表示該欄位的值。

    重要

    該欄位僅支援使用上一節點輸出欄位中的數實值型別(BIGINTDOUBLE)欄位。

    以電錶情境為例:此處選擇電量欄位kwh

    結果欄位名

    自訂欄位名稱,相鄰訊息的計算結果會賦值到該欄位進行輸出。

    僅支援數字、字母和底線,不能以數字開頭,不能和已有欄位重合,長度不超過30個字元。

    以電錶情境為例:定義欄位kwh_diff,表示每小時的增量用電量。

    計算運算式

    配置運算式計算前一變數欄位當前變數欄位的值。

    必須使用${current_var}${pre_var}分別指代當前變數欄位的值與前一變數欄位的值。

    此處支援四則運算和運算式節點中支援的所有函數,使用方法,請參見配置運算式

    以電錶情境為例:如果需要求出每小時的增量用電量,可使用當前用電量上報值減去前一次用電量上報值。

    計算運算式為:${current_var} - ${pre_var}

    進階配置

    訊息分區鍵

    可選,用來劃分同一個Topic中的哪些欄位訊息需要劃分到一起來進行相鄰計算。

    不設定時,物聯網平台系統會預設將ProductKeyDeviceName作為訊息分區鍵。

    以電錶情境為例:

    同一個電錶的上報訊息中電量(kwh)需要相鄰計算,此時訊息分區鍵應該為電錶的ProductKeyDeviceName,此時可以不填該欄位。

    如果電錶的資料是通過一個大網關裝置上報,電錶裝置的標誌在訊息裡以deviceId欄位表示,此時需要將deviceId設定為訊息分區鍵,才能保證實際情境下的同一個電錶的訊息進行相鄰計算。

    訊息存活時間長度

    單位為秒,預設一天,最小1秒,最大30天。

    • 如果超過此時間長度沒有接收到新的訊息更新前一變數欄位的值,則前一變數欄位會被清除。當節點每次接收了訊息,更新存活時間長度。

    • 如果前一變數欄位由於太久之前上報,已經被清除,新上報的訊息會被當作解析任務的第一條資料。對於第一條資料,預設不進行相鄰訊息計算,結果欄位輸出空值。

    以電錶情境為例:使用預設值86400。

    下面為以“應用情境”為例的一個具體配置:

    image

  5. 單擊資料解析工作台右上方的儲存,完成相鄰訊息計算節點的配置。

    重要

    該節點的輸出欄位為已設定的結果欄位名和上一節點的輸出欄位。

後續操作

配置完相鄰訊息計算節點後,您可以繼續配置其他處理節點,也可以配置目標節點完成整個解析任務配置。