週期性快照事實表的特性

1.1用快照採樣狀態

理解狀態,狀態可以指一段時間內某個事實的彙總,比如說近一個月用戶下單彙總金額,這就是一個狀態值,當天計算的近一個月的下單彙總金額狀態,一旦插入不可改變,也可以指某個事實的最終狀態值,這裏的最終一般是指當天最晚的時間點,比如日期末庫存,就是一個按天爲週期,庫存值就是當天最後的一個庫存量,是一個狀態值。

快照事實表以預定的間隔採樣狀態度量(週期可以是天,周,月,季度,年,自然年等)。這種間隔聯合一個或多個維度,將被用來定義快照事實表的粒度,每行都將包含記錄所涉及狀態的事實(所以說週期性快照事實表是稠密的)。即按照固定的週期,定義的維度,對事實表的事實進行聚集或者狀態度量,方便下游分析使用。這些狀態度量可以每天通過事務事實表進行聚集,但隨着時間跨度變大聚集效率會越來越低,因此需要設計週期快照事實表進行狀態度量聚集。如果是單事務事實表,進行聚合的話,還相對簡單,如果是多事務事實表進行聚合的話,還需要考慮去重問題,因爲多事務實時表,一條記錄包含了多個業務過程,其中一個業務過程發生改變都會保留之前的業務過程狀態在插入一條新數據。

1.2快照粒度
事務事實表的粒度可以通過業務過程中所涉及的細節程度來描述,但快照事實表的粒度通常總是被多維聲明,可以簡單地理解爲快照需要採樣的週期以及什麼將被採樣。當然,快照週期不一定都按天來進行。

1.3密度與稀疏性
快照事實表和事務事實表的一個關鍵區別在密度上。事務事實表是稀疏的,只有當天發生的業務過程,事實表纔會記錄該業務過程的事實, 如下單、支付等;而快照事實表是稠密的,無論當天是否有業務過程發生,都會記錄一行,比如針對賣家的歷史至今的下單和支付金額,無論當天賣家是否有下單支付事實,都會給該賣家記錄一行。稠密性是快照事實表的重要特徵,如果在每個快照週期內不記錄行,比如和事務事實表一樣,那麼確定狀態將變得非常困難。

1.4半可加性
在快照事實表中收集到的狀態度量(如日期末庫存)都是半可加的。與事務事實表的可加性事實不同,半可加性事實不能根據時間維度獲得有意義的彙總結果。比如對於淘寶交易事務事實表,可以對一個週期內的下單金額或者支付金額進行彙總,得到下單支付總額,但快照事實表在每個採樣週期內是不能對狀態度量進行彙總的。比如淘寶交易賣家快照事實表,無法對每天的歷史至今的下單金額進行彙總,也沒有彙總意義。雖然不能彙總,但可以計算一些平均值,比如計算每天一個下單的平均值。

二.單維度快照事實表和多維度快照事實表。

1.1單維度快照事實表
指進行單維度的採樣,比如按月週期,計算買家近一個月的下單金額。

1.2多維度快照事實表
混合維度相對於單維度,只是在每天的採樣週期上針對多個維度進行採樣。比如淘寶買賣家歷史至今快照事實表,採樣週期依然是每天, 維度是賣家加買家,反映的是不同買家對於不同賣家的下單支付金額。

三.注意事項

1.1事物與快照成對設計
數據倉庫維度建模時,對於事務事實表和快照事實表往往都是成對設計的,互相補充,以滿足更多的下游統計分析需求,特別是在事務事 實表的基礎上可以加工快照事實表,如前面所述的淘寶賣家歷史至今快照事實表,就是在事務事實表的基礎上加工得到的,既豐富了星形模型, 又降低了下游分析的成本。

1.2附加事實
快照事實表在確定狀態度量時,一般都是保存採樣週期結束時的狀態度量。但是也有分析需求需要關注上一個採樣週期結束時的狀態度量,而又不願意多次使用快照事實表,因此一般在設計週期快照事實表時會附加一些上一個採樣週期的狀態度量。

1.3多種週期快照事實表設計
在實際運用當中,針對同一個類型的狀態度量,可能會關注多個週期,比如近一天的用戶下單金額,近一個周的用戶下單金額等等。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章