チュートリアル: Power BI を使用して Azure IoT Hub からのリアルタイム センサー データを視覚化する

Microsoft Power BI を使用して、Azure IoT ハブが受信したリアルタイム センサー データを視覚化できます。 これを行うには、IoT Hub からのデータを使用し、Power BI 内のデータセットにルーティングするように Azure Stream Analytics ジョブを構成します。

デバイスから Power BI へのデータ フローを示す図。

Microsoft Power BI は、大規模なデータ セットに対してセルフサービスおよびエンタープライズ ビジネス インテリジェンス (BI) を実行するために使用できるデータ視覚化ツールです。 Azure Stream Analytics は、分析情報を取得、レポートを作成、またはアラートとアクションをトリガーするために使用できるデータの高速移動ストリームを分析および処理するための、フル マネージド リアルタイム分析サービスです。

このチュートリアルでは、以下のタスクを実行します。

  • IoT ハブのコンシューマー グループを作成します。
  • コンシューマー グループから温度テレメトリを読み取って Power BI に送信する Azure Stream Analytics ジョブを作成して構成します。
  • Power BI 内で温度データのレポートを作成し、Web で共有します。

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

前提条件

このチュートリアルを開始する前に、次の前提条件を満たしておく必要があります。

  • 選択した開発言語でテレメトリの送信に関するクイックスタートのいずれかを完了します。 または、温度テレメトリを送信する任意のデバイス アプリを使用することもできます。たとえば、Raspberry Pi オンライン シミュレーターや組み込みデバイスのチュートリアルの 1 つなどです。 これらの記事では、次の要件について取り上げています。

    • 有効な Azure サブスクリプション
    • サブスクリプション内の Azure IoT Hub。
    • Azure IoT ハブにメッセージを送信するクライアント アプリ。
  • Power BI アカウント Power BI を無料で試します。

IoT Hub へのコンシューマー グループの追加

コンシューマー グループは、イベント ストリームへの独立したビューを提供します。これにより、アプリと Azure サービスは、同じイベント ハブのエンドポイントからデータを別々に使用することができます。 このセクションでは、エンドポイントからデータを取得するためにこのチュートリアルの後半で使用される、IoT ハブの組み込みのエンドポイントにコンシューマー グループを追加します。

コンシューマー グループを IoT ハブに追加するには、次の手順に従います。

  1. Azure Portal で、IoT ハブを開きます。

  2. 左側のペインで、 [組み込みのエンドポイント] を選択します。 [コンシューマー グループ] の下のテキスト ボックスに、新しいコンシューマー グループの名前を入力します。

    IoT ハブでコンシューマー グループを作成する方法を示すスクリーンショット。

  3. テキスト ボックスの外側のどこかをクリックして、コンシューマー グループを保存します。

Stream Analytics ジョブの作成、構成、実行

Stream Analytics ジョブを作成します。 ジョブを作成したら、入力、出力、およびデータを取得するためのクエリを定義します。

Stream Analytics のジョブの作成

IoT Hub から Power BI にデータをルーティングするために使用する Stream Analytics ジョブを作成します。

  1. Azure Portal で、 [リソースの作成] を選択します。 検索ボックスに「Stream Analytics ジョブ」と入力し、ドロップダウン リストから選択します。 [Stream Analytics ジョブ] 概要ページで、 [作成] を選択します

  2. [新しい Stream Analytics ジョブ] ページの [基本] タブで、次の情報を入力します。

    パラメーター
    サブスクリプション IoT ハブが含まれているサブスクリプションを選択します。
    リソース グループ IoT ハブを含むソース グループを選択します。
    名前 ジョブの名前を入力します。 名前はグローバルに一意である必要があります。
    リージョン IoT ハブが配置されているリージョンを選択します。

    他のすべてのフィールドは既定値のままにします。

    Stream Analytics ジョブの作成を示すスクリーンショット。

  3. [確認と作成] を選択してから、[作成] を選択して Stream Analytics ジョブを作成します。

  4. ジョブが作成されたら、[リソースに移動] を選びます。

Stream Analytics ジョブへの入力の追加

IoT ハブからデータを収集するように Stream Analytics ジョブを構成します。

  1. Stream Analytics ジョブを開きます。

  2. ナビゲーション メニューの [ジョブ シミュレーション] セクションから [入力] を選択します。

  3. [入力の追加] を選択し、ドロップダウン リストから [IoT Hub] を選択します。

    [入力の追加] メニューから IoT Hub を選択していることを示すスクリーンショット。

  4. 新しい入力ウィンドウで、次の情報を入力します。

    パラメーター
    入力のエイリアス 入力の一意のエイリアスを入力します。 たとえば、「 PowerBIVisualizationInput 」のように入力します。
    サブスクリプション このチュートリアルに使用している Azure サブスクリプションを選択します。
    IoT Hub このチュートリアルで使用している IoT ハブを選択します。
    コンシューマー グループ 以前に作成したコンシューマー グループを選びます。
    共有アクセス ポリシー名 Stream Analytics ジョブで IoT ハブに使用する共有アクセス ポリシーの名前を選択します。 このチュートリアルでは、service を選択できます。 service ポリシーは、新しい IoT ハブ上で既定で作成され、IoT ハブによって公開されるクライアント側エンドポイント上で送受信するためのアクセス許可を付与します。 詳細については、「アクセス制御とアクセス許可」を参照してください。
    共有アクセス ポリシー キー このフィールドは、共有アクセス ポリシー名の選択内容に基づいて自動的に入力されます。
    エンドポイント [メッセージング] を選びます。

    他のすべてのフィールドは既定値のままにします。

  5. [保存] を選択します。

Stream Analytics ジョブへの出力の追加

  1. ナビゲーション メニューの [ジョブ シミュレーション] セクションから [出力] を選択します。

  2. [出力の追加] を選択し、ドロップダウン リストから [Power BI] を選択します。

    [入力の追加] メニューから Power BI を選択していることを示すスクリーンショット。

  3. Power BI にサインインした後、次の情報を入力して Power BI 出力を作成します。

    パラメーター
    出力エイリアス 出力の一意のエイリアス。 たとえば、「 PowerBIVisualizationOutput 」のように入力します。
    グループ ワークスペース ターゲットのグループ ワークスペースを選択します。
    認証モード 認証にマネージド ID を使用するための適切なアクセス許可がない場合、ポータルから警告が表示されます。 その場合は、代わりに [ユーザー トークン] を選択します。
    データセット名 データセットの名前を入力します。
    [テーブル名] テーブルの名前を入力します。
  4. [承認] を選択して、自分の Power BI アカウントにサインインします。

  5. [保存] を選択します。

Stream Analytics ジョブのクエリの構成

  1. ナビゲーション メニューの [ジョブ シミュレーション] セクションから [クエリ] を選択します。

  2. クエリ エディターで、[YourOutputAlias] をジョブの出力別名に置き換えます。

  3. [YourInputAlias] をジョブの入力エイリアスに置き換えます。

  4. クエリの最後の行として、次の WHERE 句を追加します。 この行により、temperature プロパティを持つメッセージだけが Power BI に転送されます。

    WHERE temperature IS NOT NULL
    
  5. クエリは次のスクリーンショットのようになります。 [クエリの保存] を選択します。

    Stream Analytics ジョブへのクエリの追加を示すスクリーンショット。

Stream Analytics ジョブの実行

  1. Stream Analytics ジョブで、[概要] を選択します。
  2. 次に、[スタート]>[現在]>[スタート] を選択します。 ジョブが正常に開始されると、ジョブの状態が [停止済み] から [実行中] に変わります。

データを視覚化する Power BI レポートの作成と公開

次の手順では、Power BI サービスを使用してレポートの作成と公開を行う方法を示しています。

  1. IoT デバイスが実行され、温度データが IoT ハブに送信されていることを確認します。

  2. Power BI アカウントにサインインします。

  3. サイド メニューから [ワークスペース] を選択し、Stream Analytics ジョブ出力で選択したグループ ワークスペースを選択します。

  4. ワークスペース ビューで、Stream Analytics ジョブの出力を作成したときに指定したデータセットが表示されます。

  5. 作成したデータセットをポイントし、 [その他のオプション] メニュー (データセット名の右側にある 3 つのドット) を選択して、 [レポートの作成] を選択します。

    Microsoft Power BI レポートの作成を示すスクリーンショット。

  6. 時間の経過に伴う温度の変化を示す折れ線グラフを作成します。

    1. レポート作成ページの [視覚化] ウィンドウで、折れ線グラフのアイコンを選択して折れ線グラフを追加します。 グラフの辺と角にあるガイドを使用して、サイズと位置を調整します。

    2. [フィールド] ウィンドウで、Stream Analytics ジョブの出力を作成したときに指定したテーブルを展開します。

    3. EventEnqueuedUtcTime を、[視覚化] ウィンドウの [X 軸] にドラッグします。

    4. temperature[Y 軸] にドラッグします。

      折れ線グラフが作成されます。 x 軸は日付と時刻 (UTC タイム ゾーン) を示し、 y 軸はセンサーから取得した温度を示します。

      Microsoft Power BI レポートに温度の折れ線グラフを追加する

    Note

    テレメトリ データの送信に使用するデバイスまたはシミュレートされたデバイスによっては、フィールドの一覧が若干異なる場合があります。

  7. [ファイル]>[保存] を選択してレポートを保存します。 メッセージが表示されたら、レポートの名前を入力します。

  8. 引き続きレポート ペインで、 [ファイル]>[Embed report](レポートを埋め込む)>[Web サイトまたはポータル] を選択します。

    Note

    埋め込みコードを作成するには管理者に問い合わせることを求める通知が表示された場合は、管理者への連絡が必要である可能性があります。 この手順を完了する前に、埋め込みコードの作成を有効にする必要があります。

    管理者への問い合わせを求める通知を示すスクリーンショット。

  9. 他のユーザーと共有できるレポート アクセス用のレポート リンクと、ブログまたは Web サイトにレポートを組み込むために使用できるコード スニペットが表示されます。 [安全な埋め込みコード] ウィンドウのリンクをコピーし、ウィンドウを閉じます。

  10. Web ブラウザーを開き、アドレス バーにリンクを貼り付けて、ブラウザーでレポートを表示します。

Microsoft は Power BI のモバイル アプリも提供しています。これを使用すると、モバイル デバイスで Power BI のダッシュボードとレポートを表示して操作できます。

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

このチュートリアルでは、Power BI 内で Stream Analytics ジョブおよびデータセットを作成しました。

他のチュートリアルを終える予定の場合は、リソース グループと IoT ハブを保持しておけば、後でそれらを再利用できます。

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

Stream Analytics ジョブは、IoT ハブと同じリソース グループに存在する必要があります。 IoT ハブや作成した他のリソースが不要になった場合は、Azure portal でリソース グループ全体を削除できます。 または、個々のリソースを削除することもできます。

  1. Azure Portalで、リソース グループに移動します。
  2. グループでリソースを確認します。 すべて削除する場合は、[リソース グループの削除] を選択します。 個々のリソースを削除する場合は、リソースを右クリックし、コンテキスト メニューから [削除] を選択し、プロンプトに従います。

リソース グループとそのすべてのリソースを削除するには、az group delete コマンドを使用することもできます。

az group delete --name {your resource group}

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

Power BI 内でデータセット PowerBiVisualizationDataSet を作成しました。 データセットと、作成した関連レポートは、Power BI サービスから削除できます。

  1. Power BI アカウントにサインインします。
  2. [ワークスペース] を選択し、データセットを含むワークスペースの名前を選択します。
  3. PowerBiVisualizationDataSet データセットにカーソルを合わせ、表示される 3 つの水平ドットを選択して、[その他のオプション] メニューを開きます。
  4. [削除] を選択し、プロンプトに従います。 データセットを削除すると、レポートも削除されます。

次のステップ

このチュートリアルでは、Power BI を使用して Azure IoT ハブからのリアルタイム センサー データを視覚化する方法について説明しました。

Azure IoT Hub からのデータを視覚化する別の方法については、次のチュートリアルを参照してください。