ストリーム処理アーキテクチャの一般的な要素を調べる
ストリーム処理ソリューションの実装に使用できるテクノロジは多数あり、具体的な実装の詳細は異なる場合がありますが、ほとんどのストリーミング アーキテクチャに共通する要素があります。
ストリーム処理の一般的なアーキテクチャ
ストリーム処理のアーキテクチャの概要を最も簡潔に表すと次のようになります。
- イベントによって何らかのデータが生成されます。 このようなものとしては、センサーによって出力された信号、投稿されたソーシャル メディア メッセージ、書き込まれたログ ファイル エントリ、何らかのデジタル データが発生するその他の出来事などがあります。
- 生成されたデータは、処理のためにストリーミング "ソース" にキャプチャされます。 単純なケースのソースは、クラウド データ ストア内のフォルダーやデータベース内のテーブルなどです。 さらに堅牢なストリーミング ソリューションでは、イベント データが順番に処理され、各イベントが 1 回だけ処理されるロジックがカプセル化された "キュー" が、ソースとして使用されることがあります。
- イベント データは、多くの場合、データを操作する絶え間ないクエリによって処理されて、特定の種類のイベントのデータが選択されたり、データ値がプロジェクションされたり、たとえば 1 分間のセンサー出力数をカウントすることで、テンポラルな (時間ベースの) 期間 (つまり "ウィンドウ") のデータ値が集計されたりします。
- ストリーム処理操作の結果は、出力 ("シンク") に書き込まれます。出力先は、ファイル、データベース テーブル、リアルタイム ビジュアル ダッシュボード、または後続のダウンストリーム クエリでさらに処理するための別のキューなどです。
リアルタイム分析サービス
Microsoft は、ストリーミング データのリアルタイム分析を実装するために使用できる、以下のような複数のテクノロジをサポートしています。
- Azure Stream Analytics: ストリーミング ソースからデータを取り込み、永続的なクエリを適用し、結果を出力に書き込む ストリーミング ジョブ を定義するために使用できるサービスとしてのプラットフォーム (PaaS) ソリューション。
- Spark Structured Streaming: Microsoft Fabric や Azure Databricks などの Apache Spark ベースのサービスで複雑なストリーミング ソリューションを開発できるオープンソース ライブラリです。
- Microsoft Fabric: データ エンジニアリング、データ ファクトリ、データ サイエンス、Real-Time インテリジェンス、データ ウェアハウス、データベースを含む、高パフォーマンスのデータベースと分析プラットフォーム。
ストリーム処理の "ソース"
Azure でのストリーム処理のためにデータを取り込むには、次のサービスが一般的に使用されます。
- Azure Event Hubs: イベント データのキューを管理し、各イベントが 1 回だけ順番に処理されるようにするために使用できるデータ インジェスト サービス。
- Azure IoT Hub: Azure Event Hubs に似たデータ インジェスト サービスですが、 モノのインターネット (IoT) デバイスからのイベント データを管理するために最適化されています。
- Azure Data Lake Store Gen 2: バッチ処理 シナリオでよく使用される高度にスケーラブルなストレージ サービスですが、ストリーミング データのソースとしても使用できます。
- Apache Kafka: Apache Spark と一緒に一般的に使用されるオープン ソースのデータ インジェスト ソリューション。
ストリーム処理の "シンク"
ストリーム処理からの出力は、多くの場合、次のサービスに送られます。
- Azure Event Hubs: 処理されたデータをキューに入れ、さらにダウンストリーム処理するために使用します。
- Azure Data Lake Store Gen 2、 Microsoft OneLake、または Azure BLOB ストレージ: 処理された結果をファイルとして保持するために使用されます。
- Azure SQL Database、 Azure Databricks、または Microsoft Fabric: クエリと分析のために、処理された結果をテーブルに保持するために使用されます。
- Microsoft Power BI: レポートとダッシュボードでリアルタイムのデータ視覚化を生成するために使用されます。