LoginSignup
0

More than 1 year has passed since last update.

#2 IoT Hub + Stream Analytics + PowerBI でストリーミングデータ分析してみました

Last updated at Posted at 2021-06-16

STEP-2.Azure Stream Analytics と PowerBI の 設定 とリアルタイム分析の表示

概要

データは鮮度が命! ということで、データストリーミングを手軽にAzureで実装をおこなってみました。構成は、Azureの 「IoT Hub + Stream Analytics + PowerBI」となります。 IoT疑似データ生成プログラムをPythonで実装し IoT Hub にデータを投げ、Stream Analytics でストリーミング+クエリ処理を行い、そのクエリ結果=分析情報をリアルタイムにPowerBIに表示してみました。

データストリーミングのデファクトは「Apache kafka(商用版:Confluent)」で、「Azure HDInsight」で Apache Kafak の実装を行えますが、それより簡易にストリーミング処理を行うためのものとなります。

本題の構成は以下となります。
image.png

  • 以下の2つのステップで順次説明します。今回は STEP-1 について説明します。
    • STEP-1.Azure IoT Hub の設定とデータ受信のモニタリング
    • STEP-2.Azure Stream Analytics と PowerBI の 設定 とリアルタイム分析の表示

ローカル環境

macOS Big Sur 11.3
python 3.8.3


Stream Analytics の設定

Stream Analytics の作成

Azure Portalにログインし、Stream Analytics を作成します。 ジョブ名に「sa-ituru-stream-test」を指定します。
image.png

画面下部の「作成」ボタンを押します。

入力の定義

作成された「sa-ituru-stream-test」画面の左側から「入力」を選択後、画面上部の「+ストリーム入力の追加」から「IoT Hub」を選択します。
image.png

新たに表示される「IoT Hub」画面において、「入力のエイリアス」に「IothubStreamTestDummyInput」を、「コンシューマグループ」に「consumerdummy」と入力し、画面下部の「保存」ボタンを押します。
image.png

ストリーム入力の追加後の画面は以下となります。
image.png

出力の定義

作成された「sa-ituru-stream-test」画面の左側から「出力」を選択後、画面上部の「+追加」から「Power BI」を選択します。
image.png

新たに表示される「Power BI」画面において、「出力エイリアス」に「IothubStreamTestDummyOutputSsection」を、「データセット名」に「IoTDummyDataset」を、「テーブル名」に「iotvalue_tbl」と入力し、Power BI の接続承認を経て、画面下部の「保存」ボタンを押します。
image.png

ストリーム入力の追加後の画面は以下となります。
image.png

クエリ定義

作成された「sa-ituru-stream-test」画面の左側から「クエリ」を選択し、「入力」に「IothubStreamTestDummyInput」を設定します。
テストのために「クエリ欄」に以下を記述します。

SELECT
    section,
    vol_1,
    Vol_2
INTO
    [YourOutputAlias]
FROM
    IothubStreamTestDummyInput

STEP-1 の IoT疑似データ生成プログラムを実行したあとに、Azure Stream Analytics でデータの受信とクエリ結果の確認のために、「クエリのテスト」を実行します。
image.png

結果、受信したデータのクエリ処理を確認できたので、「出力」に「IothubStreamTestDummyOutputSsection」を設定します。
データ分析のために「クエリ欄」に以下を記述します。Stream Analyticsのクエリを参考にさせていただき、section 毎に vol_2 値の10秒間の平均値を1秒スライドで表示させるクエリを作成しました。

SELECT
    section,
    AVG(vol_2)
INTO
    IothubStreamTestDummyOutputSsection
FROM
    IothubStreamTestDummyInput timestamp by time
GROUP BY
    section,
    SlidingWindow(second, 10)

image.png


Power BI の設定

「powerbi.microsoft.com」に接続しサインインします。サインイン後、画面上部の「Power BI Service」を選択します。
画面左側から「マイワークスペース」を選択し、画面上部の「+新規」から「ダッシュボード」を選択します。
「ダッシュボードの作成」画面の「ダッシュボード名」に「IoTHubStream」を入力し、「作成」ボタンを押します。
image.png

「マイワークスペース」ー「ダッシュボード」ー「IoTHubStream」を選択し、画面右上の「編集」から「タイルの追加」を選択します。
「タイルの追加」画面から「カスタムストリーミングデータ」を選択し、「次へ」ボタンを押します。
image.png

「カスタムストリーミングデータ タイルの追加」画面の「データセット」に「IoTDummyDataset」を入力し、「次へ」ボタンを押します。
次画面の「視覚化タイプ」に「集合横棒グラフ」を選択し、「軸」に「section」、「値」に「AVG」を選択し、「次へ」ボタンを押します。
「タイルの詳細」画面の「タイトル」に「IoTダミーデータ」、「サブタイトル」に「vol_2 AVG」と入力し、「適応」ボタンを押します。
image.png


ジョブの実行

Azure Stream Analytics の「sa-ituru-stream-test」ジョブ画面の上部にある「▷開始」ボタンを押し、新たに表示された「ジョブの開始」画面下部の「開始」ボタンを押し、ジョブを実行させます。
image.png


デバイス(IoTデータ生成プログラム)から IoT Hub へのデータ送信

STEP-1 の IoT疑似データ生成プログラムを実行してみます。1秒間隔で120件のデータを IoT Hub へ送信します。

$ python IoTSampleData-v3.py --count 120 --mode ih --wait 1.0

送信されたデータは、同時に Power BI のダッシュボードで確認できます。
image.png

これで、IoTデバイス(Pythonプログラム)から送信されたデータが IoT Hub - Stream Analytics を経由し、クエリ処理された結果を Power BI でリアルタイム表示されることを確認できました。


参考情報

以下の情報を参考にさせていただきました。感謝申し上げます。
Stream Analytics入門してみた #azurejp
Stream Analytics で 凝った集計処理を実装する
CO2濃度をAzureで可視化してみた

本題のステップ

STEP-1.Azure IoT Hub の設定とデータ受信のモニタリング
STEP-2.Azure Stream Analytics と PowerBI の 設定 とリアルタイム分析の表示

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0