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

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

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

環境センサー ダッシュボードのスクリーンショット。データの結果がリアルタイムで表示されています。

リアルタイム データセットの種類

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

リアルタイム ダッシュボードに表示されるように設計されているリアルタイム データセットは、次の 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 に対するすべての要求は、Azure Active Directory (Azure AD) OAuth によってセキュリティが保護されます。

ストリーミング データセット UI を使用してデータをプッシュする

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

[新しいストリーミング データセット] の選択肢のスクリーンショット。API の選択肢が表示されています。

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

[新しいストリーミング データセット] のスクリーンショット。有効になった [履歴データの解析] が表示されています。

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

注意

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

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. [タイルを追加] ページで、[カスタム ストリーミング データ] を選択し、[次へ] を選択します。

    [タイルを追加] ページのスクリーンショット。[カスタム ストリーミング データ] の選択肢が表示されています。

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

    ダッシュボードのスクリーンショット。[カスタム ストリーミング データ タイルの追加] の [ストリーミング データセットの追加] リンクが表示されています。

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

    [新しいストリーミング データセット] の選択肢のスクリーンショット。API、Azure Stream、PubNub のオプションが表示されています。

ストリーミング データセットを作成する

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 を使用する」を参照してください。

[新しいストリーミング データセット] ダイアログのスクリーンショット。接続用の Power BI REST API のエントリが表示されています。

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

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

注意事項

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

PubNub を使用する

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

[新しいストリーミング データセット] ダイアログのスクリーンショット。接続用の PubNub エントリが表示されています。

重要

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. [タイルの追加] 画面で、[カスタム ストリーミング データ] を選択し、[次へ] を選択します。

    [タイルを追加] を示すダッシュボードのスクリーンショット。[カスタム ストリーミング データ] が選択されています。

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

    ダッシュボードのスクリーンショット。[カスタム ストリーミング データ タイルの追加] の [ストリーミング データセットの追加] リンクが表示されています。

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

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

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

    [新しいストリーミング データセット] ダイアログのスクリーンショット。[データセット名] と、[サブキー] と [チャネル名] の各フィールドにエントリを作成する方法が示されています。

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

    [新しいストリーミング データセット] ダイアログのスクリーンショット。ストリーム フィールドのデータセット名と値の既定値が表示されています。

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

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

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

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

    環境センサー ダッシュボードのスクリーンショット。結果がリアルタイムで表示されています。

その後は独自のデータセットを作成し、ライブ データを 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 でのページの自動更新」を参照してください。

次の手順