ルールエンジンのデータ転送機能を使用して、時系列モデルの 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 インスタンスにデータを転送できます。
データ転送先を作成する
- IoT Platform コンソール にログインします。
概要 タブで、管理するインスタンスを見つけ、インスタンス名をクリックして [インスタンスの詳細] ページに移動します。

- 左側のナビゲーション ウィンドウで、 を選択します。
[データ転送] ページの右上隅にある [新しいバージョンに移動] をクリックして、新しいバージョンに移動します。
説明この手順を実行した場合、メッセージ転送 > データ転送 を選択すると、新しいバージョンの [データ転送] ページが表示されます。
[データ転送先] をクリックします。 [データ転送先] タブで、[データ転送先を作成] をクリックします。
[データ転送先を作成] ダイアログ ボックスで、データ転送先名を入力します。例:DataPurpose。パラメータを設定し、[OK] をクリックします。
次の表にパラメータを示します。
説明JSON 形式のデータのみ転送できます。
パラメータ
説明
操作
[tablestore にデータを保存] を選択します。
リージョン
OTS がアクティブになっているリージョンを選択します。
インスタンス
OTS インスタンスを選択します。
[インスタンスの作成] をクリックして OTS コンソールに移動し、時系列モデルの OTS インスタンスを作成できます。詳細については、「時系列モデルのインスタンスを作成する」をご参照ください。
ストレージ クラス
[時系列モデル] を選択します。
データ テーブル
データの受信に使用する時系列テーブルを選択します。
[データ テーブルの作成] をクリックして OTS コンソールに移動し、時系列テーブルを作成できます。詳細については、「時系列テーブルを作成する」をご参照ください。
ロール
IoT Platform に時系列テーブルにデータを書き込む権限を付与します。
Resource Access Management(RAM)ロールがない場合は、[RAM ロールの作成] をクリックして RAM コンソールに移動し、RAM ロールを作成して、ロールに権限を付与します。詳細については、「RAM ロールの作成」をご参照ください。
パーサを設定して起動する
DataParser という名前のパーサを作成します。詳細については、「パーサを作成する」をご参照ください。
[パーサの詳細] ページで、パーサを作成済みデータソースに関連付けます。
ウィザードの [データソース] ステップで、[データソースの関連付け] をクリックします。
表示されるダイアログ ボックスで、データソース[データソース] ドロップダウン リストから [OK] を選択し、 をクリックします。
[パーサの詳細] ページで、パーサを作成済みデータ転送先に関連付けます。
ウィザードの [データ転送先] をクリックします。[データ転送先] セクションで、[データ転送先の関連付け] をクリックします。
表示されるダイアログ ボックスで、データ目的[データ転送先] ドロップダウン リストから [OK] を選択し、 をクリックします。
[データ転送先 ID] セクションで、[データ転送先 ID] を表示して保存します。この例では、ID は 1000 です。
パーサ スクリプトを記述するときは、[データ転送先 ID] を使用する必要があります。
[パーサの詳細] ページで、[パーサ スクリプト] をクリックします。
コード エディタで、スクリプトを入力します。スクリプトの変更方法の詳細については、「スクリプト構文」をご参照ください。
関数パラメータの詳細については、「関数」をご参照ください。
// 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() }, ]);[デバッグ]。表示されるダイアログ ボックスで、プロダクトとデバイスを選択し、トピックを指定して、ペイロード データを入力し、スクリプトが想定どおりに実行されるかどうかを確認します。
次の図はパラメータを示しています。

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

[公開] をクリックします。
[パーサー] タブの [データ転送] ページに移動します。 DataParser パーサーを見つけて、[アクション] 列の [開始] をクリックしてパーサーを起動します。
データがプッシュされた後、OTS コンソールにログインします。データの受信に使用するテーブルの [データ エディタ] ページに移動し、指定されたデータが受信されているかどうかを確認します。 詳細については、「時系列データをクエリする」をご参照ください。
SQL クエリ機能を使用して、OTS のデータを効率的に複雑なクエリと分析を実行できます。詳細については、「SQL を使用して時系列データをクエリする」をご参照ください。
