ストリーム処理アーキテクチャの一般的な要素を調べる

完了

ストリーム処理ソリューションの実装に使用できるテクノロジは多数あり、具体的な実装の詳細は異なる場合がありますが、ほとんどのストリーミング アーキテクチャに共通する要素があります。

ストリーム処理の一般的なアーキテクチャ

ストリーム処理のアーキテクチャの概要を最も簡潔に表すと次のようになります。

処理される前にキューにキャプチャされ、結果がデータ ストアまたは視覚化に書き込まれる、データを生成するイベントの図。

  1. イベントによって何らかのデータが生成されます。 このようなものとしては、センサーによって出力された信号、投稿されたソーシャル メディア メッセージ、書き込まれたログ ファイル エントリ、何らかのデジタル データが発生するその他の出来事などがあります。
  2. 生成されたデータは、処理のためにストリーミング "ソース" にキャプチャされます。 単純なケースのソースは、クラウド データ ストア内のフォルダーやデータベース内のテーブルなどです。 さらに堅牢なストリーミング ソリューションでは、イベント データが順番に処理され、各イベントが 1 回だけ処理されるロジックがカプセル化された "キュー" が、ソースとして使用されることがあります。
  3. イベント データは、多くの場合、データを操作する絶え間ないクエリによって処理されて、特定の種類のイベントのデータが選択されたり、データ値がプロジェクションされたり、たとえば 1 分間のセンサー出力数をカウントすることで、テンポラルな (時間ベースの) 期間 (つまり "ウィンドウ") のデータ値が集計されたりします。
  4. ストリーム処理操作の結果は、出力 ("シンク") に書き込まれます。出力先は、ファイル、データベース テーブル、リアルタイム ビジュアル ダッシュボード、または後続のダウンストリーム クエリでさらに処理するための別のキューなどです。

リアルタイム分析サービス

Microsoft は、ストリーミング データのリアルタイム分析を実装するために使用できる、以下のような複数のテクノロジをサポートしています。

  • Azure Stream Analytics: ストリーミング ソースからデータを取り込み、永続的なクエリを適用し、結果を出力に書き込む ストリーミング ジョブ を定義するために使用できるサービスとしてのプラットフォーム (PaaS) ソリューション。
  • Spark Structured Streaming: Microsoft FabricAzure 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 2Microsoft OneLake、または Azure BLOB ストレージ: 処理された結果をファイルとして保持するために使用されます。
  • Azure SQL DatabaseAzure Databricks、または Microsoft Fabric: クエリと分析のために、処理された結果をテーブルに保持するために使用されます。
  • Microsoft Power BI: レポートとダッシュボードでリアルタイムのデータ視覚化を生成するために使用されます。