Power
BIを使い込んでくると必ずといっていいほど、速度問題にぶち当たります。
グラフの表示などレポート表示側の速度問題は、1ページあたりのビジュアル数を制限することに尽きるのですが、ソースデータの更新に時間がかかり出すと、このPower
Query側の問題はなかなか解決できず困っている人が多いと思います。インポートモードからDirect
Queryモードにするのはなかなかなハードルが高いですし、わたしもずっと苦労しています。
わたしは、まず、EXCELやJSON,XMLなど構造を持ったデータをソースデータにするのを諦めてCSVにすることだと思っています。使っていてこれらのタイプは便利なのですが、実感としてCSVとはかなり速度差があるように思います。
次にソースデータを読み込むときの様子を観察していると、同じソースが何度も読み込まれていることに気が付きます。この回数を減らさないといけません。これはPower
Queryの特長で、分析に利用するデータセットに必要なクエリは毎回すべて動きます。またそれぞれのクエリは独立に動くので、同じデータセットが何度も読み込まれます。これを解決するのがTable.Buffer()、List.Buffer()、Binary.Buffer()ですが、よく理解して配置しないとほとんど効果がありません。効果を発揮する場所は限定的です。
MSのドキュメントにクエリ参照について説明があり、そこでにBufferについて言及があります。
https://docs.microsoft.com/ja-jp/power-bi/guidance/power-query-referenced-queries
要するには一つ一つのクエリの処理が少ないケースではほとんどBufferは効果がないです。
なお、Power BI デスクトップの設定にキャッシュサイズの設定があります。これはPower Queryエディタのステップ実行の画面のキャッシュで、ソースデータの読み込みの速度改善にはまったく効果はないです。
0 件のコメント:
コメントを投稿