您可以配置資料流轉的解析規則,將處理過的資料轉寄到時序資料庫(Lindorm)中。本文以物模型資料上報Topic為例,介紹流轉訊息資料的完整流程。
前提條件
已確認當前物聯網平台執行個體及所在地區支援將資料轉寄到時序資料庫(Lindorm)。支援的地區詳細資料,請參見各地區功能說明。
已添加待轉寄的裝置Topic資料來源。例如:建立資料來源DataSource,添加指定裝置的物模型資料上報Topic。具體步驟,請參見添加待流轉的資料來源。
已通過雲原生多模資料庫Lindorm控制台建立Lindorm執行個體,相關配置請根據業務需求選擇。具體操作,請參見建立執行個體。
重要僅支援同地區轉寄。所以Lindorm執行個體所在地區必須與當前物聯網平台執行個體所在地區保持一致。
Lindorm執行個體的商品類型僅支援Lindorm(訂用帳戶)和Lindorm(隨用隨付),且選擇資料引擎的時序節點數量必須不小於1。
已整合Lindorm時序引擎的Java Native SDK,完成建立時序資料庫、資料表,以及建立管理資料庫的帳號和密碼,以及支援多執行個體時序資料存放區的配置。具體操作,請參見教程:通過Java Native SDK串連並使用Lindorm時序引擎。
背景資訊
轉寄的資料目的配置完成後,會自動完成以下配置,實現裝置資料通過物聯網平台的規則引擎轉寄到時序資料庫(Lindorm)。
物聯網平台佔用Lindorm執行個體所在虛擬交換器的2個IP地址;將虛擬交換器的IPv4網段配置到Lindorm執行個體的白名單中。
在Lindorm執行個體所在的VPC網路下建立託管安全性群組,安全性群組名稱預設以sg-nsm-開頭。
本文樣本中,寫入時序資料庫的資料如下:
timestamp:使用函數
timestamp()
擷取裝置上報資料的目前時間。tags:使用函數
deviceName()
擷取裝置名稱,寫入標籤{"device_id": deviceName(), "region": "cn-shanghai"}
。fields:使用JSONPath方法,擷取裝置上報的物模型屬性Temperature和Humidity的值,寫入溫、濕度的時序資料。
使用限制
目前,僅新版雲產品流轉功能支援將資料流轉到時序資料庫(Lindorm)中。
建立資料目的
登入物聯網平台控制台。
在執行個體概覽頁簽的全部環境下,找到對應的執行個體,單擊執行個體卡片。
在左側導覽列,選擇 。
在雲產品流轉頁面,單擊右上方體驗新版,進入新版功能頁面。
說明如果您已執行過此操作,再次進入雲產品流轉頁面,會直接進入新版功能頁面。
單擊資料目的頁簽,然後單擊建立資料目的。
在建立資料目的對話方塊,輸入資料目的名稱,例如DataPurpose,按照以下參數說明,完成配置,然後單擊確定。
參數
描述
選擇操作
選擇儲存到時序資料庫(Lindorm)中。
授權
單擊授權,系統建立角色和授權策略,授權物聯網平台將資料寫入Lindorm。詳細說明,請參見資料轉寄到時序資料庫(Lindorm)服務關聯角色。
說明若已授權,忽略此操作。
地區
與您的物聯網平台執行個體所在地區一致。
Lindorm執行個體
選擇資料轉寄目的為您已建立的Virtual Private Cloud下的Lindorm執行個體。
資料庫
輸入Lindorm執行個體下接收資料的目標資料庫名稱。
表名
輸入目標資料庫下接收資料的時序資料表名稱。
帳號
輸入管理時序資料庫的帳號和密碼。
資料庫管理帳號和密碼說明,請參見使用者及許可權管理。
密碼
配置並啟動解析器
建立解析器,例如DataParser。具體操作,請參見步驟一:建立解析器。
在解析器詳情頁面,關聯資料來源。
在設定精靈的資料來源下,單擊關聯資料來源。
在彈出的對話方塊中,單擊資料來源下拉式清單,選擇已建立的資料來源DataSource,單擊確定。
在解析器詳情頁面,關聯資料目的。
單擊設定精靈的資料目的,然後單擊資料目的列表右上方的關聯資料目的。
在彈出的對話方塊中,單擊資料目的下拉式清單,選擇已建立的資料目的DataPurpose,單擊確定。
在資料目的列表,查看並儲存資料目的ID,例如為1000。
後續解析指令碼中,需使用此處的資料目的ID。
在解析器詳情頁面,單擊解析器。
在指令碼輸入框,輸入解析指令碼。
函數參數說明,請參見函數列表。
//通過payload函數,擷取裝置上報的訊息內容,並按照JSON格式轉換。 var data = payload("json"); //篩選出上報的溫濕度值。 var h = data.items.Humidity.value; var t = data.items.Temperature.value; var fields = {"temperature":t, "humidity":h}; var tags = {"device_id": deviceName(), "region": "cn-shanghai"}; var timestamp = timestamp(); //流轉物模型上報資料。 writeLindorm(1000, timestamp, tags, fields);
說明如果Lindorm資料庫中表欄位定義資料類型為double時,但是裝置上報的資料humidity是int資料類型,需要使用如下代碼轉換資料類型,才能正常流轉。
varfields={ "temperature":t, "humidity":{ "type":"DOUBLE", "value":h } };
單擊調試,根據頁面提示,選擇產品和裝置,輸入Topic和Payload資料,驗證指令碼可執行。
參數樣本如下:
運行結果如下,表示指令碼執行成功。
單擊發布。
回到雲產品流轉頁面的解析器頁簽,單擊解析器DataParser對應的啟動按鈕,啟動解析器。
類比裝置上報物模型資料,查看流轉結果。具體操作,請參見裝置模擬器。
裝置上報資料流轉到Lindorm時序資料庫後,您可通過Lindorm TSDB SDK的查詢介面查看流轉的資料。