第九章 事實(shí)表設(shè)計(jì)之累計(jì)快照事實(shí)表

累計(jì)快照事實(shí)表的主要用于研究事件之間時(shí)間間隔,當(dāng)然并不僅限于此,還有一些特殊用途,可以在實(shí)際工作中靈活運(yùn)用。

設(shè)計(jì)特點(diǎn)

1)數(shù)據(jù)不斷更新:不同于前面說的兩種事實(shí)表,累計(jì)快照事實(shí)表中的數(shù)據(jù)實(shí)例會(huì)定期更新。

多事務(wù)事實(shí)表



累積快照事實(shí)表

如上圖所示多事務(wù)事實(shí)表中一條交易記錄會(huì)每天有一條數(shù)據(jù)來記錄整個(gè)交易過程;而累積快照事實(shí)表只會(huì)有一條記錄,數(shù)據(jù)會(huì)一致更新直到過程結(jié)束。

2)適用于業(yè)務(wù)過程有明確的起止時(shí)間的短生命周期場(chǎng)景,如交易訂單、物流訂單。長(zhǎng)生命周期的實(shí)體記錄完全可以由周期快照表實(shí)現(xiàn),如商品、用戶。

3)業(yè)務(wù)的流程不是只有一種,如交易流程可能是

① 下單、支付、發(fā)貨、確認(rèn)

② 下單、關(guān)閉訂單

③? 。。。

對(duì)于不同過程,要設(shè)計(jì)統(tǒng)一的結(jié)束標(biāo)志,沒有的業(yè)務(wù)時(shí)間置空




樣例設(shè)計(jì)


有時(shí)需要將每個(gè)過程時(shí)間間隔作為事實(shí)放在表中,如下單到支付時(shí)間間隔、支付到發(fā)貨時(shí)間間隔、發(fā)貨到確認(rèn)時(shí)間間隔,方便下游直接使用


物理實(shí)現(xiàn)

1)全量表:一般是日分區(qū),每天存儲(chǔ)前一天的全量數(shù)據(jù)和當(dāng)天增量數(shù)據(jù)進(jìn)行合并,保證每條數(shù)據(jù)的最新狀態(tài),此方式適用于數(shù)據(jù)量不大的情況

2)全量變化表:累積事實(shí)表用于保存生命周期短的實(shí)例,所以可以根據(jù)業(yè)務(wù)實(shí)體從開始到結(jié)束的最大時(shí)間間隔,如交易業(yè)務(wù)最大時(shí)間跨度200天,每天保存的是過去200天的全量數(shù)據(jù),200天之前的數(shù)據(jù)存儲(chǔ)在歸檔表中。適用于數(shù)據(jù)量大的場(chǎng)景

3)以業(yè)務(wù)結(jié)束時(shí)間分區(qū):每天分區(qū)中存放的是當(dāng)天結(jié)束的業(yè)務(wù),然后用一個(gè)非常大的分區(qū)(如 3000-12-31)保存所有至今未結(jié)束的記錄,這種方式不會(huì)浪費(fèi)存儲(chǔ)資源

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容