Azure Event Hubs を選択する

完了

ほぼ同数のソースから膨大な数のイベントを生成する特定のアプリケーションがあります。 このような状況に適用される "ビッグ データ" という語をよく耳にしますが、こうしたデータを処理するには独自のインフラストラクチャが必要です。

あなたが Contoso Aircraft Engines に勤務しているとします。 雇用主が製造するエンジンは何百ものセンサーを備えています。 毎朝航空機が飛行する前に、そのエンジンがテスト ハーネスに接続され、性能が試されます。 さらに、航空機が地上器材に接続されているときに、キャッシュされた飛行中のデータがストリーミングされます。

あなたは、センサーの履歴データを使用して、エンジンの故障がまもなく発生する可能性が高いことを示すセンサー測定値のパターンを見つけようとしています。 リアルタイムのセンサー測定値を、これらの故障パターンと比較します。 これにより、エンジンが疑わしい測定値を示す場合に、ほぼリアルタイムでユーザーに警告することができます。

Azure Event Hubs とは

Event Hubs は、発行/サブスクライブ通信パターンの仲介役です。 ただし、Event Grid とは異なり、非常に高いスループット、多数の発行元、セキュリティ、および回復性に対して最適化されています。

Event Grid は、サブスクリプションを単純に管理し、これらのサブスクライバーに通信をルーティングする点で、パブリッシュ/サブスクライブの通信パターンと完全に合致します。これに対して、Event Hubs では、いくつかの追加サービスを実行します。 これらの追加サービスを使用すると、単純なイベント ブロードキャスターというより、サービス バスやメッセージ キューのようになります。

パーティション

Event Hubs は通信を受信すると、その通信をパーティションに分割します。 パーティションは、通信が保存されるバッファーです。 イベント バッファーのため、イベントは完全に一時的なものではなく、サブスクライバーがビジー状態またはオフラインであってもイベントが見落とされることはありません。 サブスクライバーでは、常にバッファーを使用して "キャッチアップ" できます。既定では、イベントはバッファー内に 24 時間留まった後、自動的に期限切れとなります。 バッファーは、それらの間でデータが分割されるため、パーティションと呼ばれます。 各パーティションには、個別のサブスクライバーのセットがあります。

キャプチャ

Event Hubs では、Azure Data Lake または Azure BLOB ストレージにすべてのイベントを瞬時に送信して、永続性を低コストで実現することができます。

認証

すべての発行元が認証され、トークンが発行されます。 つまり、Event Hubs では、いたずらにより不正なデータが分析に支障をきたすことを心配せずに、外部デバイスおよびモバイル アプリからのイベントを受け取ることができます。

Event Hubs の使用

Event Hubs では、イベント ストリームと他の Azure サービスの間のパイプライン設定がサポートされています。 たとえば、Azure Stream Analytics とともに使用すると、複数のイベントを関連付けてパターンを見つける機能により、ほぼリアルタイムでデータの複雑な分析を行うことができます。 この場合、Stream Analytics はサブスクライバーと見なされます。

ここでは、航空機エンジンに対して、Event Hubs がエンジンからの通信を認証できるようにアーキテクチャを設定します。 その後、キャプチャを使用してすべてのデータを Data Lake に保存するようにします。 これらのデータはすべて、機械学習モデルを保持および向上させるために後で使用できます。 最後に、Stream Analytics サブスクライバーによってイベント ストリームが取得されます。 Stream Analytics では、機械学習モデルを使用して、問題を示している可能性のあるセンサー データのパターンを見つけます。

複数のパーティションがあり、各エンジンではそのすべてのデータを 1 つのパーティションだけに送信するので、Stream Analytics サブスクライバーの各インスタンスでは、データ全体のサブセットを扱うだけで済みます。 すべてのデータに対してフィルター処理および関連付けを行う必要はありません。

どのサービスを選択すべきか

キューの選択と同様に、最初は、これらの 2 つのイベント配信サービスの間で選択を行うことは困難に思われます。 両者とも At Least Once セマンティクスをサポートしています。

次の場合には、Event Hubs を選択します。

  • 多数の発行元の認証をサポートする必要がある。
  • Data Lake または BLOB ストレージにイベントのストリームを保存する必要がある。
  • イベント ストリームの集計または分析が必要である。
  • 信頼できるメッセージングまたは回復性が必要である。

一方、信頼された発行元 (たとえば、自身の Web サーバー) とのシンプルなイベント発行/サブスクライブ インフラストラクチャが必要な場合は、Event Grid を選択する必要があります。

Event Hubs を使用すると、毎秒数百万のイベントを短い待機時間で処理できる、ビッグ データ パイプラインを構築できます。 同時ソースからのデータを処理し、さまざまなストリーム処理インフラストラクチャや分析サービスにルーティングすることができます。 これによりリアルタイム処理が可能になり、格納された生データの繰り返し再生がサポートされます。