醉仙歸 維度變化
維度屬性一般來說不是靜態(tài)的,而是會隨時間變化的,數(shù)據(jù)倉庫的一個重要特點就是反映歷史的變化,所以如何保存維度的歷史狀態(tài)是維度設計的重要工作之一。保存維度數(shù)據(jù)的歷史狀態(tài),通常有以下兩種做法,分別是全量快照表和拉鏈表。
1)全量快照表
離線數(shù)據(jù)倉庫的計算周期通常為每天一次,所以可以每天保存一份全量的維度數(shù)據(jù)。這種方式的優(yōu)點和缺點都很明顯。
優(yōu)點是簡單而有效,開發(fā)和維護成本低,且方便理解和使用。
缺點是浪費存儲空間,尤其是當數(shù)據(jù)的變化比例比較低時。

2)拉鏈表
①什么是拉鏈表
拉鏈表是維護歷史狀態(tài),以及最新狀態(tài)數(shù)據(jù)的一種表,拉鏈表根據(jù)拉鏈粒度的不同,實際上相當于快照,只不過做了優(yōu)化,去除了一部分不變的記錄,通過拉鏈表可以很方便的還原出拉鏈時點的數(shù)據(jù)記錄,拉鏈表,記錄每條信息的生命周期,一旦一條記錄的生命周期結束,就重新開始一條新的記錄,并把當前日期放入生效開始日期。 如果當前信息至今有效,在生效結束日期中填入一個極大值(如9999-1-1 )

拉鏈表適合于:數(shù)據(jù)會發(fā)生變化,但是變化頻率并不高的維度(即:緩慢變化維),比如:用戶信息會發(fā)生變化,但是每天變化的比例不高。如果數(shù)據(jù)量有一定規(guī)模,按照每日全量的方式保存效率很低。比如:2億*365天,每天一份用戶信息。(做每日全量效率低),拉鏈表的意義就在于能夠更加高效的保存維度信息的歷史狀態(tài)。
標簽: