この記事は、以下の記事の中で進めた下準備の続きで、センサーデータを可視化する、というものです。
●Azure IoT Hub へのデータ送信と Azure Stream Analytics による可視化の下準備を試す(公式ドキュメントやサンプルをピックアップしつつ) - Qiita
https://qiita.com/youtoy/items/0ca9be93c9189e71b5d1
可視化には Power BI を利用してみます。
なお自分の環境の事情で、「Azure を利用しているアカウント」と「Power BI を利用しているアカウント」が異なる状態で、以下の内容を行っています。
Azure IoT Hub の下準備
冒頭に書いていた前回の記事の手順を進めて、Azure IoT Hub へデータの送信が行えて、送信したデータが Azureポータル上で確認できる状態まで、あらかじめ進めておいてください。
Power BI にサインインしてワークスペースを作成
利用のための前提条件
前の記事の「データの可視化の下準備」の部分で、可視化の話を少し書いていました。
その中で書いていた話の 1つに出てくる「Power BI」を利用していきます。
自分の環境では、Azure を利用しているアカウントとは別アカウントで「Power BI」を使っていきます。
Power BI を利用する際に、サインインをする必要がありますが、その際、例えばこの「Power BI とは?」という記事の「Power BI を始めるには」という部分に書かれているとおり、「組織アカウント(Azure Active Directory で管理されているアカウント)」が必要になるようです。
(@live.jp、@outlook.jp等といったアドレスではサインインできません)
Power BI でワークスペースを作成
Azure Stream Analytics の設定で、Power BI のワークスペースの ID が必要になるので、それを進めます。
Power BI を利用するほうのアカウントで Power BI にログインし、以下の部分から新規にワークスペースを作成しました。
Power BI のほうで、ワークスペース作成。 pic.twitter.com/1RJs1PDIWy
— you (@youtoy) November 7, 2021
作成したワークスペースの URL を見ると
「https://app.powerbi.com/groups/【ワークスペースの ID】/list
」
といったような内容になっているため、この「【ワークスペースの ID】」をメモしておきます。
Azure Stream Analytics の設定
手順の概要
前回の記事の最後にも掲載していた、「Azure IoT Hubに送信したデータを可視化する(Power BI編)」という記事の中の「Stream Analyticsの作成」の部分や、その他、公式ドキュメントの「Azure IoT Hub から取得したデータのリアルタイム データの視覚化 – Power BI」などを見つつ、以下の設定を進めてください。
- Azure Stream Analytics の作成
- Azure IoT Hub のコンシューマグループの設定
- Stream Analytics の設定
- ストリーム入力の追加
- Stream Analytics の出力の設定
- クエリの設定
- Stream Analytics のジョブの開始
Stream Analytics の出力設定の補足
Stream Analytics の出力の設定の部分については、自分の環境が参照元として示していた記事の環境と少し異なるため、手順に差異があります。それについて少しだけ補足します。
以下は、「Stream Analytics の出力設定」を新規に追加しているところです。
Azure Stream Analytics の出力を、Power BI へ。 pic.twitter.com/EJhSFpkHQf
— you (@youtoy) November 7, 2021
以下の「接続を承認する」という赤枠で囲んだ部分から、「Power BI を利用するアカウント」でサインインします。
その後、以下の「グループ ワークスペース」と書かれた部分は、上記の「Power BI でワークスペースを作成」の手順で書いていた「【ワークスペースの ID】」を入力する形になります。
このあたりを設定していく pic.twitter.com/mb9VkfuKUE
— you (@youtoy) November 7, 2021
Azure Stream Analytics上で入力データの確認
Azure Stream Analytics のクエリを設定する手順のところで、入力データやクエリの実行結果を確認する話について、ここで触れておきます。
入力については、以下の画像で示した「入力のプレビュー」という部分を選ぶことで確認できます。
Azure IoT Hub に送られたデータ、Azure Stream Analytics で受けとれているっぽい。 pic.twitter.com/uAGqXX4TLD
— you (@youtoy) November 7, 2021
Azure Stream Analytics でのクエリの設定
公式ドキュメントの「Azure IoT Hub から取得したデータのリアルタイム データの視覚化 – Power BI」の中の「Stream Analytics ジョブのクエリの構成」の部分で書かれた内容をもとに、クエリを書きかえます。
SELECT
*
INTO
"【ジョブの出力エイリアス】"
FROM
"【ジョブの入力エイリアス】"
WHERE temperature IS NOT NULL
自分は、ジョブの入力エイリアスと出力エイリアスのそれぞれで「ハイフン(-)」を含めた名前にしていたため、それぞれの文字列を「ダブルクォーテーション(")」で囲んでいます。
Azure Stream Analytics上でクエリのテスト
クエリのテストは、画面上部の「クエリのテスト」と書かれた部分を押し、その後に以下の赤矢印で示している「テスト結果」の部分を選択することで確認できます。
Azure IoT Hub ⇒ Azure Stream Analytics と流れてきたデータに対するクエリのテスト結果、うまく動いているっぽい。 pic.twitter.com/ic3VCXtXNz
— you (@youtoy) November 7, 2021
Power BI での可視化の結果
上記の手順を進めて、「Stream Analytics のジョブの開始」を行った後に、何らかAzure IoT Hub へデータを送ってやれば、以下のように Power BI へデータが流れてくるのが確認できます。
Power BI のほうに、データが来た。 pic.twitter.com/JzKDQkFAT2
— you (@youtoy) November 7, 2021
後は、Power BI 上でデータの可視化を行います。
公式ドキュメントの「Azure IoT Hub から取得したデータのリアルタイム データの視覚化 – Power BI」の中の「データを視覚化する Power BI レポートの作成と公開で書かれた手順を進め、折れ線グラフを作成します。
以下は温湿度の時系列データを折れ線グラフにした時の、画面全体の様子です。
Azure IoT Hub で受けた温湿度の値(Node.js で作ったダミーデバイス的なものから送った時系列データ)を、Power BI の上で折れ線グラフにできた!#Azure pic.twitter.com/YoSxfT7m3G
— you (@youtoy) November 7, 2021
おわりに
Azure IoT Hub に送られたセンサーデータ(温湿度のデータ)を、Azure Stream Analytics を介して Power BI に送り、それを折れ線グラフにすることができました。
今回、センサーデータの部分は、Node.js で作ったダミーデバイス的なプログラムを使い、乱数を混ぜ込んだダミーの温湿度の値を送りました(そのため、短い時間でけっこうな変化が生じています)。
今後は、例えば以下のような実際のデバイスで計測したデータをもとに、この可視化の仕組みを動かしてみようと思います。
GR-ROSE と「Grove - CO2 & Temperature & Humidity Sensor (SCD30) 」の接続はスルーホール用テストワイヤを使い、差し込み式で接続してる。 https://t.co/hA2wu3KYw3 pic.twitter.com/WbV3yNgNB6
— you (@youtoy) October 30, 2021