数据仓库--事实表
事實表分成三種:事務事實表、周期快照事實表、累計快照事實表
事務事實表
官方定義是:發(fā)生在某個時間點上的一個事件。比如以訂單為例:下單是一個事實、付款是一個事實、退款是一個事實,所有事實的累計就是事務事實表
周期快照事實表
如果需要對某一天或者某個月的數(shù)據(jù)進行分析,那么可以使用周期快照事實表,比如:以天舉例,財務報表一般都是周期快照事實表,它的最細粒度主鍵就是:日期+訂單
累計快照事實表
累計快照表,具有確定的開始和結束事件,并且記錄關鍵事件或者過程的里程碑,它因此包含了很多日期的外鍵
三種事實表的區(qū)別?
?
在維度建模的數(shù)據(jù)倉庫中,事實表是指其中保存了大量業(yè)務度量數(shù)據(jù)的表。事實表中的度量值一般稱為事實。在事實表中最有用的事實就是數(shù)字類型的事實和可加類型的事實。事實表的粒度決定了數(shù)據(jù)倉庫中數(shù)據(jù)的詳細程度。
一般來說,以粒度作為化分依據(jù),主要有三種事實表,分別是事務粒度事實表(Transaction Grain Fact Table),周期快照粒度事實表(Periodic Snapshot Grain Fact Table)和累積快照粒度事實表(Accumulating Snapshot Grain Fact Table)。
事務粒度事實表中的一條記錄代表了業(yè)務系統(tǒng)中的一個事件。事務出現(xiàn)以后,就會在事實中出現(xiàn)一條記錄。事務粒度事實表也稱為原子粒度。典型?的例子是銷售單分列項事實表。
周期快照粒度事實表用來記錄有規(guī)律的,可預見時間間隔的業(yè)務累計數(shù)據(jù)。通常的時間間隔可以是每天、每周或者每月。典型的例子是庫存日快照事實表。
累積快照事實表一般用來涵蓋一個事務的生命周期內的不確定的時間跨度。典型的例子是KDT#2中描述的具有多個日期字段的發(fā)貨事實表。
?
通常來說,事務和快照是建模中的兩個非常重要的特點,將兩者相結合可以使模型建立的更完整。
從用途的不同來說,事實表可以分為三類,分別是原子事實表,聚集事實表和合并事實表。
原子事實表(Atom Fact Table)是保存最細粒度數(shù)據(jù)的事實表,也是數(shù)據(jù)倉庫中保存原子信息的場所。
聚集事實表(Aggregated Fact Table)是原子事實表上的匯總數(shù)據(jù),也稱為匯總事實表。即新建立一個事實表,它的維度表是比原維度表要少,或者某些維度表是原維度表的子集,如用月份維度表代替日期維度表;事實數(shù)據(jù)是相應事實的匯總,即求和或求平均值等。在做數(shù)據(jù)遷移時,當相關的維度數(shù)據(jù)和事實數(shù)據(jù)發(fā)生變化時,聚集事實表需要做相應的刷新。物化視圖是實現(xiàn)聚集事實表的一種有效方式,可以設定刷新方式,具體功能由DBMS來實現(xiàn)。
合并事實表(Consolidated Fact Table)是指將位于不同事實表中處于相同粒度的事實進行組合建模而成的一種事實表。即新建立一個事實表,它的維度是兩個或多個事實表的相同維度的集合;事實是幾個事實表中感興趣的事實。在Kimball的總線架構中,由合并事實表為主組成的合并數(shù)據(jù)集市稱為二級數(shù)據(jù)集市。合并事實表的粒度可以是原子粒度也可以是聚集粒度。在做數(shù)據(jù)遷移時,當相關的原子事實表的數(shù)據(jù)有改變時,合并事實表的數(shù)據(jù)需要重新刷新。合并事實表和交叉探察是兩個互補的操作。
聚集事實表和合并事實表的主要差別是合并事實表一般是從多個事實表合并而來。但是它們的差別不是絕對的,一個事實表既是聚集事實表又是合并事實表是很有可能的。因為一般合并事實表需要按相同的維度合并,所以很可能在做合并的同時需要進行聚集,即粒度變粗。
轉載于:https://www.cnblogs.com/xyg-zyx/p/9803580.html
總結
- 上一篇: Collections接口下的Compa
- 下一篇: TODO: ping和telnet