Azure Stream Analytics on IoT Edge

Azure Stream Analytics on IoT Edge を使用することで、開発者は、ほぼリアルタイムの分析インテリジェンスをより IoT デバイスに近い場所に展開し、デバイス生成データの価値を最大限に活用できるようになります。 Azure Stream Analytics は、低遅延、回復性、帯域幅の効率的な使用、およびコンプライアンスを考慮して設計されています。 企業は制御ロジックを生産工程に近い場所に展開し、クラウドで実行されるビッグ データ分析を補完できます。

Azure Stream Analytics on IoT Edge は Azure IoT Edge フレームワークの内部で実行されます。 Stream Analytics でジョブが作成されたら、IoT Hub を使用して展開し、管理できます。

一般的なシナリオ

このセクションでは、Stream Analytics on IoT Edge の一般的なシナリオについて説明します。 次の図は、IoT デバイスと Azure クラウド間でのデータ フローを示したものです。

High level diagram of IoT Edge

コマンドと制御の待機時間が短い

製造安全システムは、非常に短い待機時間で運用データに応答する必要があります。 Stream Analytics on IoT Edge を使用することで、センサー データをほぼリアルタイムで分析し、異常を検出した際はコマンドを発行してマシンを停止したり、アラートをトリガーしたりできます。

クラウドへの接続が制限されている

リモート採掘装置、接続された船舶、海洋掘削など、ミッション クリティカルなシステムでは、クラウド接続が断続的なときでも、データを分析し、そのデータに対応する必要があります。 Stream Analytics では、ネットワーク接続とは関係なくストリーミング ロジックが実行され、さらなる処理や保存のためにクラウドに送信するデータを選択できます。

帯域幅が制限されている

ジェット エンジンやコネクテッド カーによって生成されるデータ量は膨大になる可能性があるため、クラウドに送信する前に、データをフィルター処理または前処理する必要があります。 Stream Analytics を使用すると、クラウドに送信する必要があるデータをフィルター処理したり集計したりできます。

コンプライアンス

法令順守では、一部のデータについてはクラウドに送信する前に、ローカルでの匿名化または集計が必要になる可能性があります。

Azure Stream Analytics のエッジ ジョブ

Stream Analytics エッジ ジョブは、Azure IoT Edge デバイスに展開されたコンテナー内で実行されます。 Edge ジョブは 2 つの部分で構成されます。

  • ジョブ定義の役割を担うクラウド部分: ユーザーが、クラウド内の入力、出力、クエリ、その他の設定 (順不同のイベントなど) を定義します。

  • IoT デバイス上で実行されているモジュール。 モジュールが Stream Analytics エンジンを含んでおり、クラウドからジョブ定義を受け取ります。

Stream Analytics では、IoT Hub を使用してエッジ ジョブをデバイスに展開します。 詳細については、IoT Edge のデプロイに関するページを参照してください。

Azure Stream Analytics Edge job

Edge ジョブの制限事項

目的は、IoT Edge ジョブとクラウド ジョブの間の類似性を確認することです。 ほとんどの SQL クエリ言語機能は、エッジとクラウドの両方でサポートされています。 ただし、次の機能はエッジ ジョブではサポートされていません。

  • JavaScript でのユーザー定義関数 (UDF)。 UDF は、IoT Edge ジョブ向けの C# (プレビュー) で使用できます。
  • ユーザー定義集計 (UDA)。
  • Azure ML 関数。
  • 入力/出力の AVRO 形式。 現時点では、CSV と JSON のみがサポートされています。
  • 次の SQL 演算子:
    • PARTITION BY
    • GetMetadataPropertyValue
  • 遅延到着ポリシー

ランタイムとハードウェア要件

Stream Analytics on IoT Edge を実行するには、Azure IoT Edge を実行できるデバイスが必要です。

Stream Analytics と Azure IoT Edge では、Docker コンテナーを使用して、複数のホスト オペレーティング システム (Windows、Linux) で実行されるポータブル ソリューションを提供します。

Stream Analytics on IoT Edge は、x86-64 または ARM (Advanced RISC Machines) アーキテクチャの両方で実行される Windows および Linux イメージとして使用可能になります。

入力と出力

Stream Analytics Edge ジョブは、IoT Edge デバイスで実行されている他のモジュールから入力と出力を取得できます。 特定のモジュールとの接続を確立するには、展開時にルーティング構成を設定します。 詳細については、IoT Edge モジュールの構成に関するドキュメントをご覧ください。

入力と出力の両方で、CSV 形式および JSON 形式がサポートされます。

Stream Analytics ジョブで作成した入力ストリームおよび出力ストリームごとに、対応するエンドポイントが、展開済みのモジュールに作成されます。 こうしたエンドポイントは、展開のルートで使用できます。

サポートされているストリーム入力の種類は次のとおりです。

  • Edge ハブ
  • イベント ハブ
  • IoT Hub

サポートされているストリーム出力の種類は次のとおりです。

  • Edge ハブ
  • SQL Database
  • イベント ハブ
  • Blob Storage/ADLS Gen2

参照入力では参照ファイルがサポートされます。 他の出力には、ダウンストリームのクラウド ジョブを使用して到達できます。 たとえば、Edge 内でホストされている Stream Analytics ジョブで出力が Edge Hub に送信された後、Edge Hub から IoT Hub に出力を送信できます。 クラウドでホストされている 2 つ目の Azure Stream Analytics ジョブを、IoT Hub からの入力と Power BI または別の出力の種類への出力で使用できます。

ライセンスとサード パーティに関する通知

Azure Stream Analytics モジュールのイメージ情報

このバージョン情報は、2020 年 9 月 21 日に最終更新が行われました。

  • イメージ: mcr.microsoft.com/azure-stream-analytics/azureiotedge:1.0.9-linux-amd64

    • 基本イメージ: mcr.microsoft.com/dotnet/core/runtime:2.1.13-alpine
    • プラットフォーム:
      • アーキテクチャ: amd64
      • OS: linux
  • イメージ: mcr.microsoft.com/azure-stream-analytics/azureiotedge:1.0.9-linux-arm32v7

    • 基本イメージ: mcr.microsoft.com/dotnet/core/runtime:2.1.13-bionic-arm32v7
    • プラットフォーム:
      • アーキテクチャ: arm
      • OS: linux
  • イメージ: mcr.microsoft.com/azure-stream-analytics/azureiotedge:1.0.9-linux-arm64

    • 基本イメージ: mcr.microsoft.com/dotnet/core/runtime:3.0-bionic-arm64v8
    • プラットフォーム:
      • アーキテクチャ: arm64
      • OS: linux

ヘルプの参照

詳細については、Azure Stream Analytics に関する Microsoft Q&A 質問ページを参照してください。

次のステップ