Import、DirectQuery、Direct Lake の比較: 適切な Power BI ストレージ モードの選び方
By Mirko Peters ·
Power BI の Import、DirectQuery、Direct Lake のストレージ モードを比較し、レポートのパフォーマンス、データの鮮度、インフラストラクチャ コストを最適化する方法を解説します。
Automatically translated with AI from the original post. Read the English original

適切な Power BI ストレージ モードを選ぶことは、レポートの読み込み速度と、基になる数値の鮮度を左右します。Import、DirectQuery、Direct Lake の運用上の違い、コストへの影響、データ規模の上限を理解することで、開発者はビジネス インテリジェンスの正確性を損なうことなくパフォーマンスを最適化できます。
重要なポイント
- ストレージ モードはテーブル単位で設定されるため、開発者は異なるデータ取得戦略を組み合わせた柔軟なコンポジット モデルを作成できます。
- Import モードはメモリ圧縮により高いパフォーマンスを発揮しますが、データの更新はスケジュールされた更新に依存します。
- DirectQuery は、ユーザーの操作ごとにソース データベースへ直接クエリを送信するため、ライブかつリアルタイムのデータアクセスを提供します。ただし、ソースのパフォーマンスの制約を受けます。
- Direct Lake は、データの完全なコピーを作成せずに OneLake から Delta テーブルを直接読み取ることで、Microsoft Fabric 内で高速なパフォーマンスを実現します。
- エンタープライズ向けのセマンティック モデルを設計する際は、クエリのパフォーマンス、データの鮮度、ライセンス コストのバランスを取ることが不可欠です。
Power BI ストレージ モードの理解
Power BI のすべてのセマンティック モデルには、データを取得して格納する方法が必要です。ストレージ モードの設定により、データがモデルに物理的にコピーされるのか、外部データベースからオンデマンドで取得されるのか、または分析用ファイル ストレージから直接読み取られるのかが決まります。ストレージ モードはセマンティック モデル全体ではなくテーブル単位で設定されるため、レポート設計者は事業部門ごとの要件に合わせてアプローチを組み合わせられます。
ストレージの選択を誤ると、ダッシュボードの読み込みが遅くなったり、データの更新が失敗したり、メモリ消費が膨らんだりしがちです。適切なアーキテクチャ上の判断を行うには、データがどの程度増加するか、どのくらいの頻度で変化するか、そしてユーザーがパフォーマンスにどの程度を期待しているかを評価する必要があります。
Import モードの仕組みとトレードオフ
Import モードは、既定で最も一般的な方法であり、初心者にも選ばれがちです。Import モードを使用すると、Power BI はソース データのコピーを取得し、高い圧縮率(10:1 程度になることもあります)で圧縮して、Power BI サービス内のメモリ(RAM)に直接読み込みます。
データがすべてメモリ上に存在するため、レポートのビジュアルは非常に高速に描画されます。ユーザーは外部データベースへの接続を待つことなく、スライスやフィルターの操作を行えます。ただし、大きなトレードオフはデータの鮮度です。インポートされた数値は、最後にスケジュールされた更新時点の内容にとどまります。共有容量の Power BI では 1 日最大 8 回までデータを更新できますが、Premium 容量では 1 日最大 48 回まで可能です。分単位未満の更新が必要なビジネスでは、Import モードだけでは不十分です。
リアルタイムの要件に対応する DirectQuery
DirectQuery は、Import とは正反対のアプローチを取ります。モデルにデータをまったくコピーしません。代わりに、セマンティック モデルはメタデータ(テーブル、リレーションシップ、メジャー)のみを保持します。ユーザーがレポートのビジュアルを開いたりスライサーをクリックしたりするたびに、Power BI はその操作を基盤となるリレーショナル データベースへのライブ クエリに変換して直接送信します。
これにより、データが常にライブ状態であることが保証され、メモリ制約によるファイル サイズの上限もなくなります。ただし、DirectQuery はパフォーマンス面で大きな代償を伴います。基盤となるデータベースが遅ければ、レポートも遅くなります。さらに、DAX の計算はソース データベースがネイティブに解釈できる範囲に限られ、複数のレポート利用者による同時利用が多いと、ソース システムに過度な負荷がかかることがあります。
Direct Lake:Fabricの強み
Direct Lake は Microsoft Fabric 向けに登場したストレージモードで、Import モードの高速性と DirectQuery のリアルタイム性の間にあるギャップを埋めます。Direct Lake は OneLake(Fabric の統合分析データストア)に保存された Delta テーブルを読み取り、クエリに必要な特定の列だけをその都度メモリに読み込みます。
Direct Lake の際立った特徴は、そのリフレッシュの仕組みです。Import モードは、データ全体のコピーと再読み込みが必要ですが、Direct Lake のリフレッシュはメタデータ(Microsoft が「フレーミング」と呼ぶプロセス)だけを更新するため、数秒で完了します。夜間のデータ複製という負荷なしに、メモリ並みの性能を得られます。ただし、Direct Lake には有料の Microsoft Fabric キャパシティのサブスクリプションが必要です。無料のアップグレードではなく、エンタープライズ向けのソリューションである点に注意してください。
最適なパフォーマンスを実現するコンポジットモデルの構築
セマンティックモデル全体で単一のストレージモードを選ぶ必要はありません。1 つのモデルに異なるストレージタイプを組み合わせることで、Microsoft が「コンポジットモデル」と呼ぶ構成になります。典型的で効果の高いパターンは、製品一覧や顧客区分のような小規模で安定したディメンション テーブルを Import モードに配置して即座にフィルタリングできるようにし、トランザクションログのような大規模で急速に増加するファクト テーブルは DirectQuery または Direct Lake を使うものです。
このハイブリッド戦略により、レポート作成者は両方の長所を得られます。キャッシュされたディメンション テーブルによる快適な UI の応答性と、ソースからのリアルタイムなトランザクション データを組み合わせられます。アーキテクチャの設計段階で慎重に計画すれば、不要なインフラストラクチャのコストを避けつつ、迅速なデータ提供を維持できます。
まとめ
Import、DirectQuery、Direct Lake のどれを選ぶかは、最終的に組織の規模、予算、リアルタイムデータの要件によって決まります。ビジネスデータの更新頻度にストレージモードを合わせることで、信頼性が高く応答性に優れた分析環境を構築できます。堅牢なセマンティックモデルの設定についてさらに詳しく知りたい場合は、エピソード全編を聴いて、Microsoft クラウドに関する日々のインサイトのために、ポッドキャストを購読してください。
よくある質問
同じ Power BI モデル内で Import テーブルと DirectQuery テーブルを混在させることはできますか?
はい。Power BI はコンポジットモデルに対応しており、同じセマンティックモデル内の個々のテーブルに異なるストレージモードを設定できます。
インポートした Power BI モデルはどのくらいの頻度で更新できますか?
共有キャパシティでは、スケジュール更新を 1 日最大 8 回実行できます。Premium または Fabric キャパシティでは、1 日最大 48 回までスケジュールできます。
Direct Lake には特別なライセンスが必要ですか?
はい。Direct Lake には Microsoft Fabric キャパシティのサブスクリプションが必要です。一方、Import と DirectQuery は標準の Power BI 無償ライセンスまたは Pro ライセンスで利用できます。
DirectQuery モードでは DAX の計算はどうなりますか?
DirectQuery の DAX 数式は、基盤となるソース データベースが理解できるネイティブ クエリに変換できる必要があります。そのため、一部の複雑な関数や反復型の関数は使用が制限されます。