すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:時系列モデルの OTS インスタンスにデータを転送する

最終更新日:Mar 27, 2025

ルールエンジンのデータ転送機能を使用して、時系列モデルの Tablestore(OTS)インスタンスにデータを転送できます。このトピックでは、データ転送プロセスについて説明します。この例では、Thing Specification Language(TSL)通信トピックをソース トピックとして使用します。

前提条件

  • DataSource という名前のデータソースが作成され、TSL 通信トピックがデータソースに追加されています。詳細については、「データソースを作成する」をご参照ください。

  • データを受信するために使用される OTS インスタンスとテーブルが作成されています。詳細については、OTS ドキュメントの「時系列モデル」セクションをご参照ください。

    重要

    IoT Platform Enterprise Edition インスタンスを使用する場合、OTS インスタンスがデプロイされているリージョンは、IoT Platform インスタンスのリージョンと同じである必要があります。

背景情報

時系列モデルは、IoT デバイスの監視、デバイス データ収集、マシン監視などのシナリオで生成される時系列データを格納するために使用されます。時系列モデルは、時系列メタデータの自動インデックス作成と、さまざまな複合条件に基づく時系列クエリをサポートしています。詳細については、「時系列モデル」をご参照ください。

この例では、writeTableStoreTs()関数が呼び出され、次のパラメータが指定されて時系列テーブルにデータが書き込まれます。

  • fields: JSONPath 式を使用して、デバイスから送信された 温度 と 湿度 プロパティの値を取得します。値を時系列テーブルに書き込みます。

  • timeInUs: timestamp() 関数を呼び出して、ミリ秒単位のタイムスタンプを取得します。タイムスタンプは、デバイスがデータを送信した時点を指定します。timeInUs パラメータの値はマイクロ秒単位である必要があります。timeInUs パラメータの値は、次の式を使用して計算できます:timestamp() × 1,000。結果をテーブルに書き込みます。

  • tags: {"region": "cn-shanghai"} をテーブルに書き込みます。

  • metricName: property をテーブルに書き込みます。

  • dataSource: deviceName() 関数を呼び出して DeviceName を取得し、DeviceName をテーブルに書き込みます。

制限事項

中国(上海) リージョンの Enterprise Edition インスタンスのみが、データ転送機能の新しいバージョンを使用して、時系列モデルの OTS インスタンスにデータを転送できます。

データ転送先を作成する

  1. IoT Platform コンソール にログインします。
  2. 概要 タブで、管理するインスタンスを見つけ、インスタンス名をクリックして [インスタンスの詳細] ページに移動します。

    选择实例

  3. 左側のナビゲーション ウィンドウで、メッセージ転送 > データ転送 を選択します。
  4. [データ転送] ページの右上隅にある [新しいバージョンに移動] をクリックして、新しいバージョンに移動します。

    説明

    この手順を実行した場合、メッセージ転送 > データ転送 を選択すると、新しいバージョンの [データ転送] ページが表示されます。

  5. [データ転送先] をクリックします。 [データ転送先] タブで、[データ転送先を作成] をクリックします。

  6. [データ転送先を作成] ダイアログ ボックスで、データ転送先名を入力します。例:DataPurpose。パラメータを設定し、[OK] をクリックします。

    次の表にパラメータを示します。

    説明

    JSON 形式のデータのみ転送できます。

    パラメータ

    説明

    操作

    [tablestore にデータを保存] を選択します。

    リージョン

    OTS がアクティブになっているリージョンを選択します。

    インスタンス

    OTS インスタンスを選択します。

    [インスタンスの作成] をクリックして OTS コンソールに移動し、時系列モデルの OTS インスタンスを作成できます。詳細については、「時系列モデルのインスタンスを作成する」をご参照ください。

    ストレージ クラス

    [時系列モデル] を選択します。

    データ テーブル

    データの受信に使用する時系列テーブルを選択します。

    [データ テーブルの作成] をクリックして OTS コンソールに移動し、時系列テーブルを作成できます。詳細については、「時系列テーブルを作成する」をご参照ください。

    ロール

    IoT Platform に時系列テーブルにデータを書き込む権限を付与します。

    Resource Access Management(RAM)ロールがない場合は、[RAM ロールの作成] をクリックして RAM コンソールに移動し、RAM ロールを作成して、ロールに権限を付与します。詳細については、「RAM ロールの作成」をご参照ください。

パーサを設定して起動する

  1. DataParser という名前のパーサを作成します。詳細については、「パーサを作成する」をご参照ください。

  2. [パーサの詳細] ページで、パーサを作成済みデータソースに関連付けます。

    1. ウィザードの [データソース] ステップで、[データソースの関連付け] をクリックします。

    2. 表示されるダイアログ ボックスで、データソース[データソース] ドロップダウン リストから [OK] を選択し、 をクリックします。

  3. [パーサの詳細] ページで、パーサを作成済みデータ転送先に関連付けます。

    1. ウィザードの [データ転送先] をクリックします。[データ転送先] セクションで、[データ転送先の関連付け] をクリックします。

    2. 表示されるダイアログ ボックスで、データ目的[データ転送先] ドロップダウン リストから [OK] を選択し、 をクリックします。

    3. [データ転送先 ID] セクションで、[データ転送先 ID] を表示して保存します。この例では、ID は 1000 です。

      パーサ スクリプトを記述するときは、[データ転送先 ID] を使用する必要があります。

  4. [パーサの詳細] ページで、[パーサ スクリプト] をクリックします。

  5. コード エディタで、スクリプトを入力します。スクリプトの変更方法の詳細については、「スクリプト構文」をご参照ください。

    関数パラメータの詳細については、「関数」をご参照ください。

    // Call the payload() function to obtain the data that is submitted by devices and convert the data into the JSON format. 
    // デバイスから送信されたデータを取得し、JSON 形式に変換するために payload() 関数を呼び出します。
    var data = payload("json");
    // Obtain the submitted property values. 
    // 送信されたプロパティ値を取得します。
    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;
    
    // Call the writeTableStoreTS method to write the temperature and humidity values to the corresponding columns based on the point in time at which the values are submitted. 
    // writeTableStoreTS メソッドを呼び出して、値が送信された時点に基づいて、温度と湿度の値を対応する列に書き込みます。
    writeTableStoreTs(1000, timeInUs, metricName, tags, fields, datasource);

    metricName パラメータを Temperature または Humidity に設定し、対応するデータを書き込むこともできます。サンプル コード:

    writeTableStoreTs(1000, [
        {
            "timeInUs": timestamp() * 1000,
            "metricName": "Temperature", // 温度
            "tags":tags,
            "fields":{"temperature": t},
            "dataSource": deviceName()
        },
        {
            "timeInUs": timestamp() * 1000,
            "metricName": "Humidity", // 湿度
            "tags":tags,
            "fields":{"humidity": h},
            "dataSource": deviceName()
        },
    ]);
  6. [デバッグ]。表示されるダイアログ ボックスで、プロダクトとデバイスを選択し、トピックを指定して、ペイロード データを入力し、スクリプトが想定どおりに実行されるかどうかを確認します。

    次の図はパラメータを示しています。调试数据

    次のような情報に類似した出力が返された場合、スクリプトは想定どおりに実行されています。运行结果

  7. [公開] をクリックします。

  8. [パーサー] タブの [データ転送] ページに移動します。 DataParser パーサーを見つけて、[アクション] 列の [開始] をクリックしてパーサーを起動します。

  9. データがプッシュされた後、OTS コンソールにログインします。データの受信に使用するテーブルの [データ エディタ] ページに移動し、指定されたデータが受信されているかどうかを確認します。 詳細については、「時系列データをクエリする」をご参照ください。

    SQL クエリ機能を使用して、OTS のデータを効率的に複雑なクエリと分析を実行できます。詳細については、「SQL を使用して時系列データをクエリする」をご参照ください。数据管理