Azureのリアルタイム分析とストリーミング処理には、いくつかのサービスを使用できます。 この記事は、アプリケーションに最適なテクノロジを決定するのに役立ちます。
Azure Stream Analytics を使用するタイミング
Azure Stream Analytics は、Azure でのストリーム分析に推奨されるサービスです。 以下を含むがこれらに限定されないさまざまなシナリオで使用します。
- データ視覚化用のダッシュボード
- テンポラルおよび空間パターンまたは異常からのリアルタイム アラート
- 抽出、変換、読み込み (ETL)
- イベント ソーシング パターン
- IoT Edge
Azure Stream Analytics ジョブをアプリケーションに追加することは、既に知っている SQL 言語を使用して、Azure でストリーミング分析を実行するための最速の方法です。 Azure Stream Analytics はジョブ サービスであるため、クラスターの管理に時間を費やす必要はありません。また、ジョブ レベルでの 99.9% サービス レベル アグリーメント (SLA) によるダウンタイムについて心配する必要はありません。 課金はジョブ レベルでも行われます。これにより、スタートアップ コストが低くなります (1 つのストリーミング ユニット)、スケーラブル (最大 396 ストリーミング ユニット)。 クラスターを実行して維持するよりも、いくつかの Stream Analytics ジョブを実行する方がはるかにコスト効率が高くなります。
Azure Stream Analytics には、すぐに使える豊富なエクスペリエンスがあります。 追加のセットアップを行わなくても、次の機能をすぐに利用できます。
- ウィンドウ・アグリゲーション、テンポラル・ジョイン、テンポラル・アナリティック・ファンクションなどの組み込みのテンポラル演算子。
- ネイティブ Azure 入力および出力アダプター
- ジオフェンシングのための地理空間参照データとの結合を含む、低速で変化する 参照データ (ルックアップ テーブルとも呼ばれます) のサポート。
- 異常検出などの統合ソリューション
- 同じクエリ内の複数の時間枠
- 任意のシーケンスで複数のテンポラル演算子を構成する機能。
- Event Hubs に入力が到着してから、Event Hubs に出力が到達するまでのエンドツーエンド遅延が 100 ミリ秒未満であること(Event Hubs との間のネットワーク遅延を含む)、継続的な高スループットを維持しながら
他のテクノロジを使用する場合
JAVAScript または C 以外の言語で UDF、UDA、およびカスタム 逆シリアライザーを記述する場合#
Azure Stream Analyticsでは、クラウド ジョブの場合は JavaScript のユーザー定義関数 (UDF) とユーザー定義集計 (UDA) と、IoT Edge ジョブの場合は C# がサポートされます。 C# ユーザー定義デシリアライザーもサポートされています。 JavaやPythonなどの他の言語でデシリアライザー、UDF、または UDA を実装する場合は、Spark 構造化ストリーミングを使用します。 独自の仮想マシンで Event Hubs EventProcessorHost を実行して、任意のストリーミング処理を実行することもできます。
ソリューションがマルチクラウドまたはオンプレミス環境にある
Azure Stream Analytics は Microsoft 独自のテクノロジであり、Azure でのみ使用できます。 ソリューションをクラウドまたはオンプレミス間で移植可能にする必要がある場合は、Spark Structured Streaming や Apache Flink などのオープンソース テクノロジを検討してください。