數倉中的全量表,增量表,拉鍊表,流水錶,快照表
預熱:
我們先從幾個物理概念入手理解什麼是流量,存量,增量
(1)存量:系統在某一時點時的所保有的數量;
(2)流量:是指在某一段時間內流入/出系統的數量
(3)增量:則是指在某一段時間內系統中保有數量的變化
(4)增量=流入量--流出量
(5)本期期末存量=上期期末存量+本期內增量
正題
全量表:每天的所有的最新狀態的資料。
(1)全量表,有無變化,都要報
(2)每次上報的資料都是所有的資料(變化的 + 沒有變化的)
增量表:新增資料,增量資料是上次匯出之後的新資料。
(1)記錄每次增加的量,而不是總量;
(2)流量是指在一定時間內的增量;
(3)流量一般設計成增量表(日報-常用、月報);
(4)流量和存量的區別:流量是增量;存量是總量;
(5)增量表,只報變化量,無變化不用報
拉鍊表:
(1)記錄一個事物從開始,一直到當前狀態的所有變化的資訊;
(2)拉鍊表每次上報的都是歷史記錄的最終狀態,是記錄在當前時刻的歷史總量;
(3)當前記錄存的是當前時間之前的所有歷史記錄的最後變化量(總量);
(4)存量是在某一時刻的總量;
(5)存量一般設計成拉鍊表(月報-常用、日報);
(6)流量和存量的區別:流量是增量;存量是總量;
(7)封鏈時間可以是2999,3000,9999等等比較大的年份;拉鍊表到期資料要報0;
(8)拉鍊表和增量表的共同點:表結構基本一樣。
在有些情況下,為了保持歷史的一些狀態,需要用拉鍊表來做,這樣做目的在可以保留所有狀態的情況下可以節省空間。
拉鍊表適用於以下幾種情況吧 資料量有點大,表中某些欄位有變化,但是呢變化的頻率也不是很高,業務需求呢又需要統計這種變化狀態,每天全量一份呢,有點不太現實, 不僅浪費了儲存空間,有時可能業務統計也有點麻煩,
這時,拉鍊表的作用就提現出來了,既節省空間,又滿足了需求。
關於拉鍊表設計的案例:可以看看下面的部落格
http://www.cnblogs.com/wujin/p/6121754.html
https://blog.csdn.net/mtj66/article/details/78019370
http://www.jianshu.com/p/799252156379
http://lxw1234.com/archives/2015/04/20.htm
流水錶:對於表的每一個修改都會記錄,可以用於反映實際記錄的變更
區別於拉鍊表:
- 拉鍊表通常是對賬戶資訊的歷史變動進行處理保留的結果,流水錶是每天的交易形成的歷史;
- 流水錶用於統計業務相關情況,拉鍊表用於統計賬戶及客戶的情況
快照表:
按照每天存放的資料以及是否按天分割槽可以分為增量表,全量表和快照表