1. 程式人生 > >數倉中的全量表,增量表,拉鍊表,流水錶,快照表

數倉中的全量表,增量表,拉鍊表,流水錶,快照表

預熱:

我們先從幾個物理概念入手理解什麼是流量,存量,增量

(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

 

 

 

流水錶:對於表的每一個修改都會記錄,可以用於反映實際記錄的變更

 區別於拉鍊表: 

  1. 拉鍊表通常是對賬戶資訊的歷史變動進行處理保留的結果,流水錶是每天的交易形成的歷史;
  2.  流水錶用於統計業務相關情況,拉鍊表用於統計賬戶及客戶的情況

 

快照表:

 按照每天存放的資料以及是否按天分割槽可以分為增量表,全量表和快照表