Cortana Intelligence Suiteを構築（第2回）- 新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 サブスクリプション
* オープンデータへのアクセス権限（権限が必要な場合）
* Event Hubs（設定されていない場合は、[こちらの記事](http://qiita.com/taiki_yoshida/items/7d3cf3f783f3f94cd422)を見てください）

#設定手順
##Azure Stream Analyticsの準備
まずはAzure Stream Analyticsを準備します。
※2016年6月にリリースされた、新しいAzure PortalのAzure Stream Analyticsでの構築方法を記載します。

1. Azure ポータルから、「新規」>「Intelligence + Analytics」>「Stream Analytics ジョブ」の順にクリックします。 
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/4e2c9f09-792a-69af-793b-930f811d26df.png)

2. ジョブ名を記入し、サブスクリプション、リソースグループ、場所等を選択していき、「作成」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/baa9b578-697c-a93d-cf13-9b2a22179ff2.png)

3. 作成されると、以下のようにリストへ追加されます。作成したStream Analytics ジョブをクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/263e43da-7caa-fcaa-2e88-641d8c588d5d.png)

4. これで、Stream Analytics ジョブの作成は完了ですが、監視も有効にしたいと思います。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/e808cd52-fa00-10ac-843e-fd96ed08bcb4.png)

5. 以下のように、作成後は監視は有効になっていませんが、これでは、Event Hubsからメッセージを受信しても、簡易に受信したことを確認したり、エラーが発生していることがわかりにくくなります。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/25b2cc04-5c33-c889-54d3-7b161383c15d.png)

6. 監視を有効にするには、診断を有効化します。「状態」を「オン」にし、診断結果を保存する先のストレージアカウントを選択します。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/50a92fc3-acbd-d798-be30-53237a3ef244.png)

7. 正しく設定すると、以下のような通知が表示されます。これで設定は完了です。次に、作成したAzure Stream Analyticsを、Event Hubsや、ストレージアカウントとつなげていきます。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/cdb9d21e-6d19-2c59-2106-7cecc057c65e.png)

##Azure Event HubsをStream Analyticsへ接続する

1. 入力をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/e808cd52-fa00-10ac-843e-fd96ed08bcb4.png)

2. 追加をクリックし、各パラメータを入力していきます。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/823feec7-7cfc-35e7-7395-340355c659a3.png)

3. 正しく入力すると以下のような通知が表示されます。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/2d0ebf95-dade-3782-a7ee-251125650680.png)

4. これで入力の設定は完了です。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/adad8551-bc07-4bb0-ac9c-d18320b7561f.png)

##Azure Stream AnalyticsからAzure ストレージアカウント出力を設定する

1. 次に出力の設定をします。今回はEvent Hubsから受信した、データをまずはBLOBストレージへ保存しようと思います。「出力」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/9ca26003-d081-9242-515e-4d930d418f40.png)

2. 「シンク」ではBLOBストレージを選択します。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/323c2578-bfaa-ecfb-b2ee-41c7f4ee5506.png)

3. 各パラメータを入力していきます。ストレージアカウントを既にお持ちでしたら、既存のストレージアカウントを選択することもできますし、新規で作成することも可能です。保存する際のフォルダ階層は「パスパターン」で定義します。{date}では受信した日付、{time}では受信した時間（1時間単位）でフォルダを分けてくれます。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/66bf4f10-74ad-c9b1-c6d9-54007b19ae36.png)

4. 正しく設定すると、以下のような通知が表示されます。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/9c3991ca-3f3d-b620-3a39-f34cc7296702.png)

5. これで、出力の設定は完了です。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/b7b8d604-797a-845e-52f4-d72e3faacecb.png)


#クエリを設定する
入力と出力は設定できましたが、これだけではStream Analyticsは動作しません。入力で受信したデータを出力へ渡すためのクエリを設定する必要があります。今回は基本編ということもあり、一番シンプルなクエリを設定します。次回は、より高度なクエリをご紹介します。

1. 「クエリ」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/4a3d8a64-a944-6fe3-0d8d-c613be81daa6.png)

2. クエリを以下のように設定し、「保存」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/1b73c743-c7df-baf2-b261-16cf2320d37d.png)


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

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

5. 実際に保存されているか、確認してみます。確認にはAzure Portalからアクセスするだけでも可能ですが、Azure Storage Explorerを使うとGUIが充実していて便利です。今回はAzure ポータルから確認します。ストレージアカウントへアクセスし、「BLOB」をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/b308757c-6fb6-ee70-9549-e9c2c0204754.png)

6. コンテナを選択し、作成されたフォルダを開いてみます。最下層に進むと、JSON形式のファイルが格納されています。ファイル名は自動でStream Analyticsが生成したものです。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/ccd32393-488d-0053-8af5-ca9fc4d9ffdc.png)

7. それではダウンロードしてみます。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/ef7b3764-7b09-904c-295e-1a43a704e190.png)

8. 正しくJSON形式で受信されていました。
![image](https://qiita-image-store.s3.amazonaws.com/0/136660/e02321d0-1222-c6f2-21c5-feaa1e452a48.png)