Azure Event Hubs とは — ビッグ データのストリーミング プラットフォームとなるイベント インジェスト サービス
Event Hubs は、最新のビッグ データ ストリーミング プラットフォームとなるイベント インジェスト サービスであり、Apache Spark などの外部サービスに加えて、Stream Analytics、Power BI、Event Grid などの他の Azure および Microsoft サービスとシームレスに統合できます。 このサービスを使うと、短い待機時間で 1 秒あたり数百万件のイベントを処理できます。 イベント ハブ (Event Hubs インスタンス) に送信されたデータは、任意のリアルタイム分析プロバイダーやバッチ処理またはストレージ アダプターを使用して、変換および保存できます。
Event Hubs を使用する理由
データは、データ ソースを処理してタイムリーに分析情報を取得する簡単な方法があって初めて価値があります。 Event Hubs が提供する分散ストリーム処理プラットフォームは、待ち時間が短く、Azure の内部および外部にあるデータおよび分析サービスとシームレスに統合して、完全なビッグ データ パイプラインを構築します。
Event Hubs はイベント パイプラインの "玄関口" を表し、ソリューション アーキテクチャでは "イベント インジェスター" と呼ばれることがよくあります。 イベント取り込みとは、イベントの生成とそのようなイベントの消費とを分離するために、イベント パブリッシャーとイベント コンシューマーとの間に置かれるコンポーネントやサービスです。 Event Hubs は、時間保持バッファーを備えた統合ストリーミング プラットフォームを提供し、イベント プロデューサーをイベント コンシューマーから切り離します。
以降のセクションで、Azure Event Hubs サービスの主要な機能について説明します。
フル マネージド PaaS
Event Hubs は構成または管理のオーバーヘッドがほとんどないフル マネージドの PaaS (サービスとしてのプラットフォーム) なので、ユーザーはビジネス ソリューションに集中できます。 Apache Kafka エコシステム向けの Event Hubs では PaaS Kafka エクスペリエンスが提供され、独自のクラスターを管理、構成、実行する必要はありません。
Apache Kafka 用 Event Hubs
Apache Kafka エコシステム向けの Azure Event Hubs により、Apache Kafka (1.0 以降) のクライアントとアプリケーションは Event Hubs と通信できます。 独自の Kafka クラスターや Zookeeper クラスターを設定、構成、管理したり、Azure にネイティブではない "サービスとしての Kafka" オファリングを使用したりする必要はありません。 詳細については、Apache Kafka エコシステム用の Event Hubs に関するページを参照してください。
Azure Event Hubs のスキーマ レジストリ
Event Hubs の hema Registry には、イベント ストリーミング アプリケーションのスキーマを管理するための一元化されたリポジトリが用意されています。 Azure Schema Registry は、すべての Event Hubs 名前空間で無料で提供され、Kafka アプリケーションまたは Event Hubs SDK ベースのアプリケーションとシームレスに統合されます。
これにより、イベント プロデューサーとコンシューマー間でデータの互換性と一貫性が確保され、シームレスなスキーマの進化、検証、ガバナンスが可能になり、効率的なデータ交換と相互運用性が促進されます。 詳細については、Azure Event Hubs のスキーマ レジストリに関するページを参照してください。
リアルタイム処理とバッチ処理のサポート
ストリームの取り込み、バッファー、格納、処理をリアルタイムで行い、アクションにつながる分析情報を取得します。 Event Hubs はパーティション分割されたコンシューマー モデルを使用して、複数のアプリケーションがストリームを同時に処理し、処理の速度を制御できるようにします。 また、Azure Event Hubs は サーバーレス アーキテクチャ用の Azure Functions と統合します。
イベント データをキャプチャする
長期保有またはマイクロ バッチ処理のために、ほぼリアルタイムでデータを Azure Blob Storage または Azure Data Lake Storage にキャプチャします。 この動作は、リアルタイム分析の派生に使用するものと同じストリームで実現できます。 イベント データをキャプチャするための設定に時間はかかりません。 実行に管理コストは発生せず、Event Hubs のスループット ユニット数または処理ユニット数に応じて、自動的にスケーリングされます。 Event Hubs を使用することで、ユーザーはデータ キャプチャではなくデータ処理に専念できます。 詳細については、ent Hubs Capture に関するページを参照してください。
拡張性
Event Hubs では、メガバイト単位のデータ ストリームで開始し、ギガバイトまたはテラバイトまで拡張できます。 自動インフレ機能は、使用状況のニーズに合わせてスループット ユニット数または処理ユニット数をスケーリングするために利用できる多くのオプションの 1 つです。
充実したエコシステム
業界標準の AMQP 1.0 プロトコル用に使用できる広範なエコシステムと、さまざまな言語 (.NET、Java、Python、JavaScript) で使用できる SDK を活用して、Event Hubs からのストリームの処理を簡単に開始できます。 サポートされているすべてのクライアント言語が、低レベルの統合を提供します。 また、このエコシステムを通じて、Azure Stream Analytics や Azure Functions などの Azure サービスとシームレスに統合し、サーバーレスのアーキテクチャを構築することができます。
Event Hubs の Premium と Dedicated
Event Hubs の Premium は、マネージド マルチテナント PaaS 環境での優れたパフォーマンス、待機時間を予測できる優れた分離性、最小限の干渉を必要とする、ハイエンドのストリーミング ニーズに対応します。 Premium レベルには、Standard オファリングのすべての機能に加えて、動的パーティション スケールアップ、保有延長、カスタマー マネージド キーなど、いくつかの追加機能が用意されています。 詳細については、Event Hubs Premium に関する記事を参照してください。
Event Hubs の Dedicated レベルからは、最も厳しいストリーミング ニーズを持つお客様向けのシングルテナント デプロイが提供されます。 このシングルテナントのサービスでは、99.99% の SLA が保証されており、専用の価格レベルでのみご利用いただけます。 Event Hubs クラスターでは、1 秒あたり数百万のイベントを、保証された容量と 1 秒未満の待ち時間でイングレスすることができます。 Dedicated クラスター内に作成される名前空間とイベント ハブには、Premium オファリングのすべての機能とそれ以外の機能が含まれます。 詳細については、Event Hubs Dedicated に関する記事を参照してください。
詳細については、Event Hubs のレベル間の比較に関する記事を参照してください。
Azure Stack Hub 上の Event Hubs
Azure Stack Hub 上の Event Hubs サービスを使用すると、ハイブリッド クラウド シナリオを実現できます。 オンプレミスと Azure クラウドの両方の処理で、ストリーミングやイベントベースのソリューションがサポートされます。 ハイブリッド (接続型) シナリオであれ非接続型のシナリオであれ、大規模なイベント処理またはストリーム処理に対応したソリューションを実現できます。 シナリオは Event Hubs クラスターによってのみ制限され、その点は、必要に応じてプロビジョニングすることができます。
(Azure Stack Hub 上および Azure 上の) Event Hubs エディションには、高度な機能パリティが実現されています。 ここでいうパリティとは、SDK、サンプル、PowerShell、CLI、ポータルからいずれも同様のエクスペリエンスが得られ、違いがほとんどないということです。
詳細については、「Azure Stack Hub 上の Event Hubs の概要」を参照してください。
主なアーキテクチャ コンポーネント
Event Hubs には次の主要コンポーネントが含まれます。
コンポーネント | 説明 |
---|---|
イベント プロデューサー | イベント ハブにデータを送信するエンティティ。 イベント パブリッシャーは、HTTPS、AMQP 1.0、または Apache Kafka (1.0 以降) を使用してイベントを発行できます。 |
メジャー グループ | 各コンシューマーは、メッセージ ストリームの特定のサブセット (パーティション) のみを読み取ります。 |
コンシューマー グループ | イベント ハブ全体のビュー (状態、位置、またはオフセット)。 コンシューマー グループを使用すると、コンシューマー側アプリケーションがそれぞれイベント ストリーム ビューを持つことができるようになります。 それらは、独自のペースとオフセットで個別にストリームを読み取ります。 |
イベント レシーバー | イベント ハブからイベント データを読み取るエンティティ。 Event Hubs のすべてのコンシューマーは、AMQP 1.0 セッションを介して接続します。 Event Hubs サービスは、イベントが利用可能になると、セッションを通じてそれらを配信します。 すべての Kafka コンシューマーは、Kafka プロトコル 1.0 以降を通じて接続します。 |
スループット ユニット (Standard レベル) または処理ユニット (Premium レベル) または容量ユニット (専用) | Event Hubs のスループット容量を制御する、購入前の容量の単位。 |
次の図は、Event Hubs ストリーム処理のアーキテクチャを示しています。
注意
詳細については、Event Hubs の機能またはコンポーネントに関するページを参照してください。
次のステップ
Event Hubs を使い始めるには、以下のイベントの送受信のチュートリアルを参照してください。
- .NET Core
- Java
- Spring
- Python
- JavaScript
- Go
- C (送信のみ)
- Apache Storm (受信のみ)
Event Hubs の詳細については、次の記事を参照してください。