您可以使用規則引擎資料流轉功能,將資料轉寄到Table Store(Tablestore)時序模型中。本文以物模型資料上報Topic為例,介紹流轉訊息資料的完整流程。
前提條件
- 已添加待轉寄的裝置Topic資料來源。例如:建立資料來源DataSource,添加指定裝置的物模型資料上報Topic。具體步驟,請參見添加待流轉的資料來源。
- 已建立Table Store執行個體和用於接收資料的資料表。Table Store使用方法,請參見Table Store時序模型文檔。重要 企業版執行個體中,Table Store執行個體所在地區,必須與企業版執行個體所在地區一致。
背景資訊
Table Store時序模型:針對時間序列資料的特點進行設計的模型,可應用於物聯網裝置監控、裝置採集資料、機器監控資料等情境,支援自動構建時序中繼資料索引、豐富的時序查詢能力等功能。更多資訊,請參見時序模型。
- fields:使用JSONPath方法,擷取裝置上報的物模型屬性Temperature和Humidity的值,寫入溫度、濕度的時序資料。
- timeInUs:使用函數
timestamp()
擷取裝置上報資料的目前時間戳(單位為毫秒)。timeInUs的時間單位為微秒,寫入時間值為timestamp()*1000
。 - tags:寫入標籤
{"region": "cn-shanghai"}
。 - metricName:寫入時間軸度量名稱
property
。 - dataSource:使用函數
deviceName()
擷取裝置名稱,寫入資料來源標識。
使用限制
目前,僅華東2(上海)地區的企業版執行個體下,新版雲產品流轉功能支援將資料流轉到Table Store(Tablestore)時序模型中。
建立資料目的
登入物聯網平台控制台。
- 在執行個體概覽頁面,找到對應的執行個體,單擊執行個體進入執行個體詳情頁面。
在左側導覽列,選擇 。
在雲產品流轉頁面,單擊右上方體驗新版,進入新版功能頁面。
說明如果您已執行過此操作,再次進入雲產品流轉頁面,會直接進入新版功能頁面。
單擊資料目的頁簽,然後單擊建立資料目的。
- 在建立資料目的對話方塊,輸入資料目的名稱,例如DataPurpose,按照以下參數說明,完成配置,然後單擊確定。說明
僅支援轉寄JSON格式資料。
參數 說明 選擇操作 選擇儲存到Table Store(Tablestore)。 地區 選擇Table Store所在地區。 執行個體 擇Table Store執行個體。 您可以單擊建立執行個體,跳轉到Table Store控制台,建立時序模型執行個體,請參見建立時序模型執行個體。
儲存類型 選擇時序模型。 資料表 選擇接收資料的Table Store時序資料表。 您可以單擊建立資料表,跳轉到Table Store控制台,建立時序資料表,請參見建立時序表。
角色 授權物聯網平台將資料寫入時序Table Store。 如您還未建立相關角色,單擊建立RAM角色,跳轉到RAM控制台,建立角色和授權策略,請參見建立RAM角色。
配置並啟動解析器
建立解析器,例如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 datasource = deviceName(); var fields = {"temperature":t, "humidity":h}; var tags = {}; tags.put("region", "cn-shanghai"); var metricName = "property"; var timeInUs = timestamp()*1000; // 在writeTableStoreTS方法中,按時間軸,將溫濕度值寫入對應的列。 writeTableStoreTs(1000, timeInUs, metricName, tags, fields, datasource);
您也可設定溫度、濕度分別為度量名稱,寫入溫濕度資料,函數運算式如下:
writeTableStoreTs(1000, [ { "timeInUs": timestamp() * 1000, "metricName": "溫度", "tags":tags, "fields":{"temperature": t}, "dataSource": deviceName() }, { "timeInUs": timestamp() * 1000, "metricName": "濕度", "tags":tags, "fields":{"humidity": h}, "dataSource": deviceName() }, ]);
- 單擊調試,根據頁面提示,選擇產品和裝置,輸入Topic和Payload資料,驗證指令碼可執行。參數樣本如下:運行結果如下,表示指令碼執行成功。
單擊發布。
回到雲產品流轉頁面的解析器頁簽,單擊解析器DataParser對應的啟動按鈕,啟動解析器。
- 資料推送成功後,在Table Store接收資料的資料表的資料管理頁簽,查看是否成功接收到指定資料,請參見查詢時序資料。您可通過SQL查詢功能,對錶格儲存中資料進行複雜的查詢和高效的分析。具體操作,請參見使用SQL查詢時序資料。