Power BI のリアルタイム ストリーミング

Power BI のリアルタイム ストリーミングを使用すると、リアルタイムでデータをストリーミングし、ダッシュボードを更新できます。 Power BI で作成された任意の視覚化やダッシュボードで、リアルタイムのデータや視覚化を表示し、更新できます。 ストリーミング データのデバイスおよびソースとしては、工場のセンサー、ソーシャル メディア ソース、サービス使用状況メトリック、またはその他の多くの時間依存データのコレクターや転送元が考えられます。

この記事では、Power BI でリアルタイム ストリーミング セマンティック モデルを設定して使用する方法について説明します。

Screenshot of the Environmental sensors dashboard, showing the results of the data in real-time.

リアルタイム セマンティック モデルの種類

最初に、タイル (およびダッシュボード) に表示されるように設計されたリアルタイム セマンティック モデルの種類と、それらのセマンティック モデルの違いについて理解しておくことが重要です。

リアルタイム ダッシュボードに表示されるように設計されているリアルタイム セマンティック モデルは、次の 3 種類です。

  • プッシュ セマンティック モデル
  • ストリーミング セマンティック モデル
  • PubNub ストリーミング セマンティック モデル

このセクションでは、これらのセマンティック モデル相互の違いについて説明します。 以降のセクションでは、これらの各セマンティック モデルにデータをプッシュする方法について説明します。

プッシュ セマンティック モデル

プッシュ セマンティック モデルの場合、Power BI サービスにデータをプッシュします。 セマンティック モデルを作成すると、Power BI サービスが、データを格納するための新しいデータベースをサービス内に自動的に作成します。

基になるデータベースがあり、受信したデータが保存されるため、そのデータを使ったレポートを作成できます。 これらのレポートとそのビジュアルは、他のレポート ビジュアルと同じです。 Power BI ビジュアル、データ アラート、ピン留めされたダッシュボード タイルなど、Power BI のすべてのレポート作成機能を使用できます。

プッシュ セマンティック モデルを使用してレポートを作成したら、任意のレポート ビジュアルをダッシュボードにピン留めできます。 ダッシュボード上では、データが更新されるたびにビジュアルにリアルタイムで反映されます。 Power BI サービス内では、新しいデータが受信されるたびに、ダッシュボードがタイルの更新をトリガーします。

プッシュ セマンティック モデルからのピン留めされたタイルについて、次の 2 つの考慮事項に注目してください。

  • [ライブをピン留めする] オプションを使用してレポート全体をピン留めすると、データは自動的に更新されません。
  • ビジュアルがダッシュボードにピン留めされたら、Q&A を使用して、自然言語でプッシュ セマンティック モデルに関する質問をすることができます。 Q&A クエリを実行したら、結果として生成されたビジュアルをダッシュボードに再びピン留めすると、そのビジュアルもリアルタイムで更新されます。

ストリーミング セマンティック モデル

ストリーミング セマンティック モデルの場合も、データは Power BI サービスにプッシュされます。ただし、重要な相違点があります。それは、Power BI がデータを一時的なキャッシュ (すぐに有効期限が切れる) に格納するだけであるということです。 一時的なキャッシュは、1 時間の時間枠を持つ折れ線グラフなど、履歴が一時的なものであるビジュアルを表示する場合にのみ使用されます。

ストリーミング セマンティック モデルの場合、基になるデータベースがないため、ストリームから流れ込むデータを使用してレポートのビジュアルを作成することはできません。 そのため、フィルター処理、Power BI ビジュアル、その他のレポート関数などのレポート機能は利用できません。

ストリーミング セマンティック モデルを視覚化する唯一の方法は、タイルを追加し、ストリーミング セマンティック モデルをカスタム ストリーミング データのソースとして使用することです。 ストリーミング セマンティック モデルに基づくカスタム ストリーミング タイルは、リアルタイムのデータをすばやく表示できるように最適化されます。 Power BI サービスにデータがプッシュされてからビジュアルが更新されるまでの待機時間はほとんどありません。これは、データをデータベースに入力したりデータベースから読み取ったりする必要がないからです。

実際には、データのプッシュと視覚化の間の待機時間を最小限に抑えるのが重要な状況では、ストリーミング セマンティック モデルとそれに付随するストリーミング ビジュアルを使用することをお勧めします。 また、追加の集計を行うことなく、そのまま視覚化できる形式でデータをプッシュするようにします。 そのままで視覚化できるデータの例としては、温度や事前に計算された平均値などがあります。

PubNub ストリーミング セマンティック モデル

PubNub ストリーミング セマンティック モデルの場合、Power BI Web クライアントでは PubNub SDK を使用して既存の PubNub データ ストリームが読み取られます。 Power BI サービスによってデータは格納されません。 この呼び出しは Web クライアントから直接行われるため、自分のネットワークからの承認済み送信トラフィックのみを許可している場合は、許可するリストに PubNub へのトラフィックを登録する必要があります。 手順については、PubNub への送信トラフィックの承認に関するサポート記事を参照してください。

ストリーミング セマンティック モデルと同様に、PubNub ストリーミング セマンティック モデルには基になる Power BI データベースはありません。 流れ込むデータに対してレポート ビジュアルを作成することはできず、フィルター処理や Power BI ビジュアルなどのレポート機能は使用できません。 PubNub ストリーミング セマンティック モデルの視覚化は、ダッシュボードにタイルを追加し、PubNub データ ストリームをソースとして構成することによってのみ、行うことができます。

PubNub ストリーミング セマンティック モデルに基づくタイルは、リアルタイムのデータをすばやく表示できるように最適化されます。 Power BI は PubNub データ ストリームに直接的に接続されるため、Power BI サービスにデータがプッシュされてからビジュアルが更新されるまでの待機時間はほとんどありません。

ストリーミング セマンティック モデルのマトリックス

次の表は、リアルタイム ストリーミング用の 3 種類のセマンティック モデルを示し、それらの機能と制限事項を一覧表示したものです。

機能 プッシュ ストリーム PubNub
ダッシュボード タイルはデータがプッシュされるとリアルタイムで更新される "はい。"
レポートで作成されてからダッシュボードにピン留めされたビジュアルの場合。
"はい。"
ダッシュボードに直接追加するカスタム ストリーミング タイルの場合。
"はい。"
ダッシュボードに直接追加するカスタム ストリーミング タイルの場合。
滑らかなアニメーションを使用してダッシュボード タイルが更新される いいえ。 "はい。" "はい。"
データは履歴分析のために Power BI に永続的に格納される "はい。" いいえ。
データはビジュアルをレンダリングするために一時的に 1 時間格納される。
いいえ。
データに基づいて Power BI レポートを作成する "はい。" いいえ。 いいえ。
データ インジェストの最大レート 要求数 1
16 MB/要求
要求数 5
15 KB/要求
N/A
データは Power BI にプッシュされていません。
データ スループットの制限 1,000,000 行/時間 なし。 N/A
データは Power BI にプッシュされていません。

セマンティック モデルにデータをプッシュする

このセクションでは、リアルタイム ストリーミングで使用できる 3 種類のリアルタイム セマンティック モデルに、データを作成してプッシュする方法について説明します。

次の方法を使用してセマンティック モデルにデータをプッシュできます。

  • Power BI REST API
  • Power BI ストリーミング セマンティック モデルの UI
  • Azure Stream Analytics

Power BI REST API を使用してデータをプッシュする

Power BI REST API を使用して、プッシュ セマンティック モデルやストリーミング セマンティック モデルを作成し、データを送信することができます。 Power BI REST API を使用してセマンティック モデルを作成する場合は、defaultMode フラグによって、セマンティック モデルをプッシュまたはストリーミングのいずれにするかを指定します。

defaultMode フラグが設定されていない場合、セマンティック モデルは既定でプッシュ セマンティック モデルになります。 defaultMode 値が pushStreaming に設定されている場合、セマンティック モデルにはプッシュ セマンティック モデルとストリーミング セマンティック モデルの両方があり、両方のセマンティック モデルの種類の利点が提供されます。

Note

defaultMode フラグが pushStreaming に設定されたセマンティック モデルを使用すると、要求のサイズがストリーミング セマンティック モデルの 15 KB サイズ制限を超えているが、プッシュ セマンティック モデルの 16 MB サイズ制限内に収まっている場合、要求は成功し、プッシュ セマンティック モデル内でデータが更新されます。 ただし、ストリーミング タイルは一時的に失敗します。

セマンティック モデルが作成されたら、REST API の PostRows を使用してデータをプッシュできます。 REST API に対するすべての要求は、Microsoft Entra ID OAuth を使用してセキュリティが保護されます。

ストリーミング セマンティック モデルの UI を使用してデータをプッシュする

Power BI サービスでは、次のスクリーンショットに示すように API による方法を選択してセマンティック モデルを作成できます。

Screenshot of the New streaming semantic model choices, showing the API selection.

新しいストリーミング セマンティック モデルを作成するときに、次のスクリーンショットに示すように [履歴データの解析] を有効にすることができます。 この選択は大きな影響を与えます。

Screenshot of the New streaming semantic model, showing Historic data analysis enabled.

[履歴データの解析] が無効になっている場合 (既定では無効です)、前述したようにストリーミング セマンティック モデルを作成します。 [履歴データの解析] が有効になっている場合、作成するセマンティック モデルは、ストリーミング セマンティック モデルとプッシュ セマンティック モデルを併せ持つものとなります。 この設定は、Power BI REST API で、defaultModepushStreaming に設定してセマンティック モデルを作成する方法 (前記参照) と同じです。

Note

Power BI サービス UI を使用して作成されたストリーミング セマンティック モデルには、Microsoft Entra 認証は必要ありません。 このようなセマンティック モデルでは、セマンティック モデルの所有者に rowkey 付きの URL が送信されます。これにより、Microsoft Entra ID OAuth ベアラー トークンを使用することなく、セマンティック モデルへのデータのプッシュを求める要求者が承認されます。 ただし、Microsoft Entra ID による方法を使用してセマンティック モデルにデータをプッシュすることもできます。

Azure Stream Analytics を使用してデータをプッシュする

Azure Stream Analytics 内に Power BI を出力として追加し、それらのデータ ストリームを Power BI サービスでリアルタイムで視覚化することができます。 このセクションでは、そのプロセスの技術的な詳細について説明します。

Azure Stream Analytics では、Power BI REST API を使用して、defaultModepushStreaming に設定して Power BI への出力データ ストリームを作成します。 結果のセマンティック モデルにはプッシュとストリーミングの両方を使用できます。 セマンティック モデルを作成すると、Azure Stream Analytics で retentionPolicy フラグが basicFIFO に設定されます。 この設定の場合、プッシュ セマンティック モデルをサポートしているデータベースには 200,000 行が格納されます。これらの行は先入れ先出し (FIFO) 方式で削除されます。

重要

Azure Stream Analytics クエリによって、Power BI への出力が非常に高速で、たとえば 1 秒あたり 1 回または 2 回生成される場合、Azure Stream Analytics は出力を単一の要求にバッチ処理するようになります。 このバッチ処理により、要求サイズがストリーミング タイルの制限を超え、ストリーミング タイルのレンダリングが失敗する場合があります。 この場合のベスト プラクティスは、Power BI へのデータ出力の速度を遅くすることです。 たとえば、毎秒の最大値ではなく、10 秒間での最大値を要求します。

Power BI でリアルタイム ストリーミング セマンティック モデルを設定する

リアルタイム ストリーミングを開始するには、ストリーミング データを Power BI で利用する次の方法のうちの 1 つを選択します。

  • ストリーミング データから作成される "タイル" とビジュアル
  • Power BI の残るストリーミング データから作成されるセマンティック モデル

いずれを選択した場合も、Power BI でストリーミング データを設定する必要があります。 Power BI でリアルタイム ストリーミング セマンティック モデルを機能させるためには、次の手順を実行します。

  1. 既存のダッシュボードまたは新しいダッシュボードで、[タイルを追加] を選択します。

  2. [タイルを追加] ページで、[カスタム ストリーミング データ] を選択し、[次へ] を選択します。

    Screenshot of the Add a tile page, showing the Custom Streaming Data selection.

  3. [カスタム ストリーミング データ タイルの追加] ページでは、既存のセマンティック モデルを選択するか、ストリーミング セマンティック モデルを既に作成している場合は [セマンティック モデルの管理] を選択してインポートします。 ストリーミング データをまだ設定していない場合は、[ストリーミング セマンティック モデルの追加] を選択して開始できます。

    Screenshot of the dashboard, showing the Add streaming semantic model link in the Add a custom streaming data tile.

  4. [新しいストリーミング セマンティック モデル] ページで、[API][Azure Stream]、または [PubNub] を選択し、[次へ] を選択します。

    Screenshot of the New streaming semantic model choices, showing API, Azure Stream, and PubNub options.

ストリーミング セマンティック モデルの作成

Power BI で利用および視覚化できるリアルタイム ストリーミング データ フィードの作成方法は 3 通りあります。

  • リアルタイム ストリーミング エンドポイントを利用する Power BI REST API
  • Azure Stream
  • PubNub

このセクションでは、Power BI REST API と PubNub のオプションについて説明し、ストリーミング データ ソースからストリーミング タイルまたはセマンティック モデルを作成する方法を示します。 その後、セマンティック モデルを使用してレポートを作成できます。 Azure Stream オプションの詳細については、「Azure Stream Analytics からの Power BI 出力」を参照してください。

Power BI REST API を使用する

Power BI REST API を使用すると、開発者にとってリアルタイム ストリーミングが簡単になります。 [新しいストリーミング セマンティック モデル] 画面で [API] を選択し、[次へ] を選択すると、Power BI からエンドポイントへの接続と使用を有効にするエントリを指定できます。 API の詳細については、「Power BI REST API を使用する」を参照してください。

Screenshot of the New streaming semantic model dialog, showing the Power BI REST API entries for a connection.

このデータ ストリームから送信されるデータを Power BI に格納して、収集されたデータに対してレポート作成と分析を実行できるようにする場合は、[履歴データの解析] を有効にします。

データ ストリームを正常に作成すると、REST API URL エンドポイントが与えられます。 アプリケーションから POST 要求を使用してストリーミング データを Power BI セマンティック モデルにプッシュすることで、エンドポイントを呼び出すことができます。 POST 要求において、要求本文が Power BI ユーザー インターフェイスで提供されたサンプル JSON と一致していることを確認します。 たとえば、配列で JSON オブジェクトをラップします。

注意事項

Power BI サービス UI で作成したセマンティック モデルをストリーミングする場合、セマンティック モデルの所有者は、リソース キーが含まれる URL を受け取ります。 このキーにより、Microsoft Entra ID OAuth ベアラー トークンを使用することなく、要求元はセマンティック モデルへのデータのプッシュを承認されます。 この種類のセマンティック モデルとメソッドを操作するときは、URL に秘密鍵が含まれることの意味に注意してください。

PubNub を使用する

PubNub ストリーミングと Power BI を統合すると、低遅延の PubNub データ ストリームを作成して Power BI で使用できます。 [新しいストリーミング セマンティック モデル] 画面で [PubNub] を選択し、[次へ] を選択すると、次の画面が表示されます。

Screenshot of the New streaming semantic model dialog, showing the PubNub entries for connection.

重要

PubNub Access Manager (PAM) の認証キーを使って、PubNub チャネルを保護することができます。 このキーは、ダッシュボードにアクセスできるすべてのユーザーと共有されます。 PubNub アクセス制御の詳細については、「アクセスの管理」を参照してください。

多くの場合、PubNub データ ストリームは大量であり、元の形式ではストレージや履歴の解析に適しているとは限りません。 PubNub データの履歴の解析に Power BI を使用するには、生の PubNub ストリームを集計し、たとえば Azure Stream Analytics を使用して Power BI に送信する必要があります。

Power BI におけるリアルタイム ストリーミングの例

Power BI におけるリアルタイム ストリーミングの動作は、次の例のようになります。 このサンプルでは、PubNub で一般公開されているストリームを使用しています。 この例を通して見ることで、自分にとってのリアルタイム ストリーミングの価値がわかります。

  1. Power BI サービスで、新しいダッシュボードを選択または作成します。 画面の上部にある [編集]>[タイルの追加] を選択します。

  2. [タイルの追加] 画面で、[カスタム ストリーミング データ] を選択し、[次へ] を選択します。

    Screenshot of the dashboard, showing the Add tile with the Custom streaming data selection.

  3. [カスタム ストリーミング データ タイルの追加] ページで、[ストリーミング セマンティック モデルの追加] を選択します。

    Screenshot of the dashboard, showing the Add streaming semantic model link in the Add a custom streaming data tile.

  4. [新しいストリーミング セマンティック モデル] ページで [PubNub] を選択し、[次へ] を選択します。

  5. 次の画面で、セマンティック モデル名を入力し、以下の値を次の 2 つのフィールドに入力して、[次へ] を選択します。

    • サブキー:sub-c-99084bc5-1844-4e1c-82ca-a01b18166ca8
    • チャネル名:pubnub-sensor-network

    Screenshot of the New streaming semantic model dialog, showing how to create a Semantic model name and entries in the Sub-key and Channel name fields.

  6. 次の画面で、自動的に設定された値をそのままにして、[作成] を選択します。

    Screenshot of the New streaming semantic model dialog, showing defaults for the Semantic model name and Values from stream fields.

  7. Power BI ワークスペースに戻り、新しいダッシュボードを作成し、画面の上部にある [編集]>[タイルの追加] を選択します。

  8. [カスタム ストリーミング データ] を選択し、[次へ] を選択します。

  9. [カスタム ストリーミング データ タイルの追加] ページで、新しいストリーミング セマンティック モデルを選択し、[次へ] を選択します。

    サンプルのセマンティック モデルを使って作業してみてください。 折れ線グラフに数値フィールドを追加し、他のタイルを追加すると、次のスクリーンショットのようなリアルタイム ダッシュボードが完成します。

    Screenshot of the Environmental sensors dashboard, showing the results in real-time.

その後は独自のセマンティック モデルを作成し、ライブ データを Power BI にストリーム送信してください。

質問と回答

ここでは、Power BI のリアルタイム ストリーミングに関してよく寄せられる質問とその回答をいくつか紹介します。

プッシュまたはストリーミング セマンティック モデルでフィルターを使用できますか?

ストリーミング セマンティック モデルではフィルター処理がサポートされていません。 プッシュ セマンティック モデルの場合は、レポートの作成、レポートのフィルター処理、およびダッシュボードへのフィルター済みビジュアルのピン留めを行うことができます。 ただし、ビジュアルがダッシュボード上にある場合、ビジュアルに対するフィルターを変更する方法はありません。

ライブ レポート タイルをダッシュボードに別途ピン留めすることができ、そうするとフィルターを変更できます。 ただし、ライブ レポート タイルは、データがプッシュされてもリアルタイムでは更新されません。 ダッシュボード ページの右上にある [最新の情報に更新] アイコンを選択して、ビジュアルを手動で更新する必要があります。

ミリ秒単位の精度の DateTime フィールドを持つプッシュ セマンティック モデルにフィルターを適用する場合、等価演算子はサポートされません。 より大きい (>) や、より小さい (<) などの演算子は適切に動作します。

プッシュまたはストリーミング セマンティック モデルの最新の値を表示するにはどうすればよいですか?

ストリーミング セマンティック モデルは、最新のデータを表示するように設計されています。 種類がカードのストリーミング ビジュアルを使用すると、最新の数値を簡単に確認できます。 カード ビジュアルで DateTime または Text データ型はサポートされていません。

プッシュ セマンティック モデルについては、スキーマ内にタイムスタンプがある場合、last N フィルターを使用してレポート ビジュアルの作成を試してみることができます。

リアルタイム セマンティック モデルに対してモデリングを行うにはどうすればよいでしょうか?

データが永続的に保存されないため、ストリーミング セマンティック モデルに対するモデリングはできません。 プッシュ セマンティック モデルの場合は、セマンティック モデルの作成 REST API を使用してリレーションシップとメジャーを含むセマンティック モデルを作成したり、テーブルの更新 REST API を使用して既存のテーブルにメジャーを追加したりできます。

プッシュまたはストリーミング セマンティック モデルのすべての値をクリアするにはどうすればよいですか?

プッシュ セマンティック モデルに対して、[行の削除] REST API 呼び出しを使用できます。 ストリーミング セマンティック モデルのデータをクリアする方法はありません。ただし、1 時間が経過すると、データは自動的にクリアされます。

Power BI に対する Azure Stream Analytics 出力を設定しましたが、Power BI に表示されません。何が悪いのでしょうか?

問題のトラブルシューティングを行うには、次の手順を実行します。

  1. Azure Stream Analytics ジョブを再開します。
  2. Azure Stream Analytics で Power BI 接続を再度承認してみます。
  3. Power BI サービスで Azure Stream Analytics 出力用に指定したのと同じワークスペースをチェックしていることを確認します。
  4. INTO キーワードを使用して、Azure Stream Analytics クエリが Power BI 出力に明示的に出力されていることを確認します。
  5. Azure Stream Analytics ジョブに、送信対象のデータがあるかどうかを判断します。 セマンティック モデルは、データの転送時にのみ作成されます。
  6. Azure Stream Analytics ログを調べて、警告またはエラーが発生しているかどうかを確認します。

ページの自動更新

レポート ページ レベルでのページの自動更新を使用して、ページが使用されているときにのみアクティブになるビジュアルの更新間隔を設定できます。 ページの自動更新は、DirectQuery データ ソースでのみ使用できます。 最小更新間隔は、レポートが発行されているワークスペースの種類と、Premium ワークスペースの容量の管理者設定によって異なります。

ページの自動更新の詳細については、「Power BI でのページの自動更新」を参照してください。