Check! ESP-WROOM-02 から Azure Event Hubs にデータを送り、Power BI で可視化する（2） ～ クラウド準備編


こんにちは、 @dz_ こと大平かづみです。

Prologue - はじめに
====
[Check! ESP-WROOM-02 から Azure Event Hubs にデータを送り、Power BI で可視化する（1） ～ 構成編](http://qiita.com/dz_/items/7093ec21802d1dc03464 "Check! ESP-WROOM-02 から Azure Event Hubs にデータを送り、Power BI で可視化する（1） ～ 構成編") の続きです。

まずは、以下の構成でクラウド側の準備をします。

![20160223_azure-event-hub_powerbi_001.png](https://qiita-image-store.s3.amazonaws.com/0/3812/12cf558e-648b-966c-b72b-2cea979080b5.png)

なお、本記事では Azure のアカウントを持っている前提で話を進めます。まだアカウントをお持ちでない方は、[無料枠](https://azure.microsoft.com/ja-jp/free/ "無料の Azure アカウントを今すぐ作成 | Microsoft Azure")もあるのでぜひアカウントを作成してみてくださいね(^^)/

大まかな流れ
====

1. [Microsoft Power BI](powerbi.microsoft.com/ja-jp/ "Power BI | 対話型のデータ視覚化 BI ツール") のアカウントを作成する
2. [Azure Event Hubs](https://azure.microsoft.com/ja-jp/services/event-hubs/ "Event Hubs - クラウド ビッグ データのソリューション | Microsoft Azure") を作成する
3. [Azure Stream Analytics](https://azure.microsoft.com/ja-jp/services/stream-analytics/ "Stream Analytics - リアルタイム データ分析 | Microsoft Azure") のジョブを作成する

手順
====

Microsoft Power BI のアカウントを作成する
----

[Power BI](powerbi.microsoft.com/ja-jp/ "Power BI | 対話型のデータ視覚化 BI ツール") には、デスクトップ版とウェブ利用版があります。今回はウェブ利用版を使いますので、サイトトップの `無料で使い始める` > `サインアップ` でアカウントを作成してください。

なお、Power BI のアカウント登録には、組織のメールアドレス（gmail.com などフリーメールではなく、会社や組織がもつ独自ドメインのメールアドレス）が必要となります。

![20160224_powerbi_003.png](https://qiita-image-store.s3.amazonaws.com/0/3812/85651796-05f5-ae1f-503a-2aa93585ea1b.png)

![20160224_powerbi_010.png](https://qiita-image-store.s3.amazonaws.com/0/3812/53641a3b-330f-cd05-9f0d-bc8733fa09b4.png)

Azure Event Hubs を作成する
----
次に、[Azure Event Hubs](https://azure.microsoft.com/ja-jp/services/event-hubs/ "Event Hubs - クラウド ビッグ データのソリューション | Microsoft Azure") を作成します。

以降で行う Power BI への出力の設定が、現時点(2016年2月)ではクラシックポータルでしかできないので、クラシックポータルで統一して作業を行います。クラシックポータルは、現ポータルの `Azure クラシックポータル` をクリックするか、 https://manage.windowsazure.com/ を開いてください。

![20160224_azure_002.png](https://qiita-image-store.s3.amazonaws.com/0/3812/9e442b52-38e8-bd03-d51b-b666c28fa5fb.png)

### イベント ハブを作成する
イベント ハブは [Service Bus](https://azure.microsoft.com/ja-jp/services/service-bus/ "Service Bus - クラウド メッセージング サービス | Microsoft Azure") の一部です。画面左下の `新規` から、 `APP SERVICES` > `SERVICE BUS` > `イベント ハブ` を開き、Service Bus の名前空間も同時に作成したいため、 `カスタム作成` を選択します。

![20160224_azure_event-hub_006.png](https://qiita-image-store.s3.amazonaws.com/0/3812/c7658e81-9721-11a5-37f6-526938b4492c.png)

「イベント ハブ名」「リージョン」 を設定してください。 「名前空間」は `新しい名前空間の作成` とし、「名前空間名」は自動的に挿入されます。

「パーティション数」は、イベントデータを格納する入れ物またはシーケンスと考えることができます。個数が多いほど同時に処理できるシーケンスが増えますが、今回は1つのデータストリームしか扱わないので、最低値の `2` を設定します。（パーティション数はあとから変更できないので、実用で使用するときはよく検討してください。）

「メッセージのリテンション期間」は、イベントデータを保持する期間です。今回は `1` 日とします。

上記の設定で、イベントハブを作成してください。

![20160224_azure_event-hub_007.png](https://qiita-image-store.s3.amazonaws.com/0/3812/e8ccdfc9-9f56-c126-a0e8-650e75dff757.png)

### イベント ハブの共有アクセスポリシーを設定する

Service Bus およびイベント ハブの作成が完了したら、イベント ハブの構成を開きます。

![20160224_azure_event-hub_013.png](https://qiita-image-store.s3.amazonaws.com/0/3812/6caef860-37a3-8674-1c00-cc3be332176c.png)

「共有アクセスポリシー」を、`送信` と `リッスン` のアクセス許可を付けて任意の名前で作成します。

![20160224_azure_event-hub_020.png](https://qiita-image-store.s3.amazonaws.com/0/3812/cd2b603a-b8d5-b148-c2c8-603646b22ede.png)

この共有アクセスキーは、[SAS（Shared Access Signature: 共有アクセス署名）](https://azure.microsoft.com/ja-jp/documentation/articles/storage-dotnet-shared-access-signature-part-1/ "Shared Access Signature: SAS モデルについて | Microsoft Azure")を作る際に使用します。

Azure Stream Analytics のジョブを作成する
----
さいごに、入力をイベント ハブ、出力を Power BI として、Stream Analytics のジョブを作成します。

### ジョブを作成する
画面左下の `新規` から、 `DATA SERVICES` > `STREAM ANALYTICS` > `簡易作成` を選択します。 `リージョン` は上記で作成したイベント ハブと同一とし、新しいストレージアカウントを指定して、ジョブを作成してください。

![20160225_azure_stream-analytics_004.png](https://qiita-image-store.s3.amazonaws.com/0/3812/c69afb70-ca40-167d-c03d-20d7c57b49c0.png)

### 入力を設定する

作成したジョブの「入力」タブを開き、 `入力の追加` をします。入力ジョブは `データストリーム` の `イベント ハブ` を指定します。

![20160225_azure_stream-analytics_008.png](https://qiita-image-store.s3.amazonaws.com/0/3812/fd98bc42-b4e3-b8f7-e729-35ef085e74f2.png)

以下のようにイベント ハブとシリアル化の設定を行い、作成します。

- イベントハブの設定
 - 入力のエイリアス: 任意
 - サブスクリプション: `現在のサブスクリプションのイベントハブを使用`
 - 名前空間を選択する: 今回作成した名前空間
 - EVENTHUB を選択する: 今回作成したイベント ハブ
 - イベント ハブ ポリシー: 変更しない
 - コンシューマーグループ: 変更しない

- シリアル化の設定
 - イベントのシリアル化の形式: JSON
 - エンコード: UTF8

![20160225_azure_stream-analytics_009.png](https://qiita-image-store.s3.amazonaws.com/0/3812/716a9842-6964-1400-b515-d5c1a95a840d.png)
![20160225_azure_stream-analytics_010.png](https://qiita-image-store.s3.amazonaws.com/0/3812/d3d3628a-bf4b-a8a6-12a5-18319d35276e.png)

### 出力を設定する
次に出力を設定します。

作成したジョブの「出力」タブを開き、 `出力の追加` をします。「Power BI」を指定し、「今すぐ承認」をクリックして作成した Power BI のアカウントでログインします。「出力のエイリアス」「データセット名」「テーブル名」に任意の文字列を指定し、作成します。

![20160225_azure_stream-analytics_015.png](https://qiita-image-store.s3.amazonaws.com/0/3812/5dac3227-83f5-c350-7a38-5db48c0da3fe.png)
![20160225_azure_stream-analytics_016.png](https://qiita-image-store.s3.amazonaws.com/0/3812/e43c59fc-d0ce-7ec3-e2b0-804f0ffd618d.png)

### クエリを設定する
最後にクエリを設定します。

作成したジョブの「クエリ」タブを開き、クエリを作成します。

`INTO` に「出力のエイリアス」で指定した文字列を、`FROM` に「入力のエイリアス」で指定した文字列を設定し、保存します。

![20160225_azure_stream-analytics_017.png](https://qiita-image-store.s3.amazonaws.com/0/3812/578bceea-a62f-0916-bb06-f997d1b6b889.png)

以上でクラウド側の準備が完了しました！

Epilogue - おわりに
====
イベント ハブから Power BI へ、Stream Analytics を経由することにより連携します。Stream Analytics のクエリでは指定したデータのみを出力に回すなどのカスタマイズも可能ですので、確認してみてください。

それでは、次回はいよいよ ESP-WROOM-02 からデータを送信してみます！