Azure でのストリーム処理テクノロジの選択

この記事では、Azure でのリアルタイム ストリーミング処理を行うためのテクノロジの選択肢を比較します。

リアルタイム ストリーム処理では、キューまたはファイル ベースのストレージのメッセージを使用し、メッセージを処理して、結果を別のメッセージ キュー、ファイル ストア、またはデータベースに転送します。 処理には、クエリの実行、フィルター処理、およびメッセージの集計が含まれることがあります。 ストリーム処理エンジンは、終わりのないデータのストリームを使用して、最小限の待機時間で結果を生成できる必要があります。 詳しくは、「Real time processing」(リアルタイム処理) をご覧ください。

リアルタイム処理用のテクノロジを選択する場合の選択肢

Azure では、以下のすべてのデータ ストアがリアルタイム処理のコア要件を満たしています。

主要な選択条件

リアルタイム処理のシナリオでは、次の質問に答えることによって、ニーズに適した適切なサービスを選択することから始めます。

  • 宣言型または命令型のアプローチでストリーム処理ロジックを作成したいですか。

  • テンポラル処理またはウィンドウに対する組み込みのサポートが必要ですか。

  • データは、Avro、JSON、または CSV 以外の形式で到着しますか。 「はい」の場合は、カスタム コードを使用して任意の形式をサポートするオプションを検討してください。

  • 1 GB/秒を超えるように処理を拡張する必要がありますか。 「はい」の場合は、クラスター サイズに対応するオプションを検討してください。

機能のマトリックス

次の表は、機能の主な相違点をまとめたものです。

一般的な機能

機能 Azure Stream Analytics Spark Streaming を使用する HDInsight Azure Databricks における Apache Spark Storm を使用する HDInsight Azure Functions Azure App Service WebJobs
プログラミング SQL、JavaScript C#/F#、Java、Python、Scala C#/F#、Java、Python、R、Scala C#、Java C#、F#、Java、Node.js、Python C#、Java、Node.js、PHP、Python
プログラミング パラダイム 宣言型 宣言型と命令型の混合 宣言型と命令型の混合 命令型 命令型 命令型
価格モデル ストリーミング ユニット クラスター時間単位 Databricks の単位 クラスター時間単位 関数の実行とリソースの消費量あたり App Service プランの時間単位

統合機能

機能 Azure Stream Analytics Spark Streaming を使用する HDInsight Azure Databricks における Apache Spark Storm を使用する HDInsight Azure Functions Azure App Service WebJobs
入力 Azure Event Hubs、Azure IoT Hub、Azure Blob Storage/ADLS Gen2 Event Hubs、IoT Hub、Kafka、HDFS、Storage Blobs、Azure Data Lake Store Event Hubs、IoT Hub、Kafka、HDFS、Storage Blobs、Azure Data Lake Store Event Hubs、IoT Hub、Storage Blobs、Azure Data Lake Store サポートされるバインディング Service Bus、Storage Queues、Storage Blobs、Event Hubs、WebHooks、Azure Cosmos DB、Files
シンク Azure Data Lake Storage Gen 1、Azure Data Explorer、Azure Database for PostgreSQL、Azure SQL Database、Azure Synapse Analytics、Blob Storage および Azure Data Lake Gen 2、Azure Event Hubs、Power BI、Azure Table Storage、Azure Service Bus キュー、Azure Service Bus トピック、Azure Cosmos DB、Azure Functions HDFS、Kafka、Storage Blobs、Azure Data Lake Store、Azure Cosmos DB HDFS、Kafka、Storage Blobs、Azure Data Lake Store、Azure Cosmos DB Event Hubs、Service Bus、Kafka サポートされるバインディング Service Bus、Storage Queues、Storage Blobs、Event Hubs、WebHooks、Azure Cosmos DB、Files

処理機能

機能 Azure Stream Analytics Spark Streaming を使用する HDInsight Azure Databricks における Apache Spark Storm を使用する HDInsight Azure Functions Azure App Service WebJobs
組み込みのテンポラル/ウィンドウの サポート はい イエス イエス 有効 No いいえ
入力データ形式 Avro、JSON または CSV、UTF-8 エンコード カスタム コードを使用する任意の形式 カスタム コードを使用する任意の形式 カスタム コードを使用する任意の形式 カスタム コードを使用する任意の形式 カスタム コードを使用する任意の形式
スケーラビリティ クエリ パーティション クラスターのサイズによる制限 Databricks クラスターのスケール構成による制限 クラスターのサイズによる制限 並列処理される最大 200 の関数アプリ インスタンス アプリ サービス プランの容量による制限
遅延着信と順不同のイベントの処理 はい イエス イエス 有効 No いいえ

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパル作成者:

次のステップ