Power BI 埋め込み分析のパフォーマンスを向上させるベスト プラクティス

この記事では、アプリケーションでレポート、ダッシュボード、タイルを短時間で表示するための推奨事項を紹介しています。

注意

読み込み時間は主に、レポートおよびデータ自体に関連する要素 (視覚化、データのサイズ、クエリとメジャーの複雑さなど) に依存していることに注意してください。 詳細については、Power BI の最適化ガイドに関する記事をご覧ください。

ツールと SDK パッケージを更新する

ツールと SDK パッケージを最新の状態で維持します。

埋め込みを初期化する

事前読み込み

powerbi.preload() を使用して、エンドユーザーのパフォーマンスを向上させます。 powerbi.preload() メソッドによって、後でレポートを埋め込むために使用される JavaScript、CSS ファイル、その他のアイテムがダウンロードされます。

レポートをすぐに埋め込まない場合は、powerbi.preload() を呼び出します。 たとえば、埋め込み Power BI コンテンツがホーム ページに表示されない場合は、powerbi.preload() を使って、コンテンツを埋め込むために使われるアイテムのダウンロードとキャッシュを行います。

iFrame のブートストラップ

注意

iFrame をブートストラップするには、Power BI クライアント SDK バージョン 2.9 が必要です。

powerbi.bootstrap(element, config) を使うと、すべての必須パラメーターが使用可能になる前に埋め込みを開始できます。 ブートストラップ API により、iFrame の準備と初期化が実行されます。 ブートストラップ API を使用する場合でも、同じ HTML 要素で powerbi.embed(element, config) を呼び出す必要があります。

たとえば、この機能のユースケースの 1 つは、iFrame のブートストラップと埋め込みのバックエンド呼び出しを、並行して実行することです。

ヒント

エンド ユーザーに表示される前に iFrame を生成することが可能な場合は、ブートストラップ API を使います。

レポートやその他の Power BI 項目を埋め込む場合は、埋め込みコンテナーが DOM の一部であり、表示 CSS 属性が none に設定されていないことを確認してください。これは予期しない動作を引き起こす可能性があるためです。 埋め込みコンテナーを非表示にする場合は、可視 CSS 属性の使用を検討してください。

埋め込みパラメーター

powerbi.embed(element, config) メソッドは、要素と構成のパラメーターを受け取ります。 構成パラメーターには、パフォーマンスに影響するフィールドが含まれています。

埋め込み URL

埋め込み URL を自分で生成することは避けてください。 その代わりに、レポートの取得ダッシュボードの取得タイルの取得 API を呼び出す方法で埋め込み URL を用意してください。 URL の config パラメーターは、パフォーマンス向上のために使われます。

アクセス許可

編集モードでレポートを埋め込まないのであれば、表示アクセス許可を与えます。 こうすることで、編集モードでのみ使われるコンポーネントの初期化に時間がかからなくなります。

フィルター、ブックマーク、スライサー

通常、レポート ビジュアルはデータをキャッシュすることで保存されます。 レポートでは、クエリが実行される間、キャッシュされたデータがレンダリングされます。 フィルター、ブックマーク、またはスライサーが提供されている場合、キャッシュされたデータは使われず、ビジュアル クエリが終了した後でのみビジュアルはレンダリングされます。

同じフィルター、ブックマーク、スライサーを使用してレポートを埋め込み、既に適用されているフィルター、ブックマーク、スライサーと共にレポートを保存します。 この方法でレポートを保存すると、フィルター、ブックマーク、およびスライサーを含むキャッシュされたデータを使用して表示されるため、パフォーマンスが向上します。

レポート間の切り替え

複数のレポートを同じ空間に埋め込む場合は、レポートごとに新しい iFrame を生成しないようにします。 代わりに、新しいレポートを同じ iFrame に埋め込んで、前のレポートを上書きします。 異なる構成の powerbi.embed(element, config) を使用して、新しいレポートを埋め込みます。

Note

顧客のために embed を使ってレポートを埋め込む場合 ('アプリ所有データ' シナリオとも呼ばれます)、すべてのレポートとセマンティック モデルに対するアクセス許可を持つ埋め込みトークンを使用する必要があります。 詳細については、トークン API の生成に関する記事をご覧ください。

複数の視覚エフェクト

同じレポートから複数の視覚エフェクトを埋め込む場合、各視覚エフェクトに対して新しい iFrame を生成しないでください。 1 つの iFrame を使って、指定した視覚エフェクトレポートをレンダリングします。

複数のビジュアルを 1 つの iFrame に埋め込む場合は、次の点を考慮してください:

  • Power BI では、iFrame を使ってレポートを埋め込みます。 視覚エフェクトの間にコンテンツを追加したい場合があります (たとえば、レポートにはないテキストやグラフィックなど)。 その場合は、異なる視覚エフェクトをレンダリングするために異なる iFrame が必要になることがあります。 最適なパフォーマンスを得るには、使う iFrame 数ができるだけ少なくなるように視覚エフェクトを配置してみてください。 iFrame 数を減らすには、カスタムレイアウト機能の使用を検討してください。

  • さまざまなレポートまたはさまざまなセマンティック モデルの視覚エフェクトがある場合は、セマンティック モデルを結合して新しいレポートを作成し、同じ iFrame にすべての視覚エフェクトを含めることを検討してください。

  • また、連続していない領域、または複数のセマンティック モデルのデータがある場合は、ダッシュボードを作成し、そこに視覚エフェクトをピン留めする方法もあります。 こうすることで以下の操作が可能になります。

    • 個々のタイルを連続していない iFrame に埋め込みます。 ダッシュボード タイルはレポートより軽く、読み込みも高速です。
    • ダッシュボード全体を 1 つの iFrame に埋め込みます。 こうすることで、新しいレポートを作成することなく、さまざまなレポートやセマンティック モデルの視覚エフェクトを 1 つの iFrame に配置することができます。

    ただし、ダッシュボード タイルは対話型ではないため、視覚エフェクトと同じ頻度で更新されないことに注意してください。

クエリ キャッシュ

Power BI Premium 容量または Power BI Embedded 容量を使用する組織では、クエリ キャッシュを利用して、セマンティック モデルに関連付けられたレポートを高速化できます。

Power BI でのクエリ キャッシュの詳細について参照してください

パフォーマンスの計測

パフォーマンス イベント

埋め込みのパフォーマンスを測定するには、次の 2 つのイベントを使用できます:

  1. 読み込まれたイベント: レポートが初期化されるまでの時間 (読み込みが完了すると Power BI ロゴが消えます)。
  2. レンダリング完了イベント: 実際のデータを使用して、レポートが完全にレンダリングされるまでの時間。 レポートが再度レンダリングされるたびに (フィルターの適用後など) レンダリング完了イベントが発生します。 レポートを計測するには、最初に発生したイベントで計算を行います。

使用可能な場合はキャッシュされたデータがレンダリングされますが、その他のイベントは生成されません。

イベント処理の詳細を参照してください

パフォーマンス アナライザー

レポート要素のパフォーマンスを調べるには、Power BI Desktop でパフォーマンス アナライザーを使用することができます。 パフォーマンス アナライザー を使用すると、各レポート要素のパフォーマンスを測定するログを表示および記録できます。

パフォーマンス アナライザーの詳細を参照してください

注意

常に、埋め込まれたレポートのパフォーマンスと、powerbi.com でのパフォーマンスを比較してください。 これは、パフォーマンスの問題の原因を理解するのに役立つ可能性があります。

次の手順