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 と IoT Edge ジョブ用の C# のユーザー定義関数 (UDF) またはユーザー定義集計 (UDA) がサポートされています。 C# ユーザー定義デシリアライザーもサポートされています。 Java や Python などの他の言語でデシリアライザー、UDF、または UDA を実装する場合は、Spark 構造化ストリーミングを使用できます。 独自の仮想マシンで Event Hubs EventProcessorHost を実行して、任意のストリーミング処理を実行することもできます。
ソリューションがマルチクラウドまたはオンプレミス環境にある
Azure Stream Analytics は Microsoft 独自のテクノロジであり、Azure でのみ使用できます。 ソリューションをクラウドまたはオンプレミス間で移植可能にする必要がある場合は、Spark Structured Streaming や Apache Flink などのオープンソース テクノロジを検討してください。