はじめに
本記事は Microsoft Power BI Advent Calendar 2024 の初日の記事です。
まずスタースキーマ
Power BIの推奨データモデル、スタースキーマについては以下記事が参考になります。まずはこちらを読んでみてください。最近記事が更新され、図・内容ともによりわかりやすくなりました。
Factテーブルはメジャーだけにすべし
データモデルがスタースキーマになっているという前提で、以下のベストプラクティスについて考えてみましょう。
Factテーブルはメジャーだけにすべし
なぜなのか。
このベストプラクティスがなぜ必要なのかを考えていきましょう。
そもそもメジャーだけってどういうこと?🤔
メジャー以外の列をすべて非表示にしてしまうってことです。
すべて非表示にすると、テーブルのアイコンも変わります。
通常はこうですよね。
メジャーを作成したあと、他の列を非表示にすると、こうなります。
データモデルを確認すると、メジャー以外の列が非表示になっているのがわかります。
1. 暗黙のメジャーをつくることができてしまう😇
まず一つ目は、暗黙のメジャーが勝手につくられないように…です。
2023年のアドベントカレンダーでは、暗黙のメジャーについて記事を書きました。
暗黙のメジャーというのは、明示的にメジャーが書かれていない状態をいいます。もう少し具体的に書くと、Power BIではデータをビジュアルに「ひょいっ」っとドラッグアンドドロップすることで簡単な集計ができてしまいます。
その際も、裏側ではDAXが記述されており、当然データモデルに問い合わせがされています。
明示的にメジャーを書いていない、けれども、メジャーが書かれている。これを暗黙のメジャー(Implicit measures) といいます。
なぜ暗黙のメジャーは避けるべきなのか は、以下記事で解説しています。
以下のような理由について書いてあります。
- Excelで使用できない
- 表現できないビジネスロジックがある
- 再利用できない
2. Auto-Existに遭遇する可能性がある😎
2つ目の理由はAuto-Exist への遭遇です。
Power BI マニアのみなさんは知っているかもしれませんが、2024年10月のアップデートでAuto-Exist に関することがありました。Auto-Exist に遭遇したときの、フィルターの動作を任意にコントロールする機能のプレビューが開始しました。
Auto-Exist とは
Auto-Exist 自体の説明は、上記ブログやPower BI Weekly Newsでも詳しく解説されています。
▼ 解説しているPower BI Weekly News該当回 ▼
Power BI Weekly News 毎週日曜日 20時~
https://www.youtube.com/playlist?list=PLFWe9YKLKFFOkabzBm2kXUY8lQX9Z9wd1
清水さん、石川さん、須藤(私)で配信しています。
@yugoes1021 @ishiayaya @akihiro_suto
動画やドキュメントを確認すればわかると思いますが、Auto-Exist は発生したこと自体がわかりにくく、もしかしたら現時点でも気づかずに運用されている環境もあるかもしれないです。
Auto-Exist の回避方法
Auto-Exist は大福帳やFlat-Wide-Tableと呼ばれる1テーブルのデータで、FactとDimensionが分離されていないデータモデルのときにおこります。
つまり、データモデルをスタースキーマにしておけばそもそも起こりにくいです。
ただし、スタースキーマにしていたとしても、Factテーブルの項目をFilterとして利用した場合には同様に起こりうる問題です。
この辺の項目をFilterにしちゃったら、Auto-Exist が起こるんです。つまり、正しい、集計値がビジュアルで表示されない可能性があります。
だから…
ビジュアルを作る人が、意図せずFactテーブルの項目でフィルターを作成してしまわないように、メジャー以外の項目をすべて非表示にしちゃいましょうということになります。
まとめ
なぜFactテーブルのメジャー以外の項目を非表示にしなければいけないか、伝わりましたでしょうか。盲目的にベストプラクティスに従うのももちろん最初はOKです。徐々に、なぜそのベストプラクティスが生まれたのか、言われるようになったのかを理解できるようになってくると、Power BI Lifeがより楽しくなると思います🎉
Happy Power BI😊