【ファクトテーブル】

ファクトテーブル とは?

最終更新:
💡 「何を1行にするか」を決めて、分析する出来事や数値を記録する

データウェアハウスで、売上や在庫などの観測・出来事を、決めた粒度で記録するテーブル。通常は数量や金額などのメジャーと、商品・日付などのディメンションへのキーを持つ。メジャーを持たない種類もある。

📌 このページのポイント
ファクト:1行の意味を揃える トランザクション 周期 スナップショット 累積 スナップショット 明細ごと 日・商品ごと 明細を更新 注文#1・商品A 数量:3個 4/1・商品A 在庫:500個 注文#1 注文日:4/1 出荷日:4/2 出来事・状態と、分析の切り口を記録 メジャーを持たないファクトレスもある
3種類の代表例を左右に比較しています。数値・日付は例で、周期スナップショットは期間ごとの状態、累積スナップショットは進捗に応じて同じ行を更新します。在庫を日付方向に単純合計するなど、すべてのメジャーが同じ方法で集計できるわけではありません。
ひよこ ひよこ
ファクトテーブルって、何を入れるの?
ペンギン先生 ペンギン先生
売上金額や注文数量など、集計対象の数値を入れるよ。商品ID、日付ID、顧客IDなどでディメンションと結び付けて、「誰が・いつ・何を」という切り口から分析するんだ。
ひよこ ひよこ
ペンギン先生 ペンギン先生
ファクトは観測や出来事を記録し、ディメンションは商品名や分類など、絞り込み・グループ分けの説明を持つよ。ファクトにもキーがあるし、ディメンションにも数値属性があり得るので、数字か言葉かだけでは区別できないんだ。
ひよこ ひよこ
粒度(グレイン)って何?
ペンギン先生 ペンギン先生
1行が何を表すかという定義だよ。「1注文の商品明細ごと」か「1日・1店舗ごと」かで、できる分析が変わる。同じテーブルで粒度を揃えることが重要だね。細かい記録では行数が増えやすいけど、必ずDWHで最大のテーブルになるわけではないよ。
ひよこ ひよこ
ファクトテーブルにはどんな種類があるの?
ペンギン先生 ペンギン先生
代表的には、1件の出来事を記録するトランザクション、毎日など決めた期間で状態を記録する周期スナップショット、注文から配達までの節目を同じ行に更新する累積スナップショットがあるよ。在庫の各日の残高を全部足しても、その期間の在庫数にはならないので、集計方法も考えるんだ。
ひよこ ひよこ
数値のメジャーがないテーブルもある?
ペンギン先生 ペンギン先生
ファクトレスファクトテーブルがそうだよ。学生・日付・コースのキーで出席を記録する例なら、金額や数量のメジャーはなくても出来事を数えられる。キー自体が数値型でもおかしくないので、「数値カラムがない」という意味ではないよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ファクトテーブル」って出てきたら「分析する出来事や数値を、決めた粒度で記録するテーブル」と思えばだいたいOK!
📖 おまけ:英語の意味
「Fact Table」 = 事実テーブル
💬 Fact(事実)という名前の通り、「何がいくつ売れた」「いくらだった」という事実を記録するテーブルだよ

参考資料

← 用語集にもどる