IoT EdgeのAzure Stream Analyticsは、デバイスで生成されたデータに対するほぼリアルタイムの分析のためにIoT Edgeデバイス上で直接実行される軽量バージョンのAzure Stream Analyticsです。 IoT EdgeにAzure Stream Analyticsすると、低待機時間、回復性、帯域幅の効率的な使用、規制コンプライアンスが提供されます。 クラウドベースのAzure Stream Analyticsを使用して大規模なデータ処理を行いながら、分析と制御ロジックを産業運用の近くにデプロイできます。
Azure Stream Analytics on IoT Edge は 、Azure IoT Edge フレームワーク内で実行されます。 Azure ポータルで Stream Analytics ジョブを作成したら、IoT Hubを使用してデプロイおよび管理できます。
IoT Edgeでの Stream Analytics の一般的なシナリオ
次の図は、IoT デバイスと Azure クラウドの間のデータフローを示しています。
低待機時間のコマンドと制御
製造安全システムは、非常に短い待機時間で運用データに対応する必要があります。 IoT Edgeで Stream Analytics を使用すると、センサー データをほぼリアルタイムで分析し、異常を検出してマシンを停止したり、アラートをトリガーしたりするときにコマンドを発行できます。
クラウドへの制限付き接続
リモートマイニング機器、接続された船舶、沖合掘削などのミッション クリティカルなシステムでは、クラウド接続が断続的な場合でも、データを分析して対応する必要があります。 Stream Analytics を使用すると、ストリーミング ロジックはネットワーク接続とは無関係に実行され、さらに処理またはストレージを行うためにクラウドに送信する内容を選択できます。
制限された帯域幅
ジェット エンジンまたはコネクテッド カーによって生成されるデータの量は非常に大きくなる可能性があるため、クラウドに送信する前にフィルター処理または前処理する必要があります。 Stream Analytics を使用すると、クラウドに送信する必要があるデータをフィルター処理または集計できます。
規制コンプライアンスとローカル データ処理
規制コンプライアンスでは、クラウドに送信する前に、一部のデータをローカルで匿名化または集計することが必要になる場合があります。 IoT Edgeで Stream Analytics を使用すると、機密データをオンプレミスで処理し、準拠した変換された結果のみをクラウドに送信できます。
Azure Stream Analytics のエッジ ジョブ
Stream Analytics エッジ ジョブは、コンテナー化された Stream Analytics ワークロードであり、Azure IoT Edge デバイスにデプロイされます。 エッジ ジョブには、次の 2 つの部分があります。
ジョブ定義を担当するクラウド側のコンポーネント: 入力、出力、クエリ、および順不同のイベントなどのその他の設定をクラウドで定義します。
IoT デバイスで実行されているモジュール。 このモジュールには Stream Analytics エンジンが含まれており、クラウドからジョブ定義を受け取ります。
Stream Analytics では、IoT Hubを使用してエッジ ジョブをデバイスに展開します。 詳細については、「 IoT Edge のデプロイ」を参照してください。
Edge ジョブの制限事項
Stream Analytics エッジ ジョブは、エッジデプロイとクラウド デプロイの間のパリティを目指します。 クラウド ジョブは、Azureで実行される標準的なAzure Stream Analytics ジョブであり、エッジ ジョブはIoT Edge デバイスでローカルに実行されます。 Stream Analytics では、エッジとクラウドの両方でほとんどの SQL クエリ言語機能がサポートされています。 ただし、エッジ ジョブでは次の機能はサポートされていません。
- JavaScript のユーザー定義関数 (UDF)。 UDF は C# でIoT Edge ジョブ (プレビュー) で使用できます。
- ユーザー定義集計 (UDA)。
- Azure Machine Learning関数。
- 入力/出力用の AVRO 形式。 エッジ ジョブでは、CSV 形式と JSON 形式のみがサポートされます。
- 次の SQL 演算子:
PARTITION BYGetMetadataPropertyValue
- 到着遅延ポリシー
ランタイムとハードウェアの要件
IoT Edgeで Stream Analytics を実行するには、Azure IoT Edge を実行するデバイスが必要です。
Stream Analytics と Azure IoT Edge では 、Docker コンテナーを使用して、複数のホスト オペレーティング システム (Windows、Linux) で実行される移植可能なソリューションを提供します。
IoT Edge上の Stream Analytics は、x86-64 および ARM アーキテクチャで Linux イメージとして実行されます。
Stream Analytics エッジ ジョブの入力と出力
Stream Analytics エッジ ジョブは、IoT Edge デバイスで実行されている他のモジュールからの入力と出力を取得します。 特定のモジュールとの間で接続するには、デプロイ時にルーティング構成を設定します。 詳細については、IoT Edge モジュール構成のドキュメントを参照してください。
入力と出力の両方で、CSV 形式と JSON 形式がサポートされます。
Stream Analytics ジョブで作成した入力ストリームと出力ストリームごとに、Stream Analytics によって、デプロイされたモジュールに対応するエンドポイントが作成されます。 デプロイのルートでこれらのエンドポイントを使用します。
サポートされているストリーム入力の種類は次のとおりです。
- Edge ハブ
- イベント ハブ
- IoT Hub
サポートされているストリーム出力の種類は次のとおりです。
- Edge ハブ
- SQL Database
- イベント ハブ
- Blob Storage/Azure Data Lake Storage Gen2
参照入力は参照ファイルの種類をサポートしており、参照用の静的または低速なデータを提供します。 他の出力先に到達するには、クラウドホスト型 Stream Analytics ジョブをダウンストリームにチェーンします。 たとえば、IoT Edgeでホストされている Stream Analytics ジョブは Edge Hub に出力を送信し、出力を IoT Hub に送信できます。 IoT Hubからの入力と、Power BIまたはその他の出力の種類への出力で、2 つ目のクラウドホスト型Azure Stream Analytics ジョブを使用します。
Azure Stream Analytics モジュールのイメージ情報
次の表に、IoT Edgeモジュール イメージで使用可能な Stream Analytics の一覧を示します。 このバージョン情報は、2020-09-21 で最後に更新されました。 使用可能な最新バージョンについては、Microsoft Container Registry を確認します。
| Image | TestVM | アーキテクチャ | OS |
|---|---|---|---|
mcr.microsoft.com/azure-stream-analytics/azureiotedge:1.0.9-linux-amd64 |
mcr.microsoft.com/dotnet/core/runtime:2.1.13-alpine |
amd64 | 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 | Linux |
mcr.microsoft.com/azure-stream-analytics/azureiotedge:1.0.9-linux-arm64 |
mcr.microsoft.com/dotnet/core/runtime:3.0-bionic-arm64v8 |
arm64 | Linux |
Important
この表に記載されているベース イメージは、.NET Core 2.1 および 3.0 を使用しており、これらはサポートが終了しています。 Microsoft Container Registry で、サポートされている.NETバージョンに基づいて構築されたIoT Edge イメージで更新された Stream Analytics を確認します。
関連するコンテンツ
- Azure IoT Edge とは
- Tutorial: IoT Edge モジュールとしてAzure Stream Analyticsをデプロイします
- Visual Studio ツールを使用して Stream Analytics Edge ジョブを開発する
- API を使用して Stream Analytics の CI/CD を実装する
Microsoft Q&A for Azure Stream Analytics