在企業中,由於有些流水表每日有幾千萬條記錄,數據倉庫保存5年數據的話很容易不堪重負,因此可以使用拉鏈表的算法來節省存儲空間。
1.采集當日全量數據存儲到 ND(當日) 表中。
2.可從歷史表中取出昨日全量數據存儲到 OD(上日數據)表中。
3.用ND-OD為當日新增和變化的數據(即日增量數據)。
兩個表進行全字段比較,將結果記錄到tabel_I表中
4.用OD-ND為狀態到此結束需要封鏈的數據。 (需要修改END_DATE)
兩個表進行全字段比較,將結果記錄到tabel_U表中
5.歷史表(HIS)比ND表和OD表多兩個字段(START_DATE,END_DATE)
6.將tabel_I表的內容全部insert插入到HIS表中。START_DATE='當日',END_DATE可設為'9999-12-31'
7.更新封鏈記錄的END_DATE
歷史表(HIS)和tabel_U表比較,START_DATE,END_DATE除外,以tabel_U表為准,兩者交集將其END_DATE改成當日,說明該記錄失效。
8。取數據時對日期進行條件選擇即可,如:取20100101日的數據為
(where START_DATE<='20100101' and END_DATE>'20100101' )