Azure Event Hubs - ネイティブ Apache Kafka をサポートするリアルタイム データ ストリーミング プラットフォーム

Azure Event Hubs はクラウド ネイティブのデータ ストリーミング サービスで、任意のソースから任意の宛先に、待機時間が短いイベントを 1 秒あたり数百万個ストリーミングできます。 Event Hubs は Apache Kafka と互換性があり、コードを変更することなく既存の Kafka ワークロードを実行できます。

Event Hubs を使用してストリーミング データを取り込んで保存することで、企業はストリーミング データの機能を活用して、貴重な分析情報を取得し、リアルタイム分析を推進し、発生したイベントに対応できます。これにより、全体的な効率とカスタマー エクスペリエンスが向上します。

Diagram that shows how Azure Event Hubs fits in an event streaming platform.

Azure Event Hubs は、Azure 上に構築するすべてのイベント ストリーミング ソリューションの推奨イベント インジェスト レイヤーです。 Azure 内外のデータ サービスや分析サービスとシームレスに統合され、これにより次のユース ケースに対応する完全なデータ ストリーミング パイプラインが構築されます。

主要な機能

Azure Event Hubs で Apache Kafka を使用する

Azure Event Hubs は、AMQP、Apache Kafka、HTTPs プロトコルをネイティブにサポートするマルチプロトコル イベント ストリーミング エンジンです。 Apache Kafka がサポートされているため、コードを変更することなく、Kafka ワークロードを Azure Event Hubs に取り込みます。 独自の Kafka クラスターを設定、構成、管理したり、Azure にネイティブではない "サービスとしての Kafka" オファリングを使用したりする必要はありません。

Event Hubs は、クラウド ネイティブ ブローカー エンジンとして一から構築されています。 そのため、Kafka ワークロード実行時のパフォーマンスとコスト効率が向上し、運用上のオーバーヘッドも発生しません。

詳細については、Apache Kafka 用の Azure Event Hubs に関するページを参照してください。

Azure Event Hubs のスキーマ レジストリ

Event Hubs の Azure Schema Registry には、イベント ストリーミング アプリケーションのスキーマを管理するための一元化されたリポジトリが用意されています。 Azure Schema Registry は、すべての Event Hubs 名前空間で無料で提供され、Kafka アプリケーションまたは Event Hubs SDK ベースのアプリケーションとシームレスに統合されます。

Diagram that shows Schema Registry and Azure Event Hubs integration.

これにより、イベント プロデューサーとコンシューマー間でデータの互換性と一貫性が確保されます。 スキーマ レジストリによりシームレスなスキーマの進化、検証、ガバナンスが可能になり、効率的なデータ交換と相互運用性が促進されます。

スキーマ レジストリは、既存の Kafka アプリケーションとシームレスに統合され、Avro や JSON スキーマなどの複数のスキーマ形式をサポートしています。

詳細については、Event Hubs の Azure スキーマ レジストリ に関するページを参照してください。

Azure Stream Analytics を使用したストリーミング イベントのリアルタイム処理

Event Hubs は Azure Stream Analytics とシームレスに統合され、リアルタイムのストリーム処理を可能にします。 組み込みのノーコード エディターを使用すると、ドラッグ アンド ドロップ機能を使用して Stream Analytics ジョブを簡単に開発できます。コードを記述する必要はありません。

Screenshot showing the Process data page with Enable real time insights from events tile selected.

また、開発者が SQL ベースの Stream Analytics クエリ言語を使用してリアルタイム ストリーム処理を実行し、ストリーミング データを分析するためのさまざまな関数を利用することもできます。

詳細については、目次の Azure Stream Analytics 統合セクションの記事を参照してください。

Azure Data Explorer を使用してストリーミング データを探索する

Azure Data Explorer はビッグ データ分析のためのフル マネージド プラットフォームで、ハイ パフォーマンスを実現し、ほぼリアルタイムで大量のデータを分析することができます。 Event Hubs と Azure Data Explorer を統合することで、ほぼリアルタイムの分析とストリーミング データの探索を容易に実行できます。

Diagram that shows Azure Data explorer query and output.

詳細については、イベント ハブから Azure Data Explorer へのデータの取り込みに関するページと、そのセクションの記事を参照してください。

豊富なエコシステム – Azure Functions、SDK、Kafka エコシステム

ストリームの取り込み、バッファー、格納、処理をリアルタイムで行い、アクションにつながる分析情報を取得します。 Event Hubs はパーティション分割されたコンシューマー モデルを使用して、複数のアプリケーションがストリームを同時に処理し、処理の速度を制御できるようにします。 また、Azure Event Hubs はサーバーレス アーキテクチャ用の Azure Functions とも統合します。

業界標準の AMQP 1.0 プロトコル用に使用できる広範なエコシステムと、さまざまな言語 (.NET、Java、Python、JavaScript) で使用できる SDK を活用して、Event Hubs からのストリームの処理を簡単に開始できます。 サポートされているすべてのクライアント言語が、低レベルの統合を提供します。

このエコシステムでは、Azure Functions、Azure Spring Apps、Kafka Connectors だけでなく、Apache Spark や Apache Flink などの他のデータ分析プラットフォームやテクノロジとのシームレスな統合も可能です。

柔軟でコスト効率の高いイベント ストリーミング

Standard、Premium、Dedicated など、Event Hubs のさまざまなレベルから選択できるため、柔軟でコスト効率の高いイベント ストリーミングを利用できます。 数 MB/秒から数 GB/秒のデータ ストリーミングのニーズに対応しているこれらのオプションにより、要件に最適なものを選択することができます。

拡張性

Event Hubs では、メガバイト単位のデータ ストリームで開始し、ギガバイトまたはテラバイトまで拡張できます。 自動インフレ機能は、使用状況のニーズに合わせてスループット ユニット数または処理ユニット数をスケーリングするために利用できる多くのオプションの 1 つです。

長期保有とバッチ分析のためにストリーミング データをキャプチャする

長期保有またはマイクロ バッチ処理のために、ほぼリアルタイムでデータを Azure Blob Storage または Azure Data Lake Storage にキャプチャします。 この動作は、リアルタイム分析の派生に使用するものと同じストリームで実現できます。 イベント データをキャプチャするための設定に時間はかかりません。

Image showing capturing of Event Hubs data into Azure Storage or Azure Data Lake Storage using Managed Identity

動作方法

Event Hubs は、時間保持バッファーを備えた統合イベント ストリーミング プラットフォームを提供し、イベント プロデューサーをイベント コンシューマーから切り離します。 プロデューサーアプリケーションとコンシューマー アプリケーションでは、複数のプロトコルを使用して大規模なデータ インジェストを実行できます。

次の図に、Event Hubs アーキテクチャの主要コンポーネントを示します。

Diagram that shows the main components of Event Hubs.

Event Hubs の主要な機能コンポーネントは次のとおりです。

  • プロデューサー アプリケーションでは、Event Hubs SDK または Kafka プロデューサー クライアントを使用して、イベント ハブにデータを取り込むことができます。
  • 名前空間は、1 つ以上のイベント ハブまたは Kafka トピックの管理コンテナーです。 ストリーミング容量の割り当て、ネットワーク セキュリティの構成、geo ディザスター リカバリーの有効化などの管理タスクは、名前空間レベルで処理されます。
  • Event Hub/Kafka トピック: Event Hubs では、イベントをイベント ハブまたは Kafka トピックにまとめることができます。 これは追加専用の分散ログで、1 つ以上のパーティションで構成されます。
  • パーティションは、イベント ハブのスケーリングに使用されます。 これは高速道路の車線のようなものです。 ストリーミング スループットを増やす必要がある場合は、パーティションを追加する必要があります。
  • コンシューマー アプリケーションでは、イベント ログをシークし、コンシューマー オフセットを維持することによりデータを使用します。 コンシューマーには、Kafka コンシューマー クライアントまたは Event Hubs SDK クライアントを指定できます。
  • コンシューマー グループは、イベント ハブ/Kafka トピックからデータを読み取るコンシューマー インスタンスの論理グループです。 こうすることで、複数のコンシューマーが、イベント ハブ内の同じストリーミング データを、独自のペースで独自のオフセットによって別々に読み取ることができます。

次のステップ

Event Hubs の使用を開始するには、以下のクイック スタート ガイドをご覧ください。

Event Hubs SDK を使用してデータをストリーミングする (AMQP)

次のサンプルのいずれかを使用して、SDK を使って Event Hubs にデータをストリーミングできます。

Apache Kafka を使用してデータをストリーミングする

次のサンプルを使用して、Kafka アプリケーションから Event Hubs にデータをストリーミングできます。

スキーマ レジストリを使用した Kafka の検証

Event Hubs スキーマ レジストリを使用して、イベント ストリーミング アプリケーションのスキーマ検証を実行できます。