単なるテーブルではなく、スタースキーマを使うべき3つの理由
「スタースキーマ」とは、販売データなどの「ファクトテーブル」を真ん中に置き、その周りに顧客IDや店舗所在地などのデータの切り口となる「ディメンションテーブル」を配置するという、見た目が「星型の表」になる「データモデル」の基本形です。
基本は、星形の表
星形の表という意味の「スタースキーマ」がデータモデルの基本形だよ!
小さなデータであればさほど影響は出ません。
しかし、ビッグデータになるほどのその差は歴然です。
つまり、ビッグデータを対象にしたデータ分析や見える化をしたいというのであれば、「スタースキーマ」を検討する必要があるわけです。
- 1.使いやすい
- 2.DAXが書きやすい
- 3.パフォーマンスが良い
スタースキーマは、使いやすい
データが大きくなればなるほど、単なるテーブルでは迷子になりやすいです。
そこで、スタースキーマを使う必要性が出てきます。
スタースキーマであれば、目的のデータ(ファイル、列、メジャーなどを含む)を探しやすくなり、レポート作成をしやすくなります。
スタースキーマは、DAXが書きやすい
VBAマクロを触ったことがある人ならば、一度ならずとも「なんだこのコード?わかりづらい!」という経験をされたことがあると思います。
同様なことが、単なるテーブルの場合にも発生しやすく、コードがわかりづらくなってしまうことがよくあります。
「モダンExcel」ならば、こうしたコードの読みづらさを解消できます。
しかも、スタースキーマにすれば、コードを読みやすく、書きやすくもできます。
DAXを使う際、表示上の工夫もポイントの一つになりますが、その話はまた別の機会に紹介します。
なお、DAXの特徴的な関数である「タイムインテリジェンス関数」を使いこなすには、「カレンダーテーブル」を作成することが必須です。
「カレンダーテーブル」とは、「一意の連続した日付」を持つテーブルです。
「CALENDARAUTO」関数などを使うと、カレンダーを簡単に作成できて便利です。
「カレンダーテーブル」に関して、先日twitterを見ていると衝撃ツイートに出くわしました。
俺の1年、返せ!
何事かとツイートを読み進めると、パワーピボットを使って前年比や累計などをDAXというデータ分析式できちんと書いているにもかかわらず、思うように計算されず、結局これまで同様、Excelの関数などを使ってわざわざ別途計算していた、というのです。
それは、大変だったわね……。
そして、あることに気づき、上述のような発言になったというのです。
それが、これ。
前年比や累計などをDAXで計算しようとするには「カレンダーテーブル」が必要なんだね。
知らなかったよ!
パワーピボットを使いこなす基本は、販売データのような「ファクトテーブル」を中心に置き、その周りに顧客名や販売地域など、データの切り口となる「ディメンションテーブル」を配置するとともに、DAXを使うのであれば「カレンダーテーブル」も必要になるということを知っておいてください。
スタースキーマは、パフォーマンスが良い
ビッグデータ(数億行~)になるほど、単なるテーブルよりも「スタースキーマ」を使う方が、処理を短時間でできるようになります。
1,000万行程度のデータを更新する事例で、単なるテーブルの場合はその処理に30分余りかかったのに対し、「スタースキーマ」によるその処理はわずか3分余り、その差は歴然です。
データモデルには「スタースキーマ」以外のデータモデルもありますよ。
まずは基本の「スタースキーマ」を理解しましょうね。
基本の「スタースキーマ」、それ以外のデータモデルについては、拙著「モダンExcel入門」、第2章PART3『データモデルの基本は”星形の表”=「スタースキーマ」』P121~をご参照ください。
モダンExcel研究所
フォローお待ちしてます!