19
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft Power BIAdvent Calendar 2024

Day 1

[Power BI] ベストプラクティスを読み解く② ~Factテーブルはメジャーだけに~

Posted at

はじめに

本記事は Microsoft Power BI Advent Calendar 2024 の初日の記事です。

まずスタースキーマ

Power BIの推奨データモデル、スタースキーマについては以下記事が参考になります。まずはこちらを読んでみてください。最近記事が更新され、図・内容ともによりわかりやすくなりました。

image.png

Factテーブルはメジャーだけにすべし

データモデルがスタースキーマになっているという前提で、以下のベストプラクティスについて考えてみましょう。

Factテーブルはメジャーだけにすべし

なぜなのか。

このベストプラクティスがなぜ必要なのかを考えていきましょう。

そもそもメジャーだけってどういうこと?🤔

メジャー以外の列をすべて非表示にしてしまうってことです。
すべて非表示にすると、テーブルのアイコンも変わります。

通常はこうですよね。

image.png

メジャーを作成したあと、他の列を非表示にすると、こうなります。

image.png

データモデルを確認すると、メジャー以外の列が非表示になっているのがわかります。

image.png

1. 暗黙のメジャーをつくることができてしまう😇

まず一つ目は、暗黙のメジャーが勝手につくられないように…です。

2023年のアドベントカレンダーでは、暗黙のメジャーについて記事を書きました。

暗黙のメジャーというのは、明示的にメジャーが書かれていない状態をいいます。もう少し具体的に書くと、Power BIではデータをビジュアルに「ひょいっ」っとドラッグアンドドロップすることで簡単な集計ができてしまいます。

2023-12-10_18-47-09.gif

その際も、裏側ではDAXが記述されており、当然データモデルに問い合わせがされています。

明示的にメジャーを書いていない、けれども、メジャーが書かれている。これを暗黙のメジャー(Implicit measures) といいます。

なぜ暗黙のメジャーは避けるべきなのか は、以下記事で解説しています。

以下のような理由について書いてあります。

  • Excelで使用できない
  • 表現できないビジネスロジックがある
  • 再利用できない

image.png

2. Auto-Existに遭遇する可能性がある😎

2つ目の理由はAuto-Exist への遭遇です。

Power BI マニアのみなさんは知っているかもしれませんが、2024年10月のアップデートでAuto-Exist に関することがありました。Auto-Exist に遭遇したときの、フィルターの動作を任意にコントロールする機能のプレビューが開始しました。

image.png

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として利用した場合には同様に起こりうる問題です。

image.png

この辺の項目をFilterにしちゃったら、Auto-Exist が起こるんです。つまり、正しい、集計値がビジュアルで表示されない可能性があります。

だから…

ビジュアルを作る人が、意図せずFactテーブルの項目でフィルターを作成してしまわないように、メジャー以外の項目をすべて非表示にしちゃいましょうということになります。

まとめ

なぜFactテーブルのメジャー以外の項目を非表示にしなければいけないか、伝わりましたでしょうか。盲目的にベストプラクティスに従うのももちろん最初はOKです。徐々に、なぜそのベストプラクティスが生まれたのか、言われるようになったのかを理解できるようになってくると、Power BI Lifeがより楽しくなると思います🎉

Happy Power BI😊

image.png

19
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?