Stream Analytics で Event Hubs から Blob へリアルタイム処理する

Event Hubs に届いたイベントを Stream Analytics ジョブ(1 SU)の SQL ライクなクエリでフィルター処理し、Blob Storage に JSON として出力するリアルタイム パイプラインを構築します。テストイベントの送信から出力確認まで一気通貫で体験します。

中級55Azure 実環境

ラボ概要

IoT センサーの計測値や Web サイトのクリックストリームのように、絶え間なく発生し続けるデータを「溜めてから処理する」のではなく「届いた端から処理する」のがストリーム処理です。Azure では、イベントの受け口となる Event Hubs と、SQL ライクなクエリでイベントを変換・フィルターできる Stream Analytics を組み合わせるのが、リアルタイム処理のもっとも基本的な構成です。

このラボでは、Event Hubs を入力、Blob Storage を出力とする Stream Analytics ジョブを 1 ストリーミング ユニットで構成し、「temperature が 25 を超えるイベントだけを通す」フィルター クエリを実装します。その後、Cloud Shell から Python SDK でテストイベントを 30 件送信し、条件を満たすイベントだけが JSON として Blob に書き出されることを確認します。入力・クエリ・出力という Stream Analytics ジョブの 3 要素を、実際にデータを流しながら理解できる内容です。

この構成は DP-203(Azure でのデータ エンジニアリング)のストリーム処理分野で問われる典型パターンです。Event Hubs のコンシューマー グループや、ジョブの開始時刻の意味など、試験でも実務でも重要になるポイントを手を動かしながら押さえていきます。

学習目標

  • Event Hubs 名前空間・イベント ハブ・コンシューマー グループを Azure CLI で作成できる
  • Stream Analytics ジョブを 1 ストリーミング ユニットで作成し、コストを抑えた構成を選択できる
  • ジョブにイベント ハブ入力と Blob Storage 出力を構成できる
  • SQL ライクなクエリで条件フィルター(WHERE 句)を実装できる
  • Python SDK を使って Event Hubs にテストイベントを送信できる
  • Blob に出力された JSON を確認し、パイプライン全体の動作を検証できる

前提

  • Azure ポータルにサインイン済みであること(サンドボックス環境が自動的に用意されます)
  • リソースはすべて japaneast(東日本)リージョンに作成します
  • 作業はサンドボックスに割り当て済みのリソースグループ 1 つの中だけで行います。新しいリソースグループの作成やサブスクリプション設定の変更はできません
  • 手順の大部分は Cloud Shell(Bash)で実行します。Stream Analytics ジョブの構成のみポータル画面で操作します

ラボの構成

  1. 1Cloud Shell の起動と変数の設定
  2. 2Event Hubs 名前空間とイベント ハブの作成
  3. 3ストレージ アカウントと出力用コンテナーの作成
  4. 4Stream Analytics ジョブの作成
  5. 5入力・出力・クエリの構成
  6. 6ジョブの開始
  7. 7テストイベントの送信
  8. 8出力 JSON の確認
  9. 9動作確認
  10. 10完了チェックリスト
  11. 11後片付け

詳細な手順は、ラボ開始後に画面内のガイドとして表示されます。

構成図

参考リソース