【Power BI】インポートとDirect Queryの違い

【Power BI】インポートとDirect Queryの違い | Tableau-id Press -タブロイド-
power bi

こんにちは、truestarのtokuです。

今回ですが、前回のブログ「【Power BI】Power BIでtableauのLOD計算(Fixed)を再現する方法」で
一部のDAXはDirect Queryでは動作しないという話をしました。

ただ、Direct Queryとはなんぞやという方もいると思うので、今日はその説明をできればと思います。

接続方法の種類

PowerBIのデータセットへの接続方式(ストレージモード)としておおまかに分けて3つあります。

  1. インポート
  2. Direct Query
  3. ライブ接続

(デュアルやpushなどもありますが今回は除きます)

この中でも特に使用するのが

  1. インポート
  2. Direct Query

になるので今回はそこに絞って説明していきます。

ストレージモードの確認方法はデータセットにカーソルを合わせることで確認できます。

もしくはPowerBIのモデルビュー画面で該当するデータセットを選択し、
プロパティの詳細を開くことで確認可能です。

インポートとは

インポートモードとはデータソースから必要なデータをPower BI 用の形に変換し、.pbixファイルにデータを取り込みます。
インポートモードでは「ファイルにデータを保持する」=キャッシュされるため、最新のデータを閲覧するためには定期的に更新スケジュールを実行する必要があります。
Power BI Proは1日8回、Power BI Premiumだと1日48回の更新が可能のようです。

メリット

・データの加工や結合に制限がない
・一度キャッシュとしてデータを取得するため、パフォーマンス(処理速度)が速い
・使えるDAXに制約がない

デメリット

・データの鮮度は更新頻度にもよるがリアルタイムにはならない

Direct Queryとは

主にRDBと接続する際に利用できる接続方式になります。
インポートモードとは反対に、Power BI データセットにデータは保持せず、PowerBIで操作や関数の処理が行われるたびに、データソースへクエリを発行します。
そのため、常にリアルタイムでのデータ取得が可能です。

メリット

・都度クエリを投げるために、常に最新のデータアクセスが可能

デメリット

・都度クエリを発行するためパフォーマンスが悪い
→使用するデータ量や読み込まれる頻度によってはかなりパフォーマンスが低下します

・使用できるDAXに制限が出る
→DAXをSQLに変換してクエリを投げる関係で一部のDAXが使用できなくなります

・データの加工や結合も一部制限される

切り替えについて

Direct Query → インポートへの切替は可能ですが、インポート → Direct Queryへの切替はできません。
そのためDirect Query モードを使用する場合は、最初からその接続方式でつなぐ必要があります。

まとめ

いかがでしたでしょうか。
データのリアルタイムを重視しない場合は、基本インポートモードでいいのかもしれませんね。
処理速度としてもインポートモードの場合、一度PowerBIを開きデータセットを読み込むと2回目からはすべての処理が
かなり早くなるため、その点はおすすめです。

またtruestarではデータ活用に関する様々な業務を承っております。是非こちらからご相談ください。ではまた!