Stream Analyticsの作成

初めにSteam Analyticsを作成し、Stream Analyticsの入力元(Input)と出力先(Output)、クエリを定義します
  1. Stream Analyticsの作成
  2. 画面の左側メニューより、[すべてのサービス]を選択し、[分析]、[Stream Analyticsジョブ]をクリックします



  3. Stream Analyticsの追加
  4. Stream Analyticsの画面が表示されたら、上部のメニューより[+追加]をクリックします


  5. 新しいStream Analyticsジョブの追加
  6. 新しいStream Analyticsジョブの画面が表示されたら


     ジョブ名
    任意のジョブ名を指定します、利用できる文字種に注意してください

     サブスクリプション
    複数のサブスクリプションがある場合に表示されます、例えば、製品毎、ユーザー毎、評価環境と実運用など
    ※サブスクリプション名はユーザーでは変更できません、変更したい場合はご相談下さい

     リソース グループ
    既存のリソースグループを選択します
    リソース グループを新しく作成する場合は、下の新規作成をクリックします

     場所
    リージョンは自由に選択できますが、リソース グループと同様に日本国内の場合[東日本]/[西日本]を選択するのが無難です

     ストリーミングユニット(1から192)
    Stream Analyticsジョブで同時に処理するユニット数を設定します
    初期設定は3ユニットですが、小規模のPoCや学習目的であれば1ユニットへ変更し、必要に応じてユニット数を増やします

    Stream Analyticsの料金
    Azure Stream Analytics の価格は、このサービスに入力されるデータを処理するために必要なストリーミング ユニットの数に基づいて決まります

    標準ストリーミングユニット
    使用方法料金
    ストリーミングユニット¥15.456/時間
    ストリーミングユニット¥370.944/日
    ストリーミングユニット¥11282.88/月(※)
    ※価格に関しては参考価格となります、詳細はお問い合わせください
    ※月額は\15.456/時間×24時間×365日÷12カ月で計算

    ■ポイント!
    Stream Analyticsは利用しない時に停止することで利用料金を抑えることができます
    例えば、学習目的などであれば1日10時間、週に5日間で1月(4週間)利用した場合はおよそ¥3,000位で利用できます
    逆に初期設定の3ユニットで1月(28日)使い続けた場合はおよそ¥31,000位となります

     作成
    作成内容に問題無ければ、[作成]をクリックしデプロイを開始します
    Stream AnalyticsをAzure上にデプロイするには数分程度かかるので、デプロイが終了するまで暫く待ちます

  7. Stream Analyticsの開始/停止/削除
  8. Stream Analyticsのデプロイが正常終了した場合、「停止」状態となります
    入出力を定義し、入出力の関係を定義したクエリが正しければ、「開始」状態に移行できます


    Stream Analyticsの状態を確認したり変更したりするには、作成済みのStream Analyticsの概要メニューを選択します

     開始
    Stream Analyticsが「停止」している場合、「開始」をクリックし稼働することができます

     停止
    Stream Analyticsが「開始」している場合、「停止」をクリックし停止することができます

     削除
    Stream Analyticsを削除する場合にクリックします

  9. Stream Analyticsのストリーム入力の追加
  10. Stream Analyticsの左側のメニューから[入力]を選択し、[+ストリーム入力の追加]をクリックすると、
    入力元のリストが表示されるので[IoT Hub]を選択します


  11. ストリーム入力の定義
  12. Stream Analyticsで利用する入力を定義します


     入力のエイリアス
    クエリで使用する入力名を指定します、複数の入力を定義すること可能です

     ◎サブスクリプションからIoT Hubを選択する
    既に作成済みのIoT Hubが同じサブスクリプションにあるので、「サブスクリプションからIoT Hubを選択する」を選択します

     サブスクリプション
    複数のサブスクリプションを契約している場合、今回の学習用に作成したIoT Hubと同じサブスクリプションを選択します

     IoT Hub
    サブスクリプション内に既に定義済みのIoT Hubが複数ある場合は、学習用に作成したIoT Hubを選択します

     コンシューマーグループ
    今回は初期状態($Default)でも大丈夫です、IoT Hubの入力を複数の出力(5つ以上)に分けて必要がある場合、
    入力を複数定義し、コンシューマーグループに別の名前を設定します(Input1、Input2等)

     保存
    名前やIoT Hubの指定に問題がなければ、その他の設定は初期設定のまま[保存]をクリックし入力の定義を終了します

  13. Stream Analyticsのストリーム出力の追加
  14. Stream Analyticsの左側のメニューから[出力]を選択し、[+追加]をクリックすると、
    出力先のリストが表示されるので[Data Lake Storage Gen2/BLOB storage]を選択します


  15. ストリーム出力の定義-BLOBストレージ
  16. Stream Analyticsで利用するBLOBストレージ出力を定義します


     出力エイリアス
    クエリで使用する出力名を指定します、複数の出力を定義すること可能です

     ◎Select storage from your subscription
    既に作成済みのBLOBストレージが同じサブスクリプションにあるので、「Select storage from your subscription」を選択します

     サブスクリプション
    複数のサブスクリプションを契約している場合、今回の学習用に作成したBLOBストレージと同じサブスクリプションを選択します

     ストレージアカウント
    サブスクリプション内に既に定義済みのストレージアカウントが複数ある場合は、学習用に作成したストレージアカウントを選択します

     コンテナー
    コンテナーの名前を指定します

    ※今回は学習用のコンテナーを「◎新規作成」します、「○既存のものを使用」することも可能です

    パスパターンを指定する事でコンテナー内に指定のパスでログを保存できます
    例えば、上図の設定では年月日で階層が分かれ、以下のような構成でファイルが保存されます
    [コンテナー]\TelemetoryLog\YYYY\MM\DD\xxxxxx_1.csv

     イベントシリアル化形式
    BLOBストレージにデータを保存する形式(フォーマット)を選択します
    フォーマット形式は JSON/Avro/CSV/PARQUTE から選択できますが、今回はExcelで一般的なCSV形式で保存を選択します

     区切りの記号
    イベントシリアル化形式でCSVを選択した場合に表示され、
    CSV形式の区切り記号として コンマ(,)/セミコロン(;)/スペース/タブ/縦棒(|) を指定できます

     保存
    エイリアス名やイベントシリアル化形式の指定に問題がなければ、その他の設定は初期設定のまま[保存]をクリックし入力の定義を終了します


  17. ストリーム出力の定義-Power BI
  18. Stream Analyticsで利用するPower BI出力を定義します
    Stream Analyticsの左側のメニューから[出力]を選択し、[+追加]をクリックすると、
    出力先のリストが表示されるので[Power BI]を選択し、Power BIとの接続を[承認する]をクリックします

    ※ Power BIへデータを出力する場合は、Power BIのライセンス(有償版/無償版)が必要になります


  19. Power BIの認証
  20. Stream Analyticsの出力先にPower BIを指定する場合、出力先のPower BIの認証が必要になります
    Power BIの出力先の定義する際に[承認]をクリックすると、下図の様な画面が表示されるので、
    Power BIのアカウント、パスワードを指定し認証を行ってください


  21. ストリーム出力の定義-Power BI
  22. Stream Analyticsで利用するPower BI出力を定義します
    → 下記の「ポイント!」を参照

     認証モード
    最初に認証モードを[ユーザー トークン]へ変更します

     出力エイリアス
    クエリで使用する出力名を指定します、複数の出力を定義すること可能です

     データセット名
    Power BIで表示するデータソースを選択する際に表示されるデータセット名を指定します

     テーブル名
    Power BIでデータを可視化する際に利用するテーブル名を指定します

     保存
    設定が終わったら、必ず[保存]をクリックしてください

    ■ポイント!
    出力先のPower BIには、学習環境(POC)とは違うドメイン(xxx@domain.onmicrosoft.com)でも、指定する事ができます
    例えば、学習環境のドメインで生成されたデータを、既に会社で所有しているPower BIへ出力する等
    この場合は、下図の認証画面でPower bIのアカウントに既存のアカウントで認証を行います

    また、学習環境のドメイン(CSPライセンス)にFree(無償)版のPower BIのライセンスを付与することも可能です
    CSPライセンス契約を締結済みのお客様でFree(無償)版のPower BIのライセンスをご希望の場合はご相談ください
    同様に Power BI Pro(有償版)をご希望の場合も対応可能です
    Power BIを共有したり、Power BI Embeddedで開発する場合は有償版のライセンスが必要です

  23. Power BI(fee)ライセンスの確認
  24. 契約中のアカウント環境(CSPライセンス)でFree(無償)版のPower BIが利用できるか確認するには?
    Azureポータルの左側メニューから[Azure Active Directry]→[ライセンス]の順にクリックし、「ライセンス-概要」開きます
    「購入済み」欄の「n個の製品」をクリックすると、CSPアカウントで現在利用可能なライセンスが画面が表示されます
    ライセンスリストに「Power BI(free)」が表示されていれば、クリックすると下記画面が表示されます


    上記画面では「azuredemo@xxxx.onmicrosoft.com」ユーザにPower BI(free)版のライセンスが割り当てられているのが確認できるので、
    ストリーム出力-Power BIの承認を行う際に、この表示されたユーザを利用することができます

    ■ポイント!
    「n個の製品」や「Power BI(free)」が表示されない場合は追加ライセンスをお持ちでないので、担当営業までご相談ください

  25. クエリの定義
  26. Stream Analyticsで利用するクエリを定義します
    Stream Analyticsの左側のメニューから[クエリ]を選択すると、中央に入出力のリストが表示され、
    右側にクエリエディタが表示されるのでクエリを記述します


    ■ポイント!
    Stream Analyticsのクエリを編集するには、Stream Analyticsジョブを停止しておく必要があります
    ジョブの稼働中にクエリを編集する場合は、[概要]メニューから[停止]をクリックしてください

  27. クエリの定義
  28. クエリを利用することで、入力から出力へデータ渡す際にフィルターをかけたり、データを加工したりすることができます
    今回は単純にIoT Hubから入力された情報を加工せずにBLOBストレージとPower BIへ渡しますが
    実際のクエリを利用してできることや文法などは、 「一般的 Stream Analytics 使用状況パターンのクエリ例」や、
    リンク先のメニュー等が参考になります


     クエリ1
    赤枠の部分がIoT HubからBLOB ストレージへの記述

     クエリ2
    青枠の部分がIoT HubからPower BIへの記述

    クエリは、以下の様な形式となります
    SELECT
    	<データに対する操作を記述>
    INTO
    	<データの出力先-1>
    FROM
    	<データの入力元>
    
    SELECT
    	<データに対する操作を記述>
    INTO
    	<データの出力先-2>
    FROM
    	<データの入力元>
    

    上記のクエリはクエリを2つ定義することで、一つのIoT Hubの入力先のデータをすべて(*)BLOBストレージとPower BIへ出力しています。

    Azureは全世界でサービス展開されるため基本的に標準時で処理されますが、例えば日本時間でデータを表示したい場合などはクエリに

    SELECT
    *
    DATEADD(hour,9,System.TimeStamp) as system_datetime_jp

    を追加することで、AzureのSystem時刻を+9時間した日本時間を出力データに追加できます

     保存
    クエリの編集がすんだら必ず保存をクリックして、クエリを保存するようにしてください

  29. Stream Analyticsの起動
  30. Stream Analyticsを起動します Stream Analyticsの左側メニューから[概要]を選択し、[開始]をクリックします


  31. ジョブの開始
  32. Stream Analyticsの[開始]をクリックすると、ジョブ出力を開始する時刻を選択できます


     現在
    今回は過去のデータは必要ないので、(現在)を選択します

    ■ポイント!
    Stream Analyticsの入出力の定義にもよりますが、IoT Hubでは規定で1日間(7日間まで)データを保持しているため
    Stream Analyticsの作業内容によっては過去(指定時刻や最終停止時刻)からジョブ出力を行うことができます
    クエリーのエラーなどでジョブが停止したが、修正したので停止時刻から再開したいなど

     開始
    最後に[開始]を選択するとStream Analyticsが開始されるので、数分程度状況を確認しエラーが発生しないことを確認し
    デバイスのサンプルプログラムを実行してください