単なるテーブルではなく、スタースキーマを使うべき3つの理由

「スタースキーマ」とは、販売データなどの「ファクトテーブル」を真ん中に置き、その周りに顧客IDや店舗所在地などのデータの切り口となる「ディメンションテーブル」を配置するという、見た目が「星型の表」になる「データモデル」の基本形です。

基本は、星形の表

星形の表という意味の「スタースキーマ」がデータモデルの基本形だよ!

「スタースキーマ」は、真ん中に「ファクトテーブル」、その周囲に「ディメンションテーブル」を配置するという「データモデル」

小さなデータであればさほど影響は出ません。

しかし、ビッグデータになるほどのその差は歴然です。

つまり、ビッグデータを対象にしたデータ分析や見える化をしたいというのであれば、「スタースキーマ」を検討する必要があるわけです。

スタースキーマを使うべき3つの理由
  • 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研究所

フォローお待ちしてます!

error: Content is protected !!