ファクトテーブルは、現実世界のビジネス活動から生まれる測定可能なデータを格納し、分析のための基礎となる。ファクトテーブルで測定される数値データは、Additive(加算ファクト), Semi-Additive(半加算ファクト), Non-Additive Facts(非加算ファクト)に分類可能である。日本語では、加法、半加法、非加法ファクトとも表現できる。
加算ファクト
あらゆる次元で合計することができるファクトである。例として、売上金額は、製品毎、店舗毎、時間毎と、あらゆる次元で合計することができる。
日付 | 商品ID | 店舗ID | 売上金額 | 販売数量 |
---|---|---|---|---|
2024-01-01 | 1 | 1 | 1,000円 | 5個 |
2024-01-01 | 1 | 2 | 1,500円 | 7個 |
2024-01-02 | 1 | 1 | 800円 | 4個 |
2024-01-02 | 1 | 2 | 2,000円 | 10個 |
売上金額は、すべての次元で合計可能なので、加算ファクトである。
- 日付別合計: 1/1 = 2,500円、1/2 = 2,800円
- 商品ID別合計: 商品1 = 5,300円
- 店舗ID別合計: 店舗1 = 1,800円、店舗2 = 3,500円
半加算ファクト
一部の次元で合計することができるファクトである。例として、残高は、製品毎、店舗毎で合計することができるが、時間毎で合計しても意味がない。
日付 | 商品ID | 倉庫ID | 在庫数 | 在庫金額 |
---|---|---|---|---|
2024-01-01 | 1 | 1 | 100個 | 10,000円 |
2024-01-01 | 1 | 2 | 150個 | 15,000円 |
2024-01-02 | 1 | 1 | 90個 | 9,000円 |
2024-01-02 | 1 | 2 | 140個 | 14,000円 |
在庫数は、倉庫IDで合計可能であるが、時間軸では合計しても意味をなさないので、半加算ファクトである。
- 倉庫別合計(2024/1/1時点): 倉庫1 = 100個, 倉庫2 = 150個
- 日付別合計: 1/1 = 250個は、意味をなさない
- 時間軸での集計: 倉庫1の平均 = 95個, 倉庫2の平均 = 145個
非加算ファクト
どの次元でも合計することができないファクトである。例として、比率、単価は合計しても意味がない。非加算ファクトはできるだけ、データモデリングのダウンストリームで計算するのが良い。
日付 | 商品ID | 店舗ID | 単価 |
---|---|---|---|
2024-01-01 | 1 | 1 | 200円 |
2024-01-01 | 1 | 2 | 210円 |
2024-01-02 | 1 | 1 | 200円 |
2024-01-02 | 1 | 2 | 220円 |
単価は、どの次元での合計も意味がないので、非加算ファクトである。このようなものは統計値として扱うことができる。
- 店舗別合計: 店舗1 = 400円、店舗2 = 430円は意味をさなさい
ファクトテーブルはデータ分析において重要な役割を果たし、各ファクトの特性を理解することが分析の精度を高めることに繋がる。
コメント