Azure IoT Operations でデータ フロー グラフを作成する

データ フロー グラフは、ソースと変換先の間を移動するときにデータを変換する、構成可能な処理パイプラインです。 標準 データ フロー は、固定エンリッチ、フィルター、マップ シーケンスに従います。 データ フロー グラフを使用すると、変換を任意の順序でチェーンし、並列パスに分岐し、時間枠の経過と同時にデータを集計できます。

この記事では、データ フロー グラフを段階的に作成する手順について説明します。 データ フロー グラフと使用可能な変換の概要については、「 データ フロー グラフの概要」を参照してください。

データ フロー グラフでは現在、MQTT、Kafka、OpenTelemetry エンドポイントのみがサポートされています。 Data Lake、Microsoft Fabric OneLake、Azure Data Explorer、ローカルストレージなど、他のエンドポイントタイプはサポートしていません。

変換は式言語を用いて値、テスト条件、参照フィールドを計算します。 式は名前ではなく位置で入力を参照します。 inputs リストの最初の入力は $1、2番目は $2、という具合です。 cToFのような組み込み関数がこれらの値を変換・操作します。

演算子、関数、データ型、メタデータフィールドの完全なリストについては 、Expressionsリファレンスを参照してください。

前提条件

  • Kubernetes クラスターにデプロイされた Azure IoT Operations のインスタンス。 詳細については、「Deploy Azure IoT Operations」をご覧ください。
  • 開発用コンピューターにインストールされているAzure CLI。 利用可能な Azure CLI 拡張機能で、azure-iot-ops 拡張機能を使用するために必要な最小バージョンを確認してください。 az --version を使用してバージョンを確認し、必要に応じて az upgrade を使用して更新します。 詳細については、「 Azure CLI のインストール」を参照してください。

  • Azure CLIのAzure IoT Operations拡張機能。 次のコマンドを使用して、拡張機能を追加するか、それを最新バージョンに更新します。

    az extension add --upgrade --name azure-iot-ops
    

この記事のAzure CLI例は環境変数を使っており、各値を一度設定してからコマンドをコピー&ペーストできます as-is。 クイックスタートのAzure IoT Operations Codespaces環境を使っている場合、これらの変数はすでに設定済みなので、このステップを省略できます。 そうでなければ、コマンドを実行する前にシェル内で以下の環境変数を設定してください。

以下のスクリプトは、最も一般的に使われる環境変数を設定します。

環境変数 説明
SUBSCRIPTION_ID Azure IoT Operationsインスタンスを含むサブスクリプションのIDです。
RESOURCE_GROUP あなたのAzure IoT Operationsインスタンスを含むリソースグループの名前です。
AIO_INSTANCE_NAME あなたのAzure IoT Operationsインスタンスの名前です。 インスタンスを挙げるには、 az iot ops list -o tableを実行してください。
CLUSTER_NAME あなたのインスタンスをホストしているAzure Arc対応のKubernetesクラスターの名前です。
LOCATION 例えばeastusなど、新しい資源を活用するためのAzure地域。
SUBSCRIPTION_ID=<subscription-id>
RESOURCE_GROUP=<resource-group-name>
AIO_INSTANCE_NAME=<instance-name>
CLUSTER_NAME=<cluster-name>
LOCATION=<region>

この記事で使っている変数を設定するだけで十分です。 この記事では、選択したリソース名に追加の環境変数を使う場合があります。 記事では、導入された場所の位置をどう設定するか説明しています。

本記事では、データフローグラフとプロファイル名に環境変数 GRAPH_NAMEPROFILE も使用しています。 関連するコマンドを実行する前にそれぞれ設定してください。

データ フロー グラフを作成する

データ フロー グラフには、データを取り込む ソース 、データを処理する 変換 、送信先の 3 種類 要素が含まれています。データをフローさせる順序で接続します。

  1. 運用体験では、Azure IoT Operationsインスタンスに移動します。

  2. データ フロー グラフ>作成データ フロー グラフを選択します

    データ フロー グラフを示す操作エクスペリエンスのスクリーンショット。

  3. データ フロー グラフの名前を入力し、データ フロー プロファイルを選択します。 既定では、既定のプロファイルが選択されています。

    [名前] フィールドと [プロファイル] ドロップダウンを示す [操作エクスペリエンスの作成] ダイアログのスクリーンショット。

  4. キャンバスに要素を追加してパイプラインを構築します。

    1. ソースの追加: ソース エンドポイントを選択し、受信メッセージをサブスクライブするトピックを構成します。

      エンドポイントのドロップダウンとトピックの入力を示す操作エクスペリエンスのソース構成パネルのスクリーンショット。

    2. 変換の追加: 1 つ以上の変換を選択してデータを処理します。 利用可能な変換には、マップ、フィルター、ブランチ、コンカテネート、ウィンドウ、スロットルなどがあります。 各変換の種類の詳細については、「 データ フロー グラフの概要」を参照してください。

      使用可能な変換の種類を示す操作エクスペリエンスの変換選択メニューのスクリーンショット。

      ブランチ変換の構成例を示す操作エクスペリエンスのスクリーンショット。

    3. 宛先を追加する: 宛先エンドポイントを選択し、処理されたデータを送信するトピックまたはパスを構成します。

      移行先の例を示す操作エクスペリエンスのスクリーンショット。

  5. データをフローさせる順序で要素を接続します。

    接続されたソース、変換、および変換先のパイプラインを示す操作エクスペリエンス キャンバスのスクリーンショット。

  6. [保存] を選択してデータ フロー グラフをデプロイします。

ソースを構成する

ソースは、データがパイプラインに入る場所を定義します。 エンドポイント参照と 1 つ以上のトピックを指定します。

データ フロー グラフ エディターで、ソース要素を選択し、次の構成を行います。

Setting 説明
エンドポイント 使用するデータ フロー エンドポイント。 ローカル MQTT ブローカーの 既定値 を選択します。
トピック 受信メッセージのために 1 つまたは複数のトピックを登録する。

変換を追加する

ソースと変換先の間でプロセス データを変換します。 各変換は組み込みのアーティファクトを参照し、構成ルールを持っています。

使用可能な組み込み変換は次のとおりです。

変換 アーティファクト 説明
地図 azureiotoperations/graph-dataflow-map:1.0.0 フィールドの名前変更、再構築、計算、およびコピーを行います。
フィルター azureiotoperations/graph-dataflow-filter:1.0.0 条件に一致するメッセージを削除します。
ブランチ azureiotoperations/graph-dataflow-branch:1.0.0 条件に基づいて、各メッセージを true または false パスにルーティングします。
連結 azureiotoperations/graph-dataflow-concatenate:1.0.0 2つ以上のパスを再び1つにまとめます。
ウィンドウ azureiotoperations/graph-dataflow-window:1.0.0 一定期間にわたってメッセージを収集し、集計します。
スロットル azureiotoperations/graph-dataflow-throttle:1.0.0 MQTTトピックパターンごとのメッセージレートを制限してください。

外部データでメッセージをエンリッチする方法の詳細については、「外部データ を使用したエンリッチメント」を参照してください。

データ フロー グラフ エディターで、[変換の 追加] を選択し、変換の種類を選択します。 ビジュアル エディターでルールを構成します。

複数の変換を連結する

任意の数の変換を連鎖します。 データの流れを指定した順番で、nodeConnections セクションで接続してください。

キャンバス上の変換間の接続をドラッグして、処理順序を定義します。

宛先を構成する

宛先は処理されたデータがどこに行くかを定義します。 エンドポイント参照とトピックまたはパスを指定します。

変換先の要素を選択し、次の構成を行います。

Setting 説明
エンドポイント データを送信するデータ フロー エンドポイント。
Topic 処理されたデータを発行するトピックまたはパス。

メッセージの内容に基づく動的なトピック ルーティングについては、「 さまざまなトピックにメッセージをルーティングする」を参照してください。

データ フロー グラフが動作していることを確認する

データ フロー グラフをデプロイした後、実行されていることを確認します。

運用体験では、データフローグラフを選択してその状態を確認します。 正常なグラフには 、実行中 の状態が表示されます。