ODS設計思路-ODS到DW同步

newknight發表於2013-11-29


ODS作為DW和業務系統的中間資料層,保留了兩者的部分特性,在基本資料上,繼承了業務系統的資料形式和組織結構,但出於查詢和分析的需求,也可以進行部分粗粒度的彙總,提供部分維度。

ODS與DW對位元點:

ODS設計思路-ODS到DW同步

ODS作為DW的資料來源,可以根據設計需要,保留近兩個月(自然月,或者長至一年)的原始資料,定期刪除超出期限的資料。ODS也可以根據DW的特徵進行SBA(業務特徵區)層和LAM(輕度彙總層)層設計,進行維度標準化和簡單彙總處理,這寫SBA層和LAM層的資料保留期限可以設定為幾天之內,當然,最大限度保留的話,可以保留近兩個月(參考之前設計)的SBALAM資料。


ODS是當前的、不斷變化的資料,而DW保留的是歷史的、不再變化的資料,所以一般來說會落後ODS一天或一天以上的資料。ODS按分鐘級別捕捉生產系統的資料變化,然後可以每天將歸檔後的資料載入到DW中,歸檔的標記為這條記錄是否已完成


ODS的基本表(除彙總表)應記錄業務欄位的hash值,並設定拉鍊演算法所需的start_dateend_date。業務源資料變化時,根據rowid或其他方法,找到舊記錄進行分裂,並插入新資料和新的hash值,start_dateend_date。如果ODS中有輕度彙總表,那麼對end_date變為sysdate當天的記錄,所涉及的彙總記錄,必須重算。

注:ODS中是否進行記錄分裂,要看這條記錄之前是否以歸檔,如果已歸檔,那麼進行分裂,未歸檔則不必分裂,更新記錄和hash值即可。


DW中,也應記錄ODSDW時的hash值、start_dateend_date,當ODSDW再次同步時,根據舊hash值,分裂DW中的老記錄,然後同步新記錄。如果DW中有彙總表,那麼對end_date變為sysdate當天的記錄,所涉及的彙總記錄,必須重算。


如果源系統修改了2個月之前的資料,ODS中沒有相關的資料記錄(已刪除,ODS只保留2個月),那麼ODS無法分裂,DW中也是同樣的情況。

解決辦法是,在ODSDW基礎表中保留rowid或同類欄位,對時間超出ODS的記錄按rowid查詢DW進行分裂,但rowid可能根據表格move或壓縮變化。

或者在出現2個月之前的資料修改時,手動處理。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10009036/viewspace-1061623/,如需轉載,請註明出處,否則將追究法律責任。

相關文章