Cortana Intelligence Suiteを構築（第3回）- 新AzureポータルからのStream Analyticsの使い方（応用編）

#この記事で試すこと
Azure Event Hubsへ大量のデータを受信できますが、その後の加工処理をリアルタイムで行いたい場合に便利なのが、この「Azure Stream Analytics」です。この記事では、そんな「Stream Analytics」を利用して、データをすぐにリアルタイムで視覚化できる、Power BIへの設定方法をご紹介します。
まだAzure Event Hubsを設定されていない場合は、[こちら](http://qiita.com/taiki_yoshida/items/7d3cf3f783f3f94cd422)からWeb APIを利用したEvent Hubsの設定方法がご覧頂けます。

#事前に準備するもの
* Azure サブスクリプション
* Power BI サブスクリプション（無料版、Pro版のどちらも可能です）
* オープンデータへのアクセス権限（権限が必要な場合）

#設定手順
##Azure Stream AnalyticsからPower BI出力を設定する
Azure Stream Analyticsを利用することで、リアルタイムでイベントデータをそのままPower BIへ出力をすることも出来ます。Power BIの無料バージョン、Power BI Proの両方のバージョンで利用可能な機能です。
これは、2016年4月16日に一般公開されました（https://azure.microsoft.com/en-us/blog/streamanalytics-and-powerbi/）
###始める前に
Power BIへ出力するには、事前にPower BIへサインアップしておく必要があります。
Azureと同じアカウントである必要はありません。
サインアップされていない場合は、https://powerbi.microsoft.com/ja-jp/get-started/ からサインアップしてください。

###手順

1.  まず、ストレージアカウントへの送信同様、「出力」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/2a6954cd-eb96-7485-b0f9-83511efeaec5.png)

2. 「シンク」は「Power BI」を選択します。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/00eec0be-2bd2-b99d-373a-ab89074ba869.png)

3. 「接続の承認」
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/9f4bca57-0256-2381-9ac1-ba3a878d6a6a.png)

4. Power BIのアカウントでログインします。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/e6925368-2a49-a2d1-7ac7-1e1328597a7a.png)

5. ログインされると、「データセット名」と「テーブル名」が表示されます。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/1463d068-22d9-f1b7-6627-f17ba7d3b5e7.png)
以下のように、データセット名（左下）とフィールド（右側）に反映されるイメージです。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/39d85e29-4a13-2855-b8b3-858d9036770a.png)

6. 正しく設定されると、以下のような通知が表示されます。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/2138d0ca-793f-2e28-1c9c-f7ae249f212a.png)

7. これでPower BIへの出力設定は完了です。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/cb22b1fb-05ad-00b6-1df5-ef3adca4852c.png)

##クエリを設定する

1. 「クエリ」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/cb22b1fb-05ad-00b6-1df5-ef3adca4852c.png)

2. ストレージアカウントアカウント用のクエリの下に、更にクエリを追記し、画面左上の「保存」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/a7969841-153b-6dcd-b99a-b55bf7c1b661.png)


このクエリの例は、東京メトロのオープンデータAPIを利用しています。
元々の列名には「：」が含まれているため、よりわかりやすい列名に変更しました。
また、「dc:date」の列を元に、月、日、時間、分の専用の列を追加しています。追加することで、時間別や、月別、週別などの集計がよりPower BI上でやりやすくなります。

3. 正しく設定されていれば、以下のように通知されます。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/e582b533-07d8-40b6-0e38-90827a299a3d.png)

4. 「開始」をクリックすると、Stream Analyticsが開始され、受信したイベント（ここではEvent Hubsからのデータ）が設定したクエリ処理を経由して、出力先に送信されます。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/b31e562c-7a20-6baa-6a23-9c11ef5a6d2e.png)

5. 開始されると、以下のように入出力の件数が表示されます。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/f8576044-4c17-eb27-cec7-2792f474b763.png)

##Power BIで確認する
1. Power BIへログインすると、新たなデータセットが画面左下に追加されていることが確認できます。クリックすると、画面右側にフィールドとして、Azure Stream Analyticsで事前にクエリ内で指定していた列名が表示されます。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/321af267-4953-114e-f75c-bf90b5e2103b.png)

2. 私の例では東京メトロの運行状況なので、「delay」という列が、遅延時間を表しています。この「delay」の列をクリックしながら、空白のエリアへドラッグしてみます。

3. 自動的にPower BIがdelayの列でグラフを作ってくれました。折れ線グラフにし、軸へは「date」をドラッグしてきます。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/865d9050-fd2f-9b50-d74f-b731422cac70.png)

4. そうすると時系列的に遅延時間の推移が表示されるようになりましたね。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/0e4d4aac-107f-4af6-69da-dad5bd13cfba.png)

5. 少しシンプルですが、これでレポートを保存してみましょう。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/bcaf823e-c26d-670a-e82d-5a8dd51b72a8.png)

6. そのままこのグラフを「ピン止め」することで、ダッシュボードを作成できます。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/7b760c71-40a1-31c9-2d1f-08bff5d54722.png)

7. 新しいダッシュボードを選択し、ダッシュボード名を指定したあと、「ピン留め」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/3adfb535-e6d2-3368-5672-17e2b2f35c6d.png)

8. これでピン留め完了です。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/c5ae92ab-82f1-e7a0-feb2-a074a1e143e4.png)

9. ダッシュボードでは、リアルタイムでStream Analyticsのデータを表示してくれます。レポートでは更新を押す必要がありましたので、便利ですね。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/1049afa0-8000-9428-3807-a37e63c7bfd6.png)

10. 手をもう少し加えると、以下のようなリアルタイム運行状況ダッシュボードが作成できました！
※ちなみに、2016年10月1日から3日の間では、千代田線の北千住駅が一番遅延していた結果となりました。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/15f6473d-844e-5ad5-268e-bec72a4ace12.png)


次回の投稿では静的データをData Factoryを使って管理していこうと思います。お楽しみに！

#リンク集
著者が作成する際に、参考にしたリンクです：
https://azure.microsoft.com/en-us/documentation/articles/stream-analytics-power-bi-dashboard/