【ディメンションテーブル】

ディメンションテーブル とは?

最終更新:
💡 数値を分析する切り口の属性を持つテーブル

データ分析で、商品・顧客・日付などの属性を持つテーブル。売上などを記録するファクトテーブルとキーで結び、商品別や月別といった絞り込み・集計の切り口を提供する。

📌 このページのポイント
数値に分析の切り口を結ぶ 売上ファクト 商品属性 キー:P001 数量:3 売上:600円 キー:P001 商品名:ノート カテゴリ:文具 キー 商品別の集計 ノート / 文具 数量3・売上合計600円
架空の売上と商品ディメンションの例。同じキーで属性を結び、商品名やカテゴリで集計できる。600円は3個分の売上合計で、単価ではない。
ひよこ ひよこ
どんな情報を入れるの?
ペンギン先生 ペンギン先生
商品なら商品名やカテゴリ、日付なら年や月など、分析の切り口になる属性を入れるよ。何を必要とするかは分析の目的で決める。売上の金額や数量と、それを説明する属性を分けて考えるとわかりやすいね。
ひよこ ひよこ
ファクトテーブルとはどう結ぶの?
ペンギン先生 ペンギン先生
対応するキーで結ぶよ。例えば売上の行に商品キーP001があり、商品テーブルの対応する行が「ノート・文具」なら、売上を商品名やカテゴリで絞って集計できる。対応するディメンションの行を一意に決められるキーが必要なんだ。
ひよこ ひよこ
必ず一つの表に属性をまとめるの?
ペンギン先生 ペンギン先生
分析しやすくするため、カテゴリなどを同じ表にまとめる非正規化がよく使われるよ。ただし、商品・下位カテゴリ・上位カテゴリを別の表に分ける設計もある。必要な分析やデータ量、履歴の扱いなどで決めるんだ。
ひよこ ひよこ
日付もディメンションにするの?
ペンギン先生 ペンギン先生
年・四半期・月・日などを属性に持たせると、その単位で売上を絞ったり集計したりしやすいよ。注文日と出荷日を別の切り口として使うこともある。どんな分析でも必ず同じ日付テーブルを作る、という意味ではないんだ。
ひよこ ひよこ
商品や顧客の属性が変わったら?
ペンギン先生 ペンギン先生
変更の履歴をどう扱うかを決めるよ。SCDのType 1は値を上書きし、Type 2は新しい行と別のキーを使って旧版も残す方法だよ。過去の売上を当時の属性で分析するには、ファクトの行を適切な版に結ぶことも必要になるんだ。
もっと詳しく知りたい人へ

ディメンションの行数は必ず少ない?

ファクトより少ないことは多いけれど、必ずではないよ。顧客などでは大きな表になり、履歴を残すことで行も増える。行数の少なさを定義にせず、必要な絞り込み・集計と履歴分析を支えるように設計しよう。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ディメンションテーブル」って出てきたら「数値を分析する切り口の属性を持つテーブル」と思えばだいたいOK!
📖 おまけ:英語の意味
「Dimension Table」 = 次元テーブル
💬 Dimensionは次元や側面という意味だよ。例えば売上を商品別や月別に見るときの、分析の切り口を提供するテーブルなんだ。

参考資料

← 用語集にもどる