[Azure] Event Hubs / Stream Analyticsを使ってみた
Event Hubの作成
Event Hubの作成手順はざっくり以下。
- Event Hubs名前空間を作成する。Event Hubに接続する際の接続文字列は名前空間で提供される。
- 作成した名前空間にて、Event Hubを作成する。ここでパーティション数、メッセージの保持期間が設定できる。
Event Hubにイベントを送信する際は送信デバイス側で以下を指定します。
- 名前空間レベルの接続文字列
- Event Hub名
Stream Analyticsの作成
Stream Analytics Jobを作成します。そのあとInput、Output、Query等の設定を行います。
最初Input、Outputの設定だけ実施し、データがOutputに流れませんでしたが、Queryの内容を今回定義したInput、Outputの名前に修正することで解決しました。データを加工しない場合もQueryを編集する必要があるのですね。
実際にデータを流してみる
以下で紹介されているサンプルプログラムを使ってPCからデータをEventHubに流しました。
リアルタイム イベントのデータの異常を視覚化する - Azure Event Hubs | Microsoft Docs
データの流れは以下です。今回はデータ加工は一切していません。
PC → Event Hub → Stream Analytics →SQL Database
Stream AnalyticsからSQL Databaseに出力される際に、JSONデータのメンバをDBのカラムに対応付けしてくれます。そのためそれに応じたテーブル定義を作成しておく必要があります。
なお、投入したJSONのテストデータに加えてEventHubで追加されるメンバがあるようです。(以下図、右3カラム)