次の方法で共有


チュートリアル: 処理されたデータから分析情報を取得する

このチュートリアルでは、リアルタイム ダッシュボードを設定して、前のチュートリアルで Event Hubs に送信した OPC UA データから分析情報をキャプチャします。 Microsoft Fabric のリアルタイム インテリジェンスを使って、Event Hubs から Microsoft Fabric にデータを取り込み、リアルタイム ダッシュボードのソースにできる KQL データベースにそれをマップします。 その後、ダッシュボードを作成し、経時的に分析情報をキャプチャして値を表示するビジュアル タイルにそのデータを表示します。

これらの操作は、初めにエッジで Azure IoT Operations をデプロイし、クラウドにあるデバイス データからの分析情報の取得までを通して行う、エンド ツー エンドのサンプル チュートリアル エクスペリエンスの最後の手順です。

前提条件

このチュートリアルを開始する前に、データフローを使用した資産テレメトリをクラウドへの送信に関するチュートリアルを完了する必要があります

Microsoft Fabric サブスクリプションも必要です。 サブスクリプション内では、ワークスペースに対する共同作成者以上のアクセス許可が必要になります。

さらに、お使いの Fabric テナントで、リアルタイム ダッシュボードの作成が許可されている必要があります。 これは、テナント管理者が有効にできる設定です。 詳しくは、「管理ポータルで、テナント設定を有効にする」をご覧ください。

どのような問題が解決されますか?

OPC UA データがクラウドに届くと、多くの情報を分析に利用できます。 そのデータを整理し、データから分析情報を導き出すグラフと視覚エフェクトを含むレポートを作成したい場合があります。 このチュートリアルの手順では、そのデータをリアルタイム インテリジェンスに接続して、リアルタイム ダッシュボードを構築する方法を見ていきます。

リアルタイム インテリジェンスにデータを取り込む

このセクションでは、Microsoft Fabric の Eventstream を設定して、リアルタイム インテリジェンスの KQL データベースにイベント ハブを接続します。 このプロセスには、ペイロード データを JSON 形式から KQL の列に変換するためのデータ マッピングの設定が含まれます。

Eventstream を作成する

このセクションでは、Event Hubs から Microsoft Fabric のリアルタイム インテリジェンスに、そして最終的には KQL データベースにデータを取り込むために使われる、Eventstream を作成します。

まずは、Microsoft Fabric のリアルタイム インテリジェンス エクスペリエンスに移動し、Fabric ワークスペースを開きます。

Microsoft Fabric での Eventstream の作成」の手順に従って、ワークスペースに新しい Eventstream リソースを作成します。

Eventstream が作成されると、メイン エディターが表示され、そこで Eventstream の作成を開始できます。

ソースとしてイベント ハブを追加する

次に、前のチュートリアルのイベント ハブを Eventstream のデータ ソースとして追加します。

イベント ソースの追加は、「Azure Event Hubs のソースをイベントストリームに追加する」の手順のようにして行います。 次の点に注意してください。

  • 共有アクセス キー認証を使用して新しいクラウド接続を作成します。
    • イベント ハブでローカル認証が有効になっていることを確認します。 これは、Azure portal の [概要] ページから設定できます。
  • [コンシューマー グループ] では、既定の選択 ($Default) を使用します。
  • [データ形式] では、[JSON] を選択します (既定で既に選択されている可能性があります)。

このフローを完了すると、Azure イベント ハブが Eventstream ライブ ビューにソースとして表示されます。

AzureEventHub ソースを含む Eventstream のスクリーンショット。

データフローを確認する

次の手順のようにしてこれまでの作業を確認し、データが Eventstream に流れることを確認します。

  1. 前のチュートリアルで Azure IoT Operations をデプロイしたクラスターを開始します。 Azure IoT Operations インスタンスと共にデプロイした OPC PLC シミュレーターが実行し、MQTT ブローカーへのデータの送信を始めるはずです。 「データが流れていることを確認する」の説明に従い、mqttui を使ってフローのこの部分を確認できます。

  2. データが伝達されるまで数分待ちます。 次に、Eventstream ライブ ビューで、AzureEventHub ソースを選んで [データ プレビュー] を更新します。 シミュレーターからの JSON データがテーブルに表示され始めることがわかります。

    AzureEventHub ソースからのデータを含む Eventstream のスクリーンショット。

ヒント

データが Eventstream に到達していない場合は、イベント ハブのアクティビティを調べて、メッセージを受信していることを確認することをお勧めします。 これは、デバッグするフローのセクションを分離するのに役立ちます。

KQL リソースを準備する

このセクションでは、データの送り先として使う KQL データベースを Microsoft Fabric ワークスペースに作成します。

  1. イベントハウスを作成する」の手順に従い、子 KQL データベースを含むリアルタイム インテリジェンス イベントハウスを作成します。 完了する必要があるのは、「イベントハウスを作成する」という名前のセクションだけです。

  2. 次に、データベース内にテーブルを作成します。 それに OPCUA という名前を付けて、次の列を使います。

    列名 データ型
    AssetId string
    温度 小数
    湿度 小数
    Timestamp datetime
  3. OPCUA テーブルが作成されたら、ご自分のデータベースを選択し、[データの探索] ボタンを使ってクエリ ウィンドウを開きます。

    [データの探索] ボタンを示すスクリーンショット。

  4. 次の KQL クエリを実行して、テーブルのデータ マッピングを作成します。 データ マッピングは、 opcua_mapping という名前になります。

    .create table ['OPCUA'] ingestion json mapping 'opcua_mapping' '[{"column":"AssetId", "Properties":{"Path":"$[\'AssetId\']"}},{"column":"Temperature", "Properties":{"Path":"$[\'ThermostatTemperature\']"}},{"column":"Humidity", "Properties":{"Path":"$[\'ThermostatHumidity\']"}},{"column":"Timestamp", "Properties":{"Path":"$[\'EventProcessedUtcTime\']"}}]'
    

データ テーブルを送り先として追加する

次に、Eventstream ビューに戻ると、新しい KQL テーブルを Eeventstream の送り先として追加できます。

イベントストリームに KQL データベースの転送先を追加する」の手順に従って、送り先を追加します。 次の点に注意してください。

  • 直接インジェスト モードを使います。

  • [構成] ステップでは、前に作成した OPCUA テーブルを選びます。

  • [検査] ステップでは、[詳細] オプションを開きます。 [マッピング][既存のマッピング] を選んで、opcua_mapping を選びます。

    既存のマッピングの追加のスクリーンショット。

    ヒント

    既存のマッピングが見つからない場合は、Eventstream エディターを最新の情報に更新して、送り先追加手順をもう一度始めてみます。 または、「Eventstreams からデータを取得する」で説明されているように、Eventstream からではなく KQL テーブルからこの同じ構成プロセスを始めることもできます。

このフローを完了すると、KQL テーブルが Eventstream ライブ ビューに送り先として表示されます。

データが伝達されるまで数分待ちます。 次に、KQL の送り先を選び、[データ プレビュー] を更新して、Eventstream からの処理された JSON データがテーブルに表示されることを確認します。

KQL データベース送り先のデータでの Eventstream のスクリーンショット。

必要に応じて、このデータの表示とクエリを KQL データベースで直接行うこともできます。

KQL データベースから同じデータのクエリを実行しているスクリーンショット。

リアルタイム ダッシュボードの作成

このセクションでは、チュートリアルのデータを視覚化するために新しいリアルタイム ダッシュボードを作成します。 ダッシュボードでは、資産 ID とタイムスタンプによるフィルター処理が可能で、温度と湿度のデータの視覚的なサマリーが表示されます。

Note

リアルタイム ダッシュボードを作成できるのは、テナント管理者が Fabric テナントでリアルタイム ダッシュボードの作成を有効にしている場合のみです。 詳しくは、「管理ポータルで、テナント設定を有効にする」をご覧ください。

ダッシュボードを作成してデータ ソースを接続する

新しいダッシュボードを作成する」セクションの手順に従って、リアルタイム インテリジェンスの機能から新しいリアルタイム ダッシュボードを作成します。

次に、「データ ソースの追加」セクションの手順に従って、データベースをデータ ソースとして追加します。 次の点に注意してください。

  • [データ ソース] ペインでは、データベースは [OneLake データ ハブ] の下にあります。

パラメータのコンフィギュレーション

次に、資産 ID とタイムスタンプでビジュアルをフィルター処理できるようにするために、ダッシュボードのいくつかのパラメーターを構成します。 ダッシュボードには、時間の範囲でフィルター処理するための既定のパラメーターが用意されているため、資産 ID でフィルター処理できるパラメーターを作成するだけで済みます。

  1. [管理] タブに切り替え、[パラメーター] を選択します。 [+ 追加] を選択して、新しいパラメーターを追加します。

    ダッシュボードへのパラメーターの追加の様子のスクリーンショット。

  2. 以下の特性を持つ新しいパラメーターを作成します。

    • ラベル: "資産"
    • パラメーターの種類: "単一選択" (既定で既に選択されています)
    • 変数名: _asset
    • データ型: string (既定で既に選択されています)
    • ソース: "クエリ"
      • データ ソース: データベース (既定で既に選択されています)

      • [クエリの編集] を選択し、次の KQL クエリを追加します。

        OPCUA
        | summarize by AssetId
        
    • 値列: AssetId
    • 既定値: "クエリの最初の値を選択する"
  3. [完了] を選択してパラメーターを保存します。

折れ線グラフ タイルを作成する

次に、選択した資産と時間の範囲の温度と湿度の時間変化の折れ線グラフを表示するタイルをダッシュボードに追加します。

  1. [+ タイルの追加] または [新しいタイル] を選んで、新しいタイルを追加します。

    ダッシュボードへのタイルの追加のスクリーンショット。

  2. タイルに次の KQL クエリを入力します。 このクエリは、時間の範囲と資産に対して、ダッシュボード セレクターのフィルター パラメーターを適用して、タイムスタンプ、温度、湿度を含む結果のレコードをプルします。

    OPCUA 
    | where Timestamp between (_startTime.._endTime)
    | where AssetId == _asset
    | project Timestamp, Temperature, Humidity
    

    クエリを [実行] して、データが見つかることを確認します。

    タイル クエリの追加のスクリーンショット。

  3. クエリ結果の横にある [+ ビジュアルの追加] を選んで、このデータのビジュアルを追加します。 次の設定でビジュアルを作成します。

    • タイル名: "温度の湿度の時間変化"
    • ビジュアルの種類: "折れ線グラフ"
    • Data:
      • Y 列: "温度 (10 進数)" と "湿度 (10 進数)" (既定で既に推論されています)
      • X 列: "タイムスタンプ (日付/時刻)" (既定で既に推論されています)
    • Y 軸:
      • ラベル: "単位"
    • X 軸:
      • ラベル: "タイムスタンプ"

    [変更の適用] を選んでタイルを作成します。

    タイル ビジュアルの追加のスクリーンショット。

完成したタイルをダッシュボードに表示します。

1 つのタイルを含むダッシュボードのスクリーンショット。

最大値タイルを作成する

次に、温度と湿度の最大値を表示するタイルをいくつか作成します。

  1. [新しいタイル] を選んで、新しいタイルを作成します。

  2. タイルに次の KQL クエリを入力します。 このクエリは、時間の範囲と資産に対して、ダッシュボード セレクターのフィルター パラメーターを適用して、結果のレコードから温度の最高値を取得します。

    OPCUA
    | where Timestamp between (_startTime.._endTime)
    | where AssetId == _asset
    | top 1 by Temperature desc
    | summarize by Temperature
    

    クエリを [実行] して、最高温度が見つかることを確認します。

  3. [+ ビジュアルの追加] を選んで、このデータのビジュアルを追加します。 次の設定でビジュアルを作成します。

    • タイル名: "最高温度"
    • ビジュアルの種類: "統計"
    • Data:
      • 値列: "温度 (10 進数)" (既定で既に推論されています)

    [変更の適用] を選んでタイルを作成します。

    統計ビジュアルの追加のスクリーンショット。

  4. 完成したタイルをダッシュボードに表示します (テキストを完全に表示するには、タイルのサイズ変更が必要な場合があります)。

    2 つのタイルを含むダッシュボードのスクリーンショット。

  5. タイルのオプションを開いて、[タイルの複製] を選びます。

    ダッシュボードからのタイルの複製のスクリーンショット。

    これにより、ダッシュボードに同じタイルが作成されます。

  6. 新しいタイルで、鉛筆アイコンを選んで編集します。

  7. KQL クエリの TemperatureHumidity に置き換えて、次のクエリと一致するようにします。

    OPCUA
    | where Timestamp between (_startTime.._endTime)
    | where AssetId == _asset
    | top 1 by Humidity desc
    | summarize by Humidity
    

    クエリを [実行] して、最高湿度が見つかることを確認します。

  8. [ビジュアルの書式設定] ペインで、次の設定を更新します。

    • タイル名: "最大湿度"
    • Data:
      • 値列: "湿度 (10 進数)" (既定で既に推論されています)

    [変更の適用] を選択します。

  9. 完成したタイルをダッシュボードに表示します。

    3 つのタイルを含むダッシュボードのスクリーンショット。

  10. 完成したダッシュボードを [保存] します。

これで、以上のチュートリアルでの資産データに関するさまざまな種類のビジュアルを表示するダッシュボードが作成されました。 ここからは、自分でフィルターを試したり、他のタイルの種類を追加したりして、ダッシュボードでデータをさらに操作できる方法を確認できます。

問題をどのように解決したか。

このチュートリアルでは、Eventstream を使って、Event Hubs のデータを Microsoft Fabric リアルタイム インテリジェンスの KQL データベースに取り込みました。 次に、そのデータを利用して、時間と共に変化する値を視覚的に追跡するリアルタイム ダッシュボードを作成しました。 さまざまなソースからのエッジ データを Microsoft Fabric で関連付けると、資産の正常性、使用率、運用傾向に関するより深い分析情報を提供する、視覚化と対話の機能を備えたレポートを作成できます。 これにより、生産性を高め、資産のパフォーマンスを向上させ、情報に基づいた意思決定を促進していっそう高いビジネス成果を上げることができます。

これで、クラウドでの Azure IoT Operations を使用したデバイス データのデプロイから分析までの管理に関するチュートリアル フローの最後のステップは終わりです。

リソースをクリーンアップする

次のチュートリアルに進む場合は、すべてのリソースを保持してください。

Azure IoT Operations デプロイは削除するが、クラスターは保持する場合は、az iot ops delete コマンドを使用します。

az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP

このクイックスタート用に作成したすべてのリソースを削除する場合は、Azure IoT Operations をデプロイした Kubernetes クラスターを削除した後、そのクラスターを含んでいた Azure リソース グループを削除します。

これらのクイックスタートで Codespaces を使った場合は、GitHub から Codespace を削除します。

Note

このリソース グループには、このチュートリアルで作成した Event Hubs 名前空間が含まれています。

また、このチュートリアルに関連付けられている Microsoft Fabric ワークスペースやその中の Eventstream、Eventhouse、リアルタイム ダッシュボードなどのすべてのリソースも削除してかまいません。