1)在數據倉庫領域有一個概念叫Transaction fact table,中文一般翻譯為“事務事實表”。
事務事實表是維度建模的數據倉庫中三種基本類型事實表中的一種,另外兩種分別是周期快照事實表和累積快照事實表。?
事務事實表與周期快照事實表、累積快照事實表使用相同的一致性維度,但是它們在描述業務事實方面是有著非常大的差異的。
事務事實表記錄的事務層面的事實,保存的是最原子的數據,也稱“原子事實表”。事務事實表中的數據在事務事件發生后產生,數據的粒度通常是每個事務一條記錄。一旦事務被提交,事實表數據被插入,數據就不再進行更改,其更新方式為增量更新。?
事務事實表的日期維度記錄的是事務發生的日期,它記錄的事實是事務活動的內容。用戶可以通過事務事實表對事務行為進行特別詳細的分析。
通過事務事實表,還可以建立聚集事實表,為用戶提供高性能的分析。
2)在數據倉庫領域有一個概念叫Periodicsnapshot fact table,中文一般翻譯為“周期快照事實表”。
周期快照事實表以具有規律性的、可預見的時間間隔來記錄事實,時間間隔如每天、每月、每年等等。典型的例子如銷售日快照表、庫存日快照表等。
周期快照事實表的粒度是每個時間段一條記錄,通常比事務事實表的粒度要粗,是在事務事實表之上建立的聚集表。周期快照事實表的維度個數比事務事實表要少,但是記錄的事實要比事務事實表多。
周期快照事實表的日期維度通常是記錄時間段的終止日,記錄的事實是這個時間段內一些聚集事實值。事實表的數據一旦插入即不能更改,其更新方式為增量更新。
3)在數據倉庫領域有一個概念叫Accumulatingsnapshot fact table,中文一般翻譯為“累積快照事實表”。
累積快照事實表和周期快照事實表有些相似之處,它們存儲的都是事務數據的快照信息。但是它們之間也有著很大的不同,周期快照事實表記錄的確定的周期的數據,而累積快照事實表記錄的不確定的周期的數據。?
累積快照事實表代表的是完全覆蓋一個事務或產品的生命周期的時間跨度,它通常具有多個日期字段,用來記錄整個生命周期中的關鍵時間點。另外,它還會有一個用于指示最后更新日期的附加日期字段。由于事實表中許多日期在首次加載時是不知道的,所以必須使用代理關鍵字來處理未定義的日期,而且這類事實表在數據加載完后,是可以對它進行更新的,來補充隨后知道的日期信息。
舉例來說,
訂貨日期
預定交貨日期
實際發貨日期
實際交貨日期
數量
金額
運費?
區別比較:
根據Kimball的數據倉庫理論,事實表分為三種類型:交易事實表、周期快照事實表和累積快照事實表。以下是這幾種事實表之間的區別。
特點 | 交易事實 | 周期快照事實 | 累積快照事實 |
時間/時期 | 時間 | 時期 | 時間跨度較短的多個時點 |
粒度 | 每行代表一個交易事件 | 每行代表一個時間周期 | 每行代表一個業務周期 |
事實表加載 | 新增 | 新增 | 新增和修改 |
事實表更新 | 不更新 | 不更新 | 新事件產生時更新 |
時間維 | 業務日期 | 時期末 | 多個業務過程的完成日期 |
事實 | 交易活動 | 時間周期內的績效 | 限定多個業務階段內的績效 ? |