全部產品
Search
文件中心

IoT Platform:資料轉寄到Table Store(Tablestore)時序模型

更新時間:Jun 30, 2024

您可以使用規則引擎資料流轉功能,將資料轉寄到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)時序模型中。

建立資料目的

  1. 登入物聯網平台控制台

  2. 執行個體概覽頁面,找到對應的執行個體,單擊執行個體進入執行個體詳情頁面。
    選擇執行個體
  3. 在左側導覽列,選擇訊息轉寄 > 雲產品流轉

  4. 雲產品流轉頁面,單擊右上方體驗新版,進入新版功能頁面。

    說明

    如果您已執行過此操作,再次進入雲產品流轉頁面,會直接進入新版功能頁面。

  5. 單擊資料目的頁簽,然後單擊建立資料目的

  6. 建立資料目的對話方塊,輸入資料目的名稱,例如DataPurpose,按照以下參數說明,完成配置,然後單擊確定
    說明

    僅支援轉寄JSON格式資料。

    參數說明
    選擇操作選擇儲存到Table Store(Tablestore)
    地區選擇Table Store所在地區。
    執行個體擇Table Store執行個體。

    您可以單擊建立執行個體,跳轉到Table Store控制台,建立時序模型執行個體,請參見建立時序模型執行個體

    儲存類型選擇時序模型
    資料表選擇接收資料的Table Store時序資料表。

    您可以單擊建立資料表,跳轉到Table Store控制台,建立時序資料表,請參見建立時序表

    角色授權物聯網平台將資料寫入時序Table Store。

    如您還未建立相關角色,單擊建立RAM角色,跳轉到RAM控制台,建立角色和授權策略,請參見建立RAM角色


配置並啟動解析器

  1. 建立解析器,例如DataParser。具體操作,請參見步驟一:建立解析器

  2. 解析器詳情頁面,關聯資料來源。

    1. 在設定精靈的資料來源下,單擊關聯資料來源

    2. 在彈出的對話方塊中,單擊資料來源下拉式清單,選擇已建立的資料來源DataSource,單擊確定

  3. 解析器詳情頁面,關聯資料目的。

    1. 單擊設定精靈的資料目的,然後單擊資料目的列表右上方的關聯資料目的

    2. 在彈出的對話方塊中,單擊資料目的下拉式清單,選擇已建立的資料目的DataPurpose,單擊確定

    3. 在資料目的列表,查看並儲存資料目的ID,例如為1000

      後續解析指令碼中,需使用此處的資料目的ID

  4. 解析器詳情頁面,單擊解析器

  5. 在指令碼輸入框,輸入解析指令碼。
    函數參數說明,請參見函數列表
    //通過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()
        },
    ]);

  6. 單擊調試,根據頁面提示,選擇產品和裝置,輸入Topic和Payload資料,驗證指令碼可執行。
    參數樣本如下:調試資料
    運行結果如下,表示指令碼執行成功。運行結果

  7. 單擊發布

  8. 回到雲產品流轉頁面的解析器頁簽,單擊解析器DataParser對應的啟動按鈕,啟動解析器。

  9. 資料推送成功後,在Table Store接收資料的資料表的資料管理頁簽,查看是否成功接收到指定資料,請參見查詢時序資料
    您可通過SQL查詢功能,對錶格儲存中資料進行複雜的查詢和高效的分析。具體操作,請參見使用SQL查詢時序資料資料管理