Stream Analytics のノー コード エディターを使用してリアルタイムの Power BI ダッシュボードを構築する
- [アーティクル]
-
-
このチュートリアルでは、Stream Analytics のノー コード エディターを使用してリアルタイム データ ストリームの集計を計算し、それを Azure Synapse Analytics に格納する方法について説明します。
このチュートリアルでは、次の作業を行う方法について説明します。
- イベント ハブにデータを送信するイベント ジェネレーターをデプロイする
- ノー コード エディターを使用して Stream Analytics のジョブを作成する
- 入力データとスキーマを確認する
- グループ化するフィールドを選択し、カウントなどの集計を定義する
- 結果の書き込み先となる Azure Synapse Analytics を構成する
- Stream Analytics ジョブの実行
- Power BI でのデータの視覚化
始める前に、次の手順が完了していることを確認してください。
Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成してください。
TollApp イベント ジェネレーターを Azure にデプロイし、このリンクを使用して TollApp Azure テンプレートをデプロイします。 "interval" パラメーターを 1 に設定します。 そして、この手順で新しいリソース グループを使用します。
専用 SQL プールが備わった Azure Synapse Analytics ワークスペースを作成します。
専用 SQL プールを使って carsummary
という名前のテーブルを作成します。 これは、次の SQL スクリプトを実行することで行うことができます。
CREATE TABLE carsummary
(
Make nvarchar(20),
CarCount int,
times datetime
)
WITH ( CLUSTERED COLUMNSTORE INDEX ) ;
ノー コード エディターを使用して Stream Analytics のジョブを作成する
TollApp イベント ジェネレーターがデプロイされたリソース グループがある場所を探します。
Azure Event Hubs 名前空間を選択します。
[Event Hubs 名前空間] ページで、左側のメニューの [エンティティ] の下にある [Event Hubs] を選択します。
entrystream
インスタンスを選択します。
[機能] セクションの [データの処理] に移動してから、[空のキャンバスを使用して開始] テンプレートの [開始] を選択します。
ジョブに carsummary
という名前を付け、[作成] を選択します。
イベント ハブの構成ページで、次の設定を確認し、[接続] を選択します。
[コンシューマー グループ] で、[既存のものを使用] を選んでから、[既定] を選びます。
[シリアル化の種類] で、[JSON] が選ばれていることを確認します。
[認証モード] で、イベント ハブに接続するために [接続文字列] が使われていることを確認します: 接続文字列。
数秒以内に、サンプルの入力データとそのスキーマが表示されます。 必要に応じて、フィールドの削除、フィールド名の変更、データ型の変更を実行することもできます。
コマンド バーで [操作] を選んでから、[グループ化] を選びます。
キャンバスで [グループ化] タイルを選択し、それをイベント ハブ タイルに接続します。
次のように指定して、[グループ化] タイルを構成します。
[集計]: [カウント]。
[フィールド]: [作成] (CarModel 内に入れ子になったフィールド)。
[追加] を選択します。
[設定] セクションで:
[次で集計をグループ化] で、[Make] を選びます。
[時間枠] で、値が [タンブリング] に設定されていることを確認します。
[期間] に、3 分と入力します
ページの下部にある [完了] を選択します。
[グループ化] を選び、ページの下部にある [データのプレビュー] タブでグループ化されるデータを確認します。
コマンド バーで、[操作] を選んでから [フィールドの管理] を選びます。
[グループ化] と [フィールドの管理] タイルを接続します。
[フィールドの管理] ページで、次の手順のようにします。
次の図で示すように、[Make] フィールドを追加して、[追加] を選びます。
[追加] ボタンを選択します。
[Manage fields](フィールドの管理) 構成ページの [Add all fields](すべてのフィールドを追加する) を選択します。
フィールドの横にある [...] を選択し、[編集] を選択して名前を変更します。
[フィールドの管理] ページで [完了] を選びます。 [Manage fields](フィールドの管理) ページは次の画像のようになります。
[フィールドの管理] タイルを選び、ページの下部にある [データのプレビュー] タブで操作に流れ込むデータを確認します。
コマンド バーで [出力] を選んでから、[Synapse] を選びます。
[Synapse] タイルをキャンバスの [Manage fields](フィールドの管理) タイルに接続します。
[Synapse] 設定ページで、次の手順のようにします。
[ジョブ ストレージ アカウント] がまだ設定されていない場合は、リソース グループで Azure Data Lake Storage アカウントを選びます。 これは、Synapse SQL がデータ ウェアハウスにデータを読み込むために使うストレージ アカウントです。
Azure Synapse Analytics が置かれている Azure サブスクリプションを選びます。
前のセクションで carsummary
テーブルを作成するために使った専用 SQL プールのデータベースを選びます。
認証のためのユーザー名とパスワードを入力します。
テーブル名として「carsummary
」と入力します。
[接続] を選択します。 Synapse SQL テーブルに書き込まれるサンプルの結果が表示されます。
[Synapse] タイルを選び、ページの下部にある [データのプレビュー] タブを表示します。 データが専用 SQL プールに流れ込むことがわかります。
上部のリボンで [保存] を選択してジョブを保存し、[開始] を選択します。
[Stream Analytics ジョブの開始] ページで、[開始] を選んでジョブを実行します。
ノーコード エディターを使って作成されたすべての Stream Analytics ジョブの一覧が表示されます。 2 分以内に、ジョブは [実行中] 状態になります。 ページの [最新の情報に更新] ボタンを選択すると、状態が [作成済み] -> [開始] -> [実行中] に変わります。
最新バージョンの Power BI Desktop をダウンロードします。
Azure Synapse SQL 用の Power BI コネクタを使います。
DirectQuery でデータベースに接続し、次のクエリを使ってデータベースからデータをフェッチします
SELECT [Make],[CarCount],[times]
FROM [dbo].[carsummary]
WHERE times >= DATEADD(day, -1, GETDATE())
[データベース] タブに切り替え、資格情報 (ユーザー名とパスワード) を入力してデータベースに接続し、クエリを実行します。
[読み込み] を選んで、Power BI にデータを読み込みます。
その後、次のように指定して折れ線グラフを作成できます
- X 軸を [times] にする
- Y 軸を [CarCount] にする
- 凡例を [Make] にする。これで公開できるグラフが表示されます。 ページの自動更新を構成し、3 分に設定すると、リアルタイムのビューを取得できます。
Azure Synapse SQL を除き、SQL Database をノー コード エディター出力として使用してストリーミング データを受信することもできます。 次に、Power BI コネクタを使用して、DirectQuery で SQL Database をお使いのデータベースに接続し、リアルタイム ダッシュボードを構築します。
また、ストリーミング データを使用してリアルタイム ダッシュボードを構築することもできます。 SQL Database 出力の詳細については、「変換して SQL データベースに取り込む」を参照してください。
- Event Hubs のインスタンスの場所を探し、[データの処理] セクションの Stream Analytics ジョブの一覧を確認します。 実行中のジョブをすべて停止します。
- TollApp イベント ジェネレーターのデプロイ時に使用したリソース グループに移動します。
- [リソース グループの削除] を選択します。 リソース グループの名前を入力して削除することを確認します。
このチュートリアルでは、ノー コード エディターを使用して集計を定義し、結果を Azure Synapse Analytics に書き込む、Stream Analytics ジョブを作成しました。 その後、Power BI を使用してリアルタイムのダッシュボードを作成し、ジョブによって生成された結果を確認しました。