IoT Edge 上の Azure Stream Analytics を使用すると、開発者は IoT デバイスの近くにほぼリアルタイムの分析インテリジェンスをデプロイできるため、デバイスで生成されたデータの価値を最大限に引き出すことができます。 Azure Stream Analytics は、低待機時間、回復性、帯域幅の効率的な使用、コンプライアンスを実現するように設計されています。 企業は、制御ロジックを産業運用の近くにデプロイし、クラウドで実行されるビッグ データ分析を補完できます。
Azure Stream Analytics on IoT Edge は 、Azure IoT Edge フレームワーク内で実行されます。 Stream Analytics でジョブが作成されたら、IoT Hub を使用してジョブをデプロイおよび管理できます。
一般的なシナリオ
このセクションでは、Stream Analytics on IoT Edge の一般的なシナリオについて説明します。 次の図は、IoT デバイスと Azure クラウドの間のデータフローを示しています。
低待機時間のコマンドと制御
製造安全システムは、非常に短い待機時間で運用データに対応する必要があります。 Stream Analytics on IoT Edge を使用すると、センサー データをほぼリアルタイムで分析し、異常を検出してマシンを停止したり、アラートをトリガーしたりするときにコマンドを発行できます。
クラウドへの制限付き接続
リモートマイニング機器、接続された船舶、沖合掘削などのミッション クリティカルなシステムでは、クラウド接続が断続的な場合でも、データを分析して対応する必要があります。 Stream Analytics を使用すると、ストリーミング ロジックはネットワーク接続とは無関係に実行され、さらに処理やストレージのためにクラウドに送信する内容を選択できます。
制限された帯域幅
ジェット エンジンまたはコネクテッド カーによって生成されるデータの量は非常に大きくなる可能性があるため、クラウドに送信する前にデータをフィルター処理または前処理する必要があります。 Stream Analytics を使用すると、クラウドに送信する必要があるデータをフィルター処理または集計できます。
コンプライアンス
規制コンプライアンスでは、クラウドに送信される前に、一部のデータをローカルで匿名化または集計する必要がある場合があります。
Azure Stream Analytics のエッジ ジョブ
Stream Analytics Edge ジョブは、 Azure IoT Edge デバイスにデプロイされたコンテナーで実行されます。 エッジ ジョブは、次の 2 つの部分で構成されます。
ジョブ定義を担当するクラウド パーツ。ユーザーは、入力、出力、クエリ、その他の設定 (順序が正しいイベントなど) をクラウドで定義します。
IoT デバイスで実行されているモジュール。 このモジュールには Stream Analytics エンジンが含まれており、クラウドからジョブ定義を受け取ります。
Stream Analytics では、IoT Hub を使用してデバイスにエッジ ジョブをデプロイします。 詳細については、「 IoT Edge のデプロイ」を参照してください。
Edge ジョブの制限事項
目標は、IoT Edge ジョブとクラウド ジョブの間でパリティを持つことです。 ほとんどの SQL クエリ言語機能は、エッジとクラウドの両方でサポートされています。 ただし、エッジ ジョブでは次の機能はサポートされていません。
- JavaScript のユーザー定義関数 (UDF)。 UDF は C# for IoT Edge ジョブ (プレビュー) で使用できます。
- ユーザー定義集計 (UDA)。
- Azure ML 関数。
- 入力/出力用の AVRO 形式。 現時点では、CSV と JSON のみがサポートされています。
- 次の SQL 演算子:
- 分割
- GetMetadataPropertyValue
- 到着遅延ポリシー
ランタイムとハードウェアの要件
IoT Edge で Stream Analytics を実行するには、 Azure IoT Edge を実行できるデバイスが必要です。
Stream Analytics と Azure IoT Edge では 、Docker コンテナーを使用して、複数のホスト オペレーティング システム (Windows、Linux) で実行される移植可能なソリューションを提供します。
IoT Edge 上の Stream Analytics は、x86-64 または ARM (Advanced RISC Machines) アーキテクチャの両方で実行される Windows イメージと Linux イメージとして使用できます。
入力と出力
Stream Analytics Edge ジョブは、IoT Edge デバイスで実行されている他のモジュールから入力と出力を取得できます。 特定のモジュールとの間で接続するには、デプロイ時にルーティング構成を設定できます。 詳細については、 IoT Edge モジュール構成のドキュメントを参照してください。
入力と出力の両方で、CSV 形式と JSON 形式がサポートされます。
Stream Analytics ジョブで作成した入力ストリームと出力ストリームごとに、デプロイされたモジュールに対応するエンドポイントが作成されます。 これらのエンドポイントは、デプロイのルートで使用できます。
サポートされているストリーム入力の種類は次のとおりです。
- Edge ハブ
- イベント ハブ
- IoT Hub
サポートされているストリーム出力の種類は次のとおりです。
- Edge Hub
- SQL Database
- イベント ハブ
- Blob Storage/ADLS Gen2
参照入力では、参照ファイルの種類がサポートされます。 その他の出力には、クラウド ジョブダウンストリームを使用して到達できます。 たとえば、Edge でホストされている Stream Analytics ジョブは Edge Hub に出力を送信し、その出力を IoT Hub に送信できます。 IoT Hub からの入力と Power BI または別の出力の種類への出力で、2 つ目のクラウドホスト型 Azure Stream Analytics ジョブを使用できます。
Azure Stream Analytics モジュールのイメージ情報
このバージョン情報は、2020-09-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 質問ページをお試しください。