Stream Analytics のノー コード エディターを使用してリアルタイムの Power BI ダッシュボードを構築する

このチュートリアルでは、Stream Analytics のノー コード エディターを使用してリアルタイム データ ストリームの集計を計算し、それを Azure Synapse Analytics に格納する方法について説明します。

このチュートリアルでは、次の作業を行う方法について説明します。

  • イベント ハブにデータを送信するイベント ジェネレーターをデプロイする
  • ノー コード エディターを使用して Stream Analytics のジョブを作成する
  • 入力データとスキーマを確認する
  • グループ化するフィールドを選択し、カウントなどの集計を定義する
  • 結果の書き込み先となる Azure Synapse Analytics を構成する
  • Stream Analytics ジョブの実行
  • Power BI でのデータの視覚化

前提条件

始める前に、次の手順が完了していることを確認してください。

  1. Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成してください。

  2. TollApp イベント ジェネレーターを Azure にデプロイし、このリンクを使用して TollApp Azure テンプレートをデプロイします。 "interval" パラメーターを 1 に設定します。 そして、この手順で新しいリソース グループを使用します。

  3. 専用 SQL プールが備わった Azure Synapse Analytics ワークスペースを作成します。

    Note

    データをデータベースにキャプチャせずにリアルタイムの Power BI ダッシュボードを直接構築する場合は、手順 3 と 4 をスキップして、このガイドに進み、Stream Analytics ジョブによって生成された Power BI データセットを使用してリアルタイム ダッシュボードを構築できます。

  4. 専用 SQL プールを使って carsummary という名前のテーブルを作成します。 これは、次の SQL スクリプトを実行することで行うことができます。

    CREATE TABLE carsummary   
    (  
        Make nvarchar(20),  
        CarCount int,
    	times datetime
    )
    WITH ( CLUSTERED COLUMNSTORE INDEX ) ;
    

ノー コード エディターを使用して Stream Analytics のジョブを作成する

  1. TollApp イベント ジェネレーターがデプロイされたリソース グループがある場所を探します。

  2. Azure Event Hubs 名前空間を選択します。

  3. [Event Hubs 名前空間] ページで、左側のメニューの [エンティティ] の下にある [Event Hubs] を選択します。

  4. entrystream インスタンスを選択します。

    イベント ハブの選択を示すスクリーンショット。

  5. [機能] セクションの [データの処理] に移動してから、[空のキャンバスを使用して開始] テンプレートの [開始] を選択します。

    [空のキャンバスを使用して開始] タイルでの [開始] ボタンの選択を示すスクリーンショット。

  6. ジョブに carsummary という名前を付け、[作成] を選択します。

    [新しい Stream Analytics ジョブ] ページのスクリーンショット。

  7. イベント ハブの構成ページで、次の設定を確認し、[接続] を選択します。

    1. [コンシューマー グループ] で、[既存のものを使用] を選んでから、[既定] を選びます。

    2. [シリアル化の種類] で、[JSON] が選ばれていることを確認します。

    3. [認証モード] で、イベント ハブに接続するために [接続文字列] が使われていることを確認します: 接続文字列。

      イベント ハブの構成ページのスクリーンショット。

  8. 数秒以内に、サンプルの入力データとそのスキーマが表示されます。 必要に応じて、フィールドの削除、フィールド名の変更、データ型の変更を実行することもできます。

    イベント ハブ内のデータのプレビューとフィールドを示すスクリーンショット。

  9. コマンド バーで [操作] を選んでから、[グループ化] を選びます。

    コマンド バーの [グループ化] が選ばれている [操作] メニューを示すスクリーンショット。

  10. キャンバスで [グループ化] タイルを選択し、それをイベント ハブ タイルに接続します。

    [Event Hubs] タイルに接続されている [グループ] タイルを示すスクリーンショット。

  11. 次のように指定して、[グループ化] タイルを構成します。

    1. [集計]: [カウント]

    2. [フィールド]: [作成] (CarModel 内に入れ子になったフィールド)。

    3. [追加] を選択します。

      [グループ化] 構成ページの [集計] 設定のスクリーンショット。

    4. [設定] セクションで:

      1. [次で集計をグループ化] で、[Make] を選びます。

      2. [時間枠] で、値が [タンブリング] に設定されていることを確認します。

      3. [期間] に、3 分と入力します

      4. ページの下部にある [完了] を選択します。

        [グループ化] 構成ページのスクリーンショット。

  12. [グループ化] を選び、ページの下部にある [データのプレビュー] タブでグループ化されるデータを確認します。

    [グループ化] 操作の [データのプレビュー] タブを示すスクリーンショット。

  13. コマンド バーで、[操作] を選んでから [フィールドの管理] を選びます。

  14. [グループ化][フィールドの管理] タイルを接続します。

  15. [フィールドの管理] ページで、次の手順のようにします。

    1. 次の図で示すように、[Make] フィールドを追加して、[追加] を選びます。

      [作成] フィールドの追加を示すスクリーンショット。

    2. [追加] ボタンを選択します。

      [フィールドの管理] ページの [追加] ボタンを示すスクリーンショット。

  16. [Manage fields](フィールドの管理) 構成ページの [Add all fields](すべてのフィールドを追加する) を選択します。

    [フィールドの管理] ページのスクリーンショット。

  17. フィールドの横にある [...] を選択し、[編集] を選択して名前を変更します。

    • COUNT_makeCarCount

    • Window_End_Timetimes

      フィールドの名前が変更された [フィールドの管理] ページのスクリーンショット。

  18. [フィールドの管理] ページで [完了] を選びます。 [Manage fields](フィールドの管理) ページは次の画像のようになります。

    3 つのフィールドを含む [フィールドの管理] ページのスクリーンショット。

  19. [フィールドの管理] タイルを選び、ページの下部にある [データのプレビュー] タブで操作に流れ込むデータを確認します。

    [フィールドの管理] 操作の [データのプレビュー] タブを示すスクリーンショット。

  20. コマンド バーで [出力] を選んでから、[Synapse] を選びます。

    [出力] の [Synapse] が選ばれているコマンド バーのスクリーンショット。

  21. [Synapse] タイルをキャンバスの [Manage fields](フィールドの管理) タイルに接続します。

  22. [Synapse] 設定ページで、次の手順のようにします。

    1. [ジョブ ストレージ アカウント] がまだ設定されていない場合は、リソース グループで Azure Data Lake Storage アカウントを選びます。 これは、Synapse SQL がデータ ウェアハウスにデータを読み込むために使うストレージ アカウントです。

      Synapse とストレージ アカウントの選択を示すスクリーンショット。

    2. Azure Synapse Analytics が置かれている Azure サブスクリプションを選びます。

    3. 前のセクションで carsummary テーブルを作成するために使った専用 SQL プールのデータベースを選びます。

    4. 認証のためのユーザー名とパスワードを入力します。

    5. テーブル名として「carsummary」と入力します。

    6. [接続] を選択します。 Synapse SQL テーブルに書き込まれるサンプルの結果が表示されます。

      [Synapse] タイルの設定のスクリーンショット。

  23. [Synapse] タイルを選び、ページの下部にある [データのプレビュー] タブを表示します。 データが専用 SQL プールに流れ込むことがわかります。

    [Synapse] タイルの [データのプレビュー] を示すスクリーンショット。

  24. 上部のリボンで [保存] を選択してジョブを保存し、[開始] を選択します。 コマンド バーで選択されている [開始] ボタンを示すスクリーンショット。

  25. [Stream Analytics ジョブの開始] ページで、[開始] を選んでジョブを実行します。

    [Stream Analytics ジョブの開始] ページのスクリーンショット。

  26. ノーコード エディターを使って作成されたすべての Stream Analytics ジョブの一覧が表示されます。 2 分以内に、ジョブは [実行中] 状態になります。 ページの [最新の情報に更新] ボタンを選択すると、状態が [作成済み] -> [開始] -> [実行中] に変わります。

    ジョブの一覧を示すスクリーンショット。

Power BI の視覚化を作成する

  1. 最新バージョンの Power BI Desktop をダウンロードします。

  2. Azure Synapse SQL 用の Power BI コネクタを使います。

    Azure と Synapse Analytics SQL が選ばれている Power BI Desktop を示すスクリーンショット。

  3. DirectQuery でデータベースに接続し、次のクエリを使ってデータベースからデータをフェッチします

    SELECT [Make],[CarCount],[times]
    FROM [dbo].[carsummary]
    WHERE times >= DATEADD(day, -1, GETDATE())
    

    Azure Synapse SQL Database に接続するための Power BI Desktop の構成を示すスクリーンショット。

    [データベース] タブに切り替え、資格情報 (ユーザー名とパスワード) を入力してデータベースに接続し、クエリを実行します。

  4. [読み込み] を選んで、Power BI にデータを読み込みます。

  5. その後、次のように指定して折れ線グラフを作成できます

    • X 軸を [times] にする
    • Y 軸を [CarCount] にする
    • 凡例を [Make] にする。これで公開できるグラフが表示されます。 ページの自動更新を構成し、3 分に設定すると、リアルタイムのビューを取得できます。 車の概要データを示す Power BI ダッシュボードのスクリーンショット。

その他のオプション

Azure Synapse SQL を除き、SQL Database をノー コード エディター出力として使用してストリーミング データを受信することもできます。 次に、Power BI コネクタを使用して、DirectQuery で SQL Database をお使いのデータベースに接続し、リアルタイム ダッシュボードを構築します。

また、ストリーミング データを使用してリアルタイム ダッシュボードを構築することもできます。 SQL Database 出力の詳細については、「変換して SQL データベースに取り込む」を参照してください。

リソースをクリーンアップする

  1. Event Hubs のインスタンスの場所を探し、[データの処理] セクションの Stream Analytics ジョブの一覧を確認します。 実行中のジョブをすべて停止します。
  2. TollApp イベント ジェネレーターのデプロイ時に使用したリソース グループに移動します。
  3. [リソース グループの削除] を選択します。 リソース グループの名前を入力して削除することを確認します。

次のステップ

このチュートリアルでは、ノー コード エディターを使用して集計を定義し、結果を Azure Synapse Analytics に書き込む、Stream Analytics ジョブを作成しました。 その後、Power BI を使用してリアルタイムのダッシュボードを作成し、ジョブによって生成された結果を確認しました。