維度變化的描述
與事實(shí)表變化相比,維度表變化相對(duì)緩慢,如何描述維度表的變化,有以下三種方式:
1)重寫(xiě)維度值:這種方式直接覆蓋原數(shù)據(jù)
變化前
變化后
2)插入新維度行:可以保留歷史數(shù)據(jù),但不能將變化前后的事實(shí)數(shù)據(jù)歸一化
變化后
3)添加維度列:添加一個(gè)新列表示當(dāng)前類(lèi)目
變化后
三種方式根據(jù)對(duì)歷史數(shù)據(jù)的具體需求,選擇相應(yīng)的方法
快照維表
? ? ?? 基于數(shù)據(jù)倉(cāng)庫(kù)的更新周期,每個(gè)周期保留一份全量的維度表快照數(shù)據(jù),可以隨時(shí)獲取當(dāng)天的維度數(shù)據(jù)信息。這種方式使用便捷,但是浪費(fèi)了極大的存儲(chǔ)空間
極限存儲(chǔ)
1)歷史拉鏈存儲(chǔ):新增兩個(gè)時(shí)間戳,記錄變更起始時(shí)間,將所有以天為粒度的變更數(shù)據(jù)記錄下來(lái),起始時(shí)間也作為分區(qū)字段。假設(shè)一個(gè)場(chǎng)景,賣(mài)家1第一天上架AB商品,第二天下架B商品,上架C商品
全量存儲(chǔ)方式
極限存儲(chǔ)方式
使用極限存儲(chǔ)的方式每天更新變化數(shù)據(jù),獲取某一天數(shù)據(jù)需要限制起始時(shí)間,如訪問(wèn)1月1日數(shù)據(jù),stat<=20160101 and end>20160101
2)分月做歷史拉鏈表可以減少分區(qū)的數(shù)量
3)通常使用存有近期數(shù)據(jù)的全量數(shù)據(jù)表+歷史拉鏈表配合使用