処理済みデータを Time Series Database (TSDB) に転送して保存するために、データ転送ルールを構成できます。 このトピックでは、データ転送プロセスについて説明します。この例では、Thing Specification Language (TSL) 通信トピックをソース トピックとして使用します。
前提条件
TSDB へのデータ転送をサポートするリージョンに、TSDB にデータを転送できる IoT プラットフォーム インスタンスが作成されていること。 詳細については、「リージョン」をご参照ください。
DataSource という名前のデータソースが作成され、TSL 通信トピックがデータソースに追加されていること。詳細については、「データソースの作成」をご参照ください。
- 日本 (東京) リージョンに、仮想プライベートクラウド (VPC) にデプロイされた TSDB インスタンスが作成されていること。詳細については、「TSDB ドキュメント」をご参照ください。
背景情報
データ転送先を構成すると、以下の構成が自動的に完了します。その後、IoT プラットフォームのルールエンジンを使用して、デバイス データを TSDB インスタンスに転送できます。
- IoT プラットフォームは、TSDB インスタンスが存在する vSwitch の 2 つの IP アドレスを占有します。 vSwitch の IPv4 CIDR ブロックは、TSDB インスタンスのホワイトリストに追加されます。
- TSDB インスタンスが存在する VPC に、マネージド セキュリティグループが作成されます。セキュリティグループのデフォルト名は、sg-nsm- で始まります。
この例では、以下のデータが TSDB に書き込まれます。
- タイムスタンプ:
timestamp()関数を使用して、デバイスがデータを送信した時刻を取得します。 - タグ:
deviceName()関数を使用して DeviceName を取得します。{"deviceName":deviceName()}タグがデータベースに書き込まれます。 - メトリック: JSONPath 式を使用して、デバイスから送信された 温度 プロパティと 湿度 プロパティの値を取得します。
制限事項
- データは、リージョン内でのみ転送できます。たとえば、日本 (東京) リージョンにデプロイされた IoT プラットフォーム インスタンスから、日本 (東京) リージョンにデプロイされた TSDB インスタンスにのみデータを転送できます。
- VPC にデプロイされた TSDB インスタンスにのみデータを転送できます。
- JSON 形式でのみデータを転送できます。
- 転送されたメッセージでは、メトリックタイムスタンプ および タグ値 として構成されたフィールドを除くすべてのフィールドが、メトリック として TSDB に書き込まれます。 パラメータのデータ型は、数値型と文字列型をサポートしています。他のデータ型を使用すると、データベースへのデータの書き込みに失敗する可能性があります。
使用上の注意
データ転送機能の新バージョンまたは旧バージョンを使用して、TSDB にデータを転送することもできます。データ転送機能の旧バージョンの使用方法の詳細については、「TSDB へのデータ転送」をご参照ください。
データ転送先を作成する
- IoT プラットフォーム コンソール にログオンします。
[概要] ページで、[すべての環境] をクリックします。 [すべての環境] タブで、管理するインスタンスを見つけ、インスタンス ID またはインスタンス名をクリックします。
- 左側のナビゲーション ウィンドウで、 を選択します。
[データ転送] ページの右上隅にある [新バージョンに移動] をクリックして、新バージョンに移動します。
説明この手順を実行した場合、[メッセージ転送] > [データ転送] を選択すると、新バージョンの [データ転送] ページが表示されます。
[データ転送先] をクリックします。 [データ転送先] タブで、[データ転送先を作成] をクリックします。
[データ転送先を作成] ダイアログ ボックスで、データ転送先名を入力します。この例では、DataPurpose を使用します。パラメータを構成し、[OK] をクリックします。
パラメータ
説明
操作
[データを TSDB に保存] を選択します。
リージョン
IoT プラットフォーム インスタンスが存在するリージョンを指定します。
TSDB インスタンス
VPC に作成した TSDB インスタンスを指定します。
メトリック データ型
メトリック パラメータのデータ型を指定します。有効な値: [数値型] および [文字列]。
アイコンをクリックするとヘルプが表示されます。ロール
IoT プラットフォームに TSDB にデータを書き込む権限を付与します。
パーサーを構成して起動する
DataParser という名前のパーサーを作成します。詳細については、「パーサーの作成」をご参照ください。
[パーサーの詳細] ページで、パーサーを作成済みデータソースに関連付けます。
ウィザードの [データソース] ステップで、[データソースの関連付け] をクリックします。
表示されるダイアログ ボックスで、データソース[データソース] ドロップダウン リストから [OK] を選択し、 をクリックします。
[パーサーの詳細] ページで、パーサーを作成済みデータ転送先に関連付けます。
ウィザードの [データ転送先] をクリックします。 [データ転送先] セクションで、[データ転送先の関連付け] をクリックします。
表示されるダイアログ ボックスで、データ目的[データ転送先] ドロップダウン リストから [OK] を選択し、 をクリックします。
[データ転送先] セクションで、[データ転送先 ID] を表示して保存します。この例では、ID は 1000 です。
パーサースクリプトを記述するときは、[データ転送先 ID] を使用する必要があります。
[パーサーの詳細] ページで、[パーサースクリプト] をクリックします。
コードエディタで、スクリプトを入力します。スクリプトの変更方法の詳細については、「スクリプト構文」をご参照ください。
関数パラメータの詳細については、「関数」をご参照ください。
// payload() 関数を使用して、デバイスから送信されたデータを取得し、JSON 形式のデータに変換します。 var data = payload("json"); // 送信された温度と湿度の値をフィルタリングします。 var h = data.items.Humidity.value; var t = data.items.Temperature.value; // 送信された TSL データを転送します。 writeTsdb(1000,timestamp(),"temperature", t , {"deviceName":deviceName()}); writeTsdb(1000,timestamp(),"humidity", h , {"deviceName":deviceName()});[デバッグ] をクリックします。表示されるダイアログ ボックスで、プロダクトとデバイスを選択し、トピックを指定して、ペイロード データを入力し、スクリプトが想定どおりに実行されるかどうかを確認します。
次の図はパラメータを示しています。

次の結果は、スクリプトが想定どおりに実行されたことを示しています。

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