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

IoT Platform:TSDB へのデータ転送

最終更新日:Feb 06, 2024

データ転送ルールを設定して、処理されたデータをストレージ用の時系列データベース (TSDB) に転送できます。 このトピックでは、データを宛先インスタンスに転送する方法について説明します。

前提条件

  • データをTSDBに転送できるIoT Platformインスタンスは、TSDBへのデータ転送をサポートするリージョンに作成されます。 詳細は、「リージョン」をご参照ください。

  • 仮想プライベートクラウド (VPC) にデプロイされたTSDBインスタンスは、日本 (東京) リージョンで作成されます。 詳細については、以下をご参照ください。 TSDBドキュメント
  • データ転送ルールが作成され、データの処理に使用されるSQL文が書き込まれます。 詳細については、「データ転送ルールの設定」をご参照ください。

背景情報

データデスティネーションを設定すると、次の設定が自動的に完了します。 その後、IoT Platformのルールエンジンを使用して、デバイスデータをTSDBインスタンスに転送できます。

  • IoT Platformは、TSDBインスタンスが存在するvSwitchの2つのIPアドレスを占有します。 vSwitchのIPv4 CIDRブロックがTSDBインスタンスのホワイトリストに追加されます。
  • TSDBインスタンスが存在するVPCにマネージドセキュリティグループが作成されます。 セキュリティグループのデフォルト名はsg-nsm- で始まります。

制限事項

  • データはリージョン内でのみ転送できます。 たとえば、でデプロイされているIoT Platformインスタンスからのみデータを転送できます。 日本 (東京) にデプロイされたTSDBインスタンスのリージョン 日本 (東京) のリージョン。
  • VPCにデプロイされているTSDBインスタンスにのみデータを転送できます。
  • データはJSON形式でのみ転送できます。
  • 転送されたメッセージでは、timestampおよびtag valueとして設定されているフィールドを除いて、すべてのフィールドがメトリックとしてTSDBに書き込まれます。 metricパラメーターのデータ型は、数値と文字列をサポートします。 他のデータ型を使用すると、データがデータベースに書き込まれない場合があります。

使用上の注意

新しいバージョンまたは古いバージョンのデータ転送機能を使用して、Lindormにデータを転送できます。 新しいバージョンのデータ転送機能を使用する方法の詳細については、「新しいバージョンのデータ転送機能を使用してLindormにデータを転送する」をご参照ください。

手順

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

  3. 左側のナビゲーションウィンドウで、[メッセージ転送] > [データ転送] を選択します。
  4. 管理するルールの横にある [表示] をクリックします。 [データ転送ルール] ページが表示されます。
    重要 新しいバージョンの [データ転送] ページが表示されている場合は、右上隅の [前のバージョンに戻る] をクリックし、管理するルールの [操作] 列の [表示] をクリックします。
  5. [データ転送] セクションで、[操作の追加] をクリックします。
  6. [操作の追加] ダイアログボックスで、[操作] ドロップダウンリストから [データをTSDBに保存] を選択します。 ページの指示に従って他のパラメーターを設定し、[OK] をクリックします。
    パラメーター説明
    操作[データをTSDBに保存] を選択します。
    RegionIoT Platformインスタンスがデプロイされているリージョン: 日本 (東京)
    TSDBインスタンスデータの転送先として作成したVPC内のTSDBインスタンスを指定します。
    メトリックデータ型metricパラメーターのデータ型を指定します。 有効な値: Numeric TypeおよびString

    アイコンをクリックしてHelp詳細情報を取得します。

    timestampタイムスタンプ。 次の設定がサポートされています。
    • エスケープ文字式 ${} を使用します。 たとえば、パラメーターを ${time} に設定します。 これは、パラメーター値がデータソーストピックのメッセージのtimeフィールドの値に対応することを指定します。
    • ルールエンジン関数timestamp() を使用します。 これは、パラメーター値がルールエンジンサーバーのタイムスタンプに設定されることを指定します。
    • 値を入力してください。 入力値はUNIXタイムスタンプである必要があります。 たとえば、1404955893000を入力できます。
    タグ名データを识别するためのタグ名を指定します。 タグ名には、英数字、および次の特殊文字を使用できます。:,.'/-_()[]
    タグ値タグの値を指定します。 次の設定がサポートされています。
    • エスケープ文字式 ${} を使用します。 たとえば、データソーストピックのメッセージの構造にキーがcityであるlocationプロパティが含まれている場合、タグ値を ${city} に設定できます。 これは、パラメータ値がメッセージのcityフィールドの値に対応することを指定します。 この設定を使用することを推奨します。
    • deviceName() など、ルールエンジンで指定された関数を使用します。 これは、タグ値がデバイスの名前であることを指定します。 サポートされている機能の詳細については、「functions」をご参照ください。
    • 定数を入力します。 たとえば、定数北京を入力できます。 値には、英数字、および次の特殊文字を使用できます。:,.'/-_()[]
    説明
    • 最大8つのタグ名と8つのタグ値を追加できます。
    • TSDBが設定されたタグ名とタグ値を取得できることを確認します。 TSDBがタグの名前または値を取得できない場合、データをデータベースに書き込むことはできません。
    ロールTSDBにデータを書き込む権限をIoT Platformに付与します。
  7. [データ転送] ページに移動し、管理しているルールを見つけて、ルールの [操作] 列で [開始] をクリックします。

データ転送の例

次のコードブロックは、データ転送ルールのサンプルSQL文を提供します。

SELECT時間、都市、電力、距離FROM "/alprodu ****/myDevice/user/update";

次のセクションでは、SQL文に基づいてルールエンジンがデータを処理し、TSDBにデータを書き込む方法を示します。

  1. サンプルSQLステートメントでは、ルールエンジンが /alprodu ****/myDevice/user/updateトピックのメッセージからtimecitypower、およびdistanceフィールドをフィルタリングし、フィルタリングされたフィールドの内容を転送するメッセージの内容として使用することを示しています。

    次の例は、上記のSQL文に基づいてデータが処理された後に転送するメッセージの内容を示しています。

    {
    "time": 1513677897、"city": "beijing" 、"distance": 8545、"power": 93.0
    } 
  2. ルールエンジンは、設定されたデータ転送操作に基づいて、2行のデータをTSDBに書き込みます。

    この例では、次のデータがTSDBに書き込まれます。

    • データ: timestamp:1513677897、[metric:power value:93.0]
      タグ: cityName=beijing 
    • データ: timestamp:1513677897、[metric:distance value:8545]
      タグ: cityName=beijing 

    次のセクションでは、データがTSDBに書き込まれる方法について説明します。

    上記の転送されたメッセージでは、timestampとして設定されたtimeフィールドとtag値として設定されたcityフィールドを除いて、他のフィールド (powerdistance) がメトリックとしてTSDBに書き込まれます。