[最適化] リボンを使用した DirectQuery 最適化のシナリオ
この記事では、Power BI Desktop の [最適化] リボンを使用してエクスペリエンスを効率化する方法を示す、DirectQuery レポート作成シナリオをいくつか紹介します。 [最適化] リボンで、[ビジュアルの一時停止] と [ビジュアルの更新] 機能を使用してビジュアルを更新するタイミングを制御したり、[最適化プリセット] を使用して定義済みの設定をすばやく適用したりできます。また、パフォーマンス アナライザーを簡単に起動して、DirectQuery によって生成される SQL クエリなどのクエリ自体をさらに詳しく表示したりできます。 また、データをプレビューまたは検証するためのクエリを実行 "せずに"、モデル ビューの [プロパティ] ペインでリレーションシップを直接編集する方法についても説明します。
これらのシナリオを実行する前に、最初に「Power BI Desktop の最適化リボン」を確認してください。これらの魅力的な機能の概要が紹介されています。
クエリを実行 "せずに" DirectQuery レポートを変更する
まず、変更を加えるたびにデータ ソースにクエリが送信されないようにビジュアルを一時停止することで、レポート作成のパフォーマンスを向上させる方法を見てみましょう。 [最適化] リボンで、[ビジュアルの一時停止] を選択します。 一時停止すると、ビジュアルはクエリを送信する必要がない場合にのみ更新されます。 ビジュアルからクエリを送信する必要がある場合、ビジュアルは保留中の状態になります。 保留中の場合でも、ビジュアルには変更が導入される前の外観が引き続き表示されますが、これはコンテキストのためだけであり、ヒントも無効になるため、やはりクエリは送信されません。 フィールド ウェルに複数の列またはメジャーを追加または削除したり、フィールドの順序を変更したり、さらに、[フィルター] ペインを使用してビジュアルをフィルター処理したりできるようになりました。このとき、クエリは送信されません。
そのようなすべての変更が完了したら、ビジュアルの [更新] を選択してクエリを 1 回だけ送信するか、バナーまたはリボンの [更新] を選択してページ上のすべてのビジュアルのクエリを 1 回だけ送信するか、バナーの [ビジュアル クエリの再開] または [最適化] リボンの [一時停止中のビジュアル] を選択して、すべてのビジュアルからクエリを送信して今すぐ更新し、他の変更でのクエリを引き続き送信します。
ビジュアルの一時停止のワークフローを詳しく見てみましょう。
ヒント: このページ上の画像は細部を確認しにくい場合があります。 ブラウザーのズーム機能を使用してください。
次のアニメーションは、ページ上のビジュアルのヒントのうち 2 つに、Fare と Average fare per trip という 2 つのメジャーを追加し、フィールド ウェルでそれらを並べ替え、バナーからビジュアルを再開する方法を示しています。
ビジュアルを一時停止しない場合、フィールド ウェルでメジャーを追加または移動するたびに、新しいビジュアルのクエリが DirectQuery データ ソースに送信されます。 つまりビジュアルごとに 3 つのクエリであるため、この場合は "6 つ" のクエリが送信されます。 [ビジュアルの一時停止] を使用すると、メジャーを追加または移動するたびにクエリが送信されることはありません。 レポートの再開時に送信されるクエリは 2 つだけです。 この簡単なレポートの変更では、4 つの追加クエリを実行しないので時間が節約され、貴重なデータ ソース リソースが無駄になりません。
クエリを実行 "せずに" 新しいビジュアルを作成する
[最適化] リボンで、[ビジュアルの一時停止] を選択します。 次に、[視覚化] ペインから新しいマトリックス ビジュアルを追加し、新しいマトリックス ビジュアルに "Trips"、"Day of week"、"Time of the day" を追加します。 一時停止すると、マトリックス ビジュアルは "保留中" の状態になり、クエリは送信されません。 次にフィールドの順序を変更しますが、やはりクエリは送信されません。 [フィルター] ペインを開き、[年] を適用して、2013 年に絞り込みましょう。 さらに変更を加える前に、この時点でビジュアルを確認しておくと役に立ちます。 保留中のビジュアルのバナーで [最新の情報に更新] を選択するか、[選択] ペインを開き、そこでビジュアルを更新できます。 送信したクエリは 1 つだけで、そのクエリは事前にフィルター処理したため、戻り時間が短縮され、データ ソースへの影響が軽減されました。 ビジュアルに書式設定の変更を加えることができます。このような変更は、DAX クエリが必要ないため、レポートが一時停止状態でも表示されます。 ただし、背景色の書式設定の変更を追加するには、クエリが "必要" です。そのため、ビジュアルは "保留中" の状態になります。 準備ができたら、ビジュアルのクエリを更新または再開して、最終的なマトリックス ビジュアルを確認できます。
新しいビジュアルの作成時にビジュアルの一時停止を使用する
[ビジュアルの一時停止] を使用しない場合、フィールド ウェルでメジャーまたは列を追加または移動するたびに、新しいビジュアル クエリが DirectQuery データ ソースに送信されます。 つまり書式設定を開始する前のクエリが "6 つ" で、そのうち 5 つのクエリはビジュアルを 1 年にフィルター処理する前のものです。 ここで、[ビジュアルの一時停止] を使用すると、メジャーまたは列を追加または移動するたびにクエリが送信されることはありません。 ビジュアルを更新またはレポートを再開したとき、送信されるクエリは "2 つ" だけであり、それらはフィルター処理したクエリでした。 この新しいビジュアルの追加では、余分なクエリを回避して時間を節約し、貴重なデータ ソース リソースを無駄にしなかっただけでなく、より小さい、ターゲットを絞ったクエリを実行し、中断を最小限に抑えてビジュアルを書式設定しました。
ビジュアルを更新 "せずに" メジャーを作成する
前のシナリオと同様に、[最適化] リボンで [ビジュアルの一時停止] を選択して、レポートを一時停止状態にします。 通常、DirectQuery レポートでは、新しいメジャーを作成するたびに、レポート ページ上のすべてのビジュアルが更新されます。 しかし、レポートが一時停止状態の場合は、クエリを送信せずに新しいメジャーを作成できます。 代わりに、ビジュアルは保留中の状態になります。 保留中のビジュアルにメジャーを追加できます。 その後、個々のビジュアルを更新して、新しいメジャーを使用した結果を表示したり、完了したらビジュアルのクエリを再開したりできます。
新しいメジャーを作成するときにビジュアルの一時停止を使用する
[ビジュアルの一時停止] を使用しない場合、メジャーを作成するたびに、すべてのビジュアルから DirectQuery データ ソースにクエリが送信されます。 つまり、ページ上の 5 つのビジュアルからモデル変更のたびに 5 つのクエリが送信されます。 新しいメジャーを "2 つ" だけ作成し、それらのメジャーを 1 つのビジュアルに追加する場合、かなりの数のクエリになります。 [ビジュアルの一時停止] を使用すると、メジャーを作成またはビジュアルに追加するたびにクエリが送信されることはありません。 1 つのビジュアルを更新し、その後にレポートを再開したときに送信されるクエリは、6 つだけです。 これらのモデリングの変更では、クエリと、クエリからデータが返されるまでの待機時間とが大幅に削減されました。 また、データ ソースのワークロードも大幅に削減されました。
DirectQuery テーブル間のリレーションシップを編集する
Power BI Desktop のモデル ビューで 2 つの DirectQuery テーブル間のリレーションシップを編集するために、それらのテーブル間のリレーションシップ ラインを選択し、それを [プロパティ] ペインで編集できるようになりました。 テーブル、列、カーディナリティ、方向を変更することやアクティブまたは非アクティブにすることができます。また、各テーブルで他方のテーブルに存在する値が欠落していないという確信がある場合は、参照整合性を有効にすることもできます。 完了したら、[変更の適用] を選択します。 Ctrl キーを押しながら複数のリレーションシップを選択して [プロパティ] ペインで一括変更することや、Delete キーを使用して削除することもできます。
[プロパティ] ペインでリレーションシップを編集する
[プロパティ] ペインでリレーションシップを編集できない場合、リレーションシップを変更するたびに、ダイアログを開いてデータ プレビューを表示するときにクエリが送信されます。 テーブルまたは列を変更するたびに、リレーションシップのカーディナリティと方向を検証するクエリが送信されます。 ここでは最適化を使用しているため、[プロパティ] ペインでリレーションシップを編集するときにクエリは送信されず、リレーションシップは、準備が完了して [変更の適用] ボタンを選択したときにのみ検証されます。
クエリを減らす設定を適用する
[最適化] リボンの [最適化プリセット] ドロップダウンを選択し、レポートに対して [クエリを減らす] を選択すると、適用される設定を説明するダイアログが表示されます。
クロス強調表示とクロス フィルタリングは、データ ポイントを選択したときのビジュアルの相互作用のしくみです。 Power BI Desktop は既定でクロス強調表示になっています。 既定をクロス フィルタリングに変更できます。そのためには、[ファイル]>[オプションと設定]>[オプション]>[レポート設定] に移動してから、[既定のビジュアルの相互作用をクロス強調表示からクロス フィルタリングに変更する] を選択します。
最適化プリセットでは、既定のクロス強調表示とクロス フィルタリングのみがオフになるため、編集操作を使用してビジュアル レベルで行われたカスタマイズには影響しません。 ビジュアル (1) を選択して [書式] リボンを表示し、[相互作用を編集] (2) を選択すると、レポート内の他のビジュアルのオプションが表示されます (3)。 その後、ビジュアルでデータ ポイントを選択したときにそれらがどのように変化するかを決定できます。 ここでは、クロス フィルタリングまたはクロス強調表示から相互作用なしまでです。 このワークフローを見てみましょう。
[相互作用を編集] のいずれかをカスタマイズしていた場合、このカスタマイズは、既定でクロス強調表示とクロス フィルタリングを無効にする最適化プリセットでは変更されません。 ビジュアル間のカスタマイズされた [相互作用を編集] は、以前と同じように機能します。
次に、スライサーに [適用] ボタンを追加します。 このレポート内のすべてのスライサーに [適用] ボタンが追加され、ユーザーは各スライサーで複数のオプションを選択または選択解除し、[適用] ボタンを選択するまでレポート内の他のビジュアルからクエリが送信されないようにすることができます。 それでもスライサーは互いに独立しているため、[適用] ボタンを持つ 2 つのスライサーがある場合、スライサーの選択を適用するためには、それぞれの [適用] ボタンを選択する必要があります。
[フィルター] ペインに [適用] ボタンが追加されます。 [フィルター] ペイン ボタンによって、ペイン内のすべてのフィルター選択にコントロールを追加しましたが、適用ボタンは 1 つだけでした。 詳細については、「Power BI レポートでフィルターを書式設定する」の「フィルターの [適用] ボタン」を参照してください。
クエリを減らす設定を変更する
[最適化] リボンで [最適化プリセット] を選択し、[カスタマイズ] を選択して設定を変更します。 このレポートでは、スライサーは単一選択用です。複数選択では [適用] ボタンの方が便利であり、他の設定を維持し、スライサーを元に戻して [カスタマイズ] ですぐに適用できます。
スライサーをすぐに適用するように戻す
データ ソースの変更後に完全な相互作用に戻す
[最適化] リボンで、[最適化プリセット] を選択し、レポートの [対話機能] を選択します。 これらは Power BI Desktop の既定の設定であるため、[クエリを減らす] または [カスタマイズ済み] を選択して最適化プリセットを変更した場合は、これが既定値に戻す方法です。 ダイアログで設定が確認されます。
対話機能の最適化プリセットを設定します。
この場合、DirectQuery レポート シナリオを特定して呼び出していますが、他のレポート シナリオでも使用できます。
特定のビジュアルについて、それが DirectQuery を使用しているかどうかを確認できます。そのためには、パフォーマンス アナライザーを使用して [直接クエリ] の行があるかどうかを確認します。 ここでは、ビジュアルのデータを返すために DirectQuery が使用されていることがわかります。
コミュニティ
これらのシナリオでは、Power BI Desktop で [最適化] リボンと [プロパティ ウィンドウでのリレーションシップの編集] を使用して、作成エクスペリエンスを効率化する方法について説明しました。 ご自身の DirectQuery レポートを使用して、ぜひ試してみてください。
詳細な情報を参照したり、ご自身のシナリオを共有したりできます。 Power BI には、MVP、BI プロフェッショナル、および同僚がディスカッション グループ、ビデオ、ブログなどの専門知識を共有する、活気のあるコミュニティがあります。 Power BI コミュニティをチェックしてください。
あなたも投稿できます。 Microsoft Learn では、この記事のような Power BI ドキュメントはオープンソースです。 投稿方法の詳細については、「Microsoft Learn ドキュメント共同作成者ガイド」を参照してください。