はじめに
Power BIを長く運用していると、改修や機能追加に伴ってPower Queryの処理や取り込むデータが増え、ファイル容量も大きくなっていきます。その結果、データの更新やレポートの操作に時間がかかるようになることがあります。
容量を減らすには、不要なテーブルや列の整理が必要です。しかし、長く運用してきたレポートほど、ビジュアルやDAX、ほかのクエリとの関係が複雑になっており、安全に削除するのは簡単ではありません。
そこで今回着目したのが、Power Queryの中間テーブルです。加工途中で使用するテーブルは、Power Query内では必要でも、すべてをモデルに読み込む必要はありません。不要な読み込みを解除することで、既存の処理を維持しながら容量を削減できます。
この記事では、中間テーブルの読み込み設定を中心に、実際にモデル容量を約半分まで削減できた見直し方法をご紹介します。
Power BIの容量を削減する3つの方法
今回、モデル容量を削減するために、次の3点を見直しました。
- Power Queryの中間テーブル
- 未使用の列やテーブル
- 「自動の日付/時刻」の設定
それぞれ、実際に行った対応と注意点をご紹介します。
① Power Queryの中間テーブルを見直す
今回、最も効果が大きかったのは、Power Queryの中間テーブルをモデルに読み込まないようにすることでした。
Power Queryでは、元データの取得から、必要なデータの絞り込み、別のデータとの結合、レポートで使用するテーブルの作成まで、複数のクエリを使って段階的にデータを加工することがあります。
このように処理を分けることで、データ加工の流れが分かりやすくなり、管理もしやすくなります。一方で、加工途中の中間テーブルまでモデルに読み込まれていると、その分だけ容量を使用してしまいます。
そこで見直したいのが、後続のクエリからは参照されているものの、レポートでは直接使用されていない中間テーブルです。
このような中間テーブルは、クエリ自体を削除せず、モデルへの読み込みだけを解除できます。読み込みを解除しても、後続のクエリからは引き続き参照できるため、データ加工の流れを維持したまま、モデルの容量を削減できます。
Microsoft Learnでも、ほかのクエリとのデータ統合を目的としたクエリは、モデルへの読み込みを無効にすることが推奨されています。
ただし、設定を変更する前に、対象のテーブルがビジュアルやDAXのメジャー、計算列、リレーションなどで使用されていないか確認する必要があります。
後続のPower Queryからのみ参照されていることが確認できれば、読み込みを解除できます。
設定方法も簡単です。Power Queryエディターで対象のクエリを右クリックし、**「読み込みを有効にする」**のチェックを外すだけです。
この方法であれば、必要なデータ加工の処理を残しながら、モデルに保持するデータを減らすことができます。
参考:インポート モデリングのデータ削減手法|Microsoft Learn
参考:Power BIでのクエリ更新の管理|Microsoft Learn
② 未使用の列やテーブルを削除する
未使用の列やテーブルを削除することは、Power BIの容量を減らす代表的な方法です。不要なデータを読み込まないことで、モデル容量を削減できます。
シンプルなモデルであれば、不要な列やテーブルを見つけるのはそれほど難しくありません。しかし、改修を重ねて複雑になったモデルでは、本当に使われていないかを判断することが難しくなります。
ビジュアルやリレーションに表示されていなくても、DAXやPower Queryの処理から参照されている場合があるためです。特にDAXでは、'テーブル名'[列名]と記述されている場合だけでなく、計算列の中で[列名]とだけ記述されていることもあります。そのため、列やテーブルを削除する際は、事前にバックアップを取得し、関連するメジャーや計算列のDAXも控えておくことをおすすめします。
また、一度に大量に削除すると、不具合が発生した際に原因を特定しにくくなります。少しずつ変更しながら、レポートへの影響を確認する方が安全です。
参考:インポート モデリングのデータ削減手法|Microsoft Learn
③ 「自動の日付/時刻」を見直す
最後に、「自動の日付/時刻」の設定も確認しました。
Power BIでは、この設定が有効になっていると、対象となる日付列ごとに非表示の日付テーブルが自動的に作成されます。日付型の列が多いモデルでは、こうした日付テーブルも容量が増える原因の一つになります。
そのため、自動生成される日付階層を使用していない場合は、設定をオフにすることで容量を削減できる可能性があります。
設定方法は、Power BI Desktopの「ファイル」から「オプションと設定」→「オプション」を開き、「現在のファイル」の「データの読み込み」にある「自動の日付/時刻」のチェックを外します。
ただし、自動生成された日付階層をビジュアルで使用している場合、設定をオフにすると表示に影響する可能性があります。そのため、既存のレポートで自動の日付階層が使用されていないことを確認してから変更することが重要です。
参考:Power BI Desktopの日付と時刻の自動ガイダンス|Microsoft Learn
まとめ
今回の対応では、特に次の3点を確認しました。
- 中間テーブルがモデルに読み込まれていないか
- 使われていない列やテーブルが残っていないか
- 不要な「自動の日付/時刻」が有効になっていないか
中でも、最も効果が大きかったのは、Power Queryの中間テーブルの読み込み解除です。
Power BIは、作って終わりではありません。改修やデータ追加を重ねるうちに、Power Queryの処理やテーブルが増え、モデル容量も大きくなっていきます。しかし、日々の対応に追われ、過去に作った中間テーブルや不要な列までは、なかなか見直せないものです。
容量やパフォーマンスが気になる場合は、まず、加工にしか使っていない中間テーブルがモデルに読み込まれていないか、是非確認してみてください。
