【ディメンションテーブル】
ディメンションテーブル とは?
最終更新:
💡 数値を分析する切り口の属性を持つテーブル
データ分析で、商品・顧客・日付などの属性を持つテーブル。売上などを記録するファクトテーブルとキーで結び、商品別や月別といった絞り込み・集計の切り口を提供する。
📌 このページのポイント
どんな情報を入れるの?
商品なら商品名やカテゴリ、日付なら年や月など、分析の切り口になる属性を入れるよ。何を必要とするかは分析の目的で決める。売上の金額や数量と、それを説明する属性を分けて考えるとわかりやすいね。
ファクトテーブルとはどう結ぶの?
対応するキーで結ぶよ。例えば売上の行に商品キーP001があり、商品テーブルの対応する行が「ノート・文具」なら、売上を商品名やカテゴリで絞って集計できる。対応するディメンションの行を一意に決められるキーが必要なんだ。
必ず一つの表に属性をまとめるの?
分析しやすくするため、カテゴリなどを同じ表にまとめる非正規化がよく使われるよ。ただし、商品・下位カテゴリ・上位カテゴリを別の表に分ける設計もある。必要な分析やデータ量、履歴の扱いなどで決めるんだ。
日付もディメンションにするの?
年・四半期・月・日などを属性に持たせると、その単位で売上を絞ったり集計したりしやすいよ。注文日と出荷日を別の切り口として使うこともある。どんな分析でも必ず同じ日付テーブルを作る、という意味ではないんだ。
商品や顧客の属性が変わったら?
変更の履歴をどう扱うかを決めるよ。SCDのType 1は値を上書きし、Type 2は新しい行と別のキーを使って旧版も残す方法だよ。過去の売上を当時の属性で分析するには、ファクトの行を適切な版に結ぶことも必要になるんだ。
もっと詳しく知りたい人へ
ディメンションの行数は必ず少ない?
ファクトより少ないことは多いけれど、必ずではないよ。顧客などでは大きな表になり、履歴を残すことで行も増える。行数の少なさを定義にせず、必要な絞り込み・集計と履歴分析を支えるように設計しよう。
まとめ:ざっくりこれだけ覚えればOK!
「ディメンションテーブル」って出てきたら「数値を分析する切り口の属性を持つテーブル」と思えばだいたいOK!
📖 おまけ:英語の意味
「Dimension Table」 = 次元テーブル
💬 Dimensionは次元や側面という意味だよ。例えば売上を商品別や月別に見るときの、分析の切り口を提供するテーブルなんだ。