複合モデルを開発するタイミングを決定する
複合モデルは、複数のソース グループで構成されます。 通常、インポート ソース グループと DirectQuery ソース グループが常に存在します。
注意
一般に、インポート モードと DirectQuery ストレージ モードに伴う利点と制限が、複合モデルにも該当します。
複合モデルの利点
複合モデルの開発には、いくつかの利点があります。
複合モデルでは設計を柔軟に行うことができます。 さまざまなストレージ モードを使用するデータを統合でき、インポートされるデータとパススルー データの適切なバランスを取ることができます。 一般的に、エンタープライズ モデルでは、大規模なデータ ソースで DirectQuery テーブルを使用し、インポートされたテーブルを使用してクエリのパフォーマンスを向上させることによって利点が生じます。 このシナリオをサポートする Power BI 機能については、このユニットで後述します。
複合モデルでは、DirectQuery モデルのパフォーマンスも向上します。Power BI がインポートされたデータに対する分析クエリを成立できるようになるためです。 キャッシュされたデータのクエリは、ほとんどの場合、パススルー クエリよりも優れたパフォーマンスを発揮します。
さらに、Power BI データセットなど、リモート モデルの DirectQuery テーブルがモデルに含まれている場合は、新しい計算列とテーブルを使用してモデルを拡張できます。 その結果、コア モデルに基づく特殊なモデルが生成されます。 詳細については、「Power BI の使用シナリオ: 管理されたカスタマイズ可能なセルフサービス BI」を参照してください。
複合モデルの制限事項
複合モデルにはいくつかの制限事項があります。
ストレージ モード テーブルのインポート (または後述のデュアル) では、引き続き定期的な更新が必要です。 インポートされたデータは DirectQuery のソース データと同期しなくなる可能性があるため、定期的に更新することが重要です。
分析クエリでインポートされたデータと DirectQuery データを組み合わせる必要がある場合、Power BI はソース グループ クエリの結果を統合する必要があり、パフォーマンスに影響を与える可能性があります。 粒度の高いクエリでこの状況を回避するには、インポート集計テーブルをモデルに追加 (または自動集計を有効化) し、デュアル ストレージ モードを使用するように関連するディメンション テーブルを設定できます。 このシナリオについては、このユニットの後半で説明します。
モデルを (DirectQuery を Power BI データセットに) チェーンしたとき、上流モデルに加えられた変更のためにダウンストリーム モデルが壊れる可能性があります。 必ず最初にデータセットの影響分析を実行して、変更の影響を評価してください。
異なるソース グループのテーブル間のリレーションシップは、制限付きリレーションシップと呼ばれます。 モデル リレーションシップが制限されるのは、Power BI がリレーションシップの "一" の側を判別できないときです。 制限付きリレーションシップのために、モデル クエリと計算の評価が異なる場合があります。 詳細については、「リレーションシップの評価」を参照してください。
インポート データを使用して DirectQuery モデルのパフォーマンスを向上させる
DirectQuery モデルを開発する正当な理由がある場合は、インポート テーブルを使用する特定の Power BI 機能を使用して、いくつかの制限を軽減できます。
集計テーブルをインポートする
インポート ストレージ モードにユーザー定義集計テーブルを追加したり、自動集計を有効にしたりできます。 このようにして、Power BI は、より粒度の高いファクト クエリをキャッシュされた集計に送ります。 クエリのパフォーマンスをさらに向上させるには、関連するディメンション テーブルがデュアル ストレージ モードを使用するように設定されていることを確認します。
自動集計は Premium 機能です。 詳細については、「自動集計」を参照してください。
デュアル ストレージ モード
デュアル ストレージ モード テーブルは、インポート モードと DirectQuery ストレージ モードの両方を使用するように設定されます。 Power BI は、クエリ時に、使用する最も効率的なモードを決定します。 可能な限り、Power BI は、キャッシュされたデータを使用して分析クエリを成立させようとします。
デュアル ストレージ モード テーブルは、インポート集計テーブルで適切に機能します。 これらを使用して、Power BI は、キャッシュされたデータに対する粒度の高いクエリを完全に成立させることができます。
スライサー ビジュアルとフィルター カード リストは、多くの場合ディメンション テーブル列に基づいており、キャッシュされたデータに対してクエリされるため、より迅速にレンダリングされます。
インポート モデルからリアルタイム データを配信する
増分更新を使用してインポート テーブルを設定するとき、[Get the latest data in real-time with DirectQuery](DirectQuery を使用して最新データをリアルタイムで取得) オプションを有効にすることができます。
このオプションを有効にすると、Power BI は DirectQuery ストレージ モードを使用するテーブル パーティションを自動的に作成します。 この場合、テーブルはハイブリッド テーブルになります。つまり、古いデータを格納するためのインポート パーティションと、現在のデータ用の 1 つの DirectQuery パーティションを含みます。
Power BI がハイブリッド テーブルにクエリを実行すると、クエリは古いデータについてはキャッシュを使用し、現在のデータを取得するにはデータ ソースをパススルーします。
このオプションは、Premium ライセンスでのみ使用できます。
詳細については、「増分更新とリアルタイム データを構成する」を参照してください。