【資料倉儲】全量表、快照表、增量表、拉鍊表、維度表、實體表、事實表

布歐不歐發表於2020-10-12

原文連結:

https://blog.csdn.net/a6822342/article/details/100050548

https://blog.csdn.net/PTtaoge/article/details/80880494

https://blog.csdn.net/bjweimengshu/article/details/79256504

全量表

全量表沒有分割槽,表中的資料是前一天的所有資料,比如說今天是24號,那麼全量表裡面擁有的資料是23號的所有資料,每次往全量表裡面寫資料都會覆蓋之前的資料,所以全量表不能記錄歷史的資料情況,只有截止到當前最新的、全量的資料。

快照表

那麼要能查到歷史資料情況又該怎麼辦呢?這個時候快照表就派上用途了,快照表是有時間分割槽的,每個分割槽裡面的資料都是分割槽時間對應的前一天的所有全量資料,比如說當前資料表有3個分割槽,24號,25號,26號。其中,24號分割槽裡面的資料就是從歷史到23號的所有資料,25號分割槽裡面的資料就是從歷史到24號的所有資料,以此類推。

但是這樣也有一個問題,就是資料量大的時候,其實每個分割槽都儲存了許多重複的資料,非常的浪費儲存空間。

於是乎,拉鍊表就出來了。

在介紹拉鍊表之前,我們先介紹一下增量表。

增量表

增量表,就是記錄每天新增資料的表,比如說,從24號到25號新增了那些資料,改變了哪些資料,這些都會儲存在增量表的25號分割槽裡面。上面說的快照表的25號分割槽和24號分割槽(都是t+1,實際時間分別對應26號和25號),它兩的資料相減就是實際時間25號到26號有變化的、增加的資料,也就相當於增量表裡面25號分割槽的資料。

拉鍊表

拉鍊表,它是一種維護歷史狀態,以及最新狀態資料的一種表。拉鍊表也是分割槽表,有些不變的資料或者是已經達到狀態終點的資料就會把它放在分割槽裡面,分割槽欄位一般為開始時間:start_date和結束時間:end_date。一般在該天有效的資料,它的end_date是大於等於該天的日期的。獲取某一天全量的資料,可以通過表中的start_date和end_date來做篩選,選出固定某一天的資料。例如我想取截止到20190813的全量資料,其where過濾條件就是where start_date<='20190813' and end_date>=20190813。

 

維度表

維度表可以看成是使用者用來分析一個事實的視窗,它裡面的資料應該是對事實的各個方面描述,比如時間維度表,它裡面的資料就是一些日,周,月,季,年,日期等資料,維度表只能是事實表的一個分析角度。

實體表

實體表就是一個實際物件的表,實體表它放的資料一定是一條條客觀存在的事物資料,比如說裝置 ,它就是客觀存在的,所以可以將其設計一個實體表。

事實表

事實表其實質就是通過各種維度和一些指標值得組合來確定一個事實的,比如通過時間維度,地域組織維度,指標值可以去確定在某時某地的一些指標值怎麼樣的事實。事實表的每一條資料都是幾條維度表的資料和指標值交匯而得到的。
 

什麼是資料倉儲

https://blog.csdn.net/bjweimengshu/article/details/79256504

https://blog.csdn.net/Su_Levi_Wei/article/details/89501304

 

 

相關文章