ODS設計思路-ODS到DW同步
ODS作為DW和業務系統的中間資料層,保留了兩者的部分特性,在基本資料上,繼承了業務系統的資料形式和組織結構,但出於查詢和分析的需求,也可以進行部分粗粒度的彙總,提供部分維度。
ODS與DW對位元點:
ODS作為DW的資料來源,可以根據設計需要,保留近兩個月(自然月,或者長至一年)的原始資料,定期刪除超出期限的資料。ODS也可以根據DW的特徵進行SBA(業務特徵區)層和LAM(輕度彙總層)層設計,進行維度標準化和簡單彙總處理,這寫SBA層和LAM層的資料保留期限可以設定為幾天之內,當然,最大限度保留的話,可以保留近兩個月(參考之前設計)的SBA和LAM資料。
ODS是當前的、不斷變化的資料,而DW保留的是歷史的、不再變化的資料,所以一般來說會落後ODS一天或一天以上的資料。ODS按分鐘級別捕捉生產系統的資料變化,然後可以每天將歸檔後的資料載入到DW中,歸檔的標記為這條記錄是否已完成。
ODS的基本表(除彙總表)應記錄業務欄位的hash值,並設定拉鍊演算法所需的start_date和end_date。業務源資料變化時,根據rowid或其他方法,找到舊記錄進行分裂,並插入新資料和新的hash值,start_date和end_date。如果ODS中有輕度彙總表,那麼對end_date變為sysdate當天的記錄,所涉及的彙總記錄,必須重算。
注:ODS中是否進行記錄分裂,要看這條記錄之前是否以歸檔,如果已歸檔,那麼進行分裂,未歸檔則不必分裂,更新記錄和hash值即可。
DW中,也應記錄ODS到DW時的hash值、start_date和end_date,當ODS和DW再次同步時,根據舊hash值,分裂DW中的老記錄,然後同步新記錄。如果DW中有彙總表,那麼對end_date變為sysdate當天的記錄,所涉及的彙總記錄,必須重算。
如果源系統修改了2個月之前的資料,ODS中沒有相關的資料記錄(已刪除,ODS只保留2個月),那麼ODS無法分裂,DW中也是同樣的情況。
解決辦法是,在ODS和DW基礎表中保留rowid或同類欄位,對時間超出ODS的記錄按rowid查詢DW進行分裂,但rowid可能根據表格move或壓縮變化。
或者在出現2個月之前的資料修改時,手動處理。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10009036/viewspace-1061623/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料分層 ODS DW DM層級
- 資料倉儲ODS、DW和DM概念 - 1
- 資料倉儲ODS、DW和DM概念 - 2
- 資料倉儲ODS、DW和DM概念 - 3
- 資料倉儲ODS、DW和DM概念 - 4
- 淺析數倉分層:DB+ODS+DW+DM
- 從ODS到ADS,詳解數倉分層!
- 數倉開發之ODS層
- NoSuchObjectException(message:ods_db.event table not found)ObjectException
- ODS:輸出多樣化取樣,有效增強白盒和黑盒攻擊的效能 | NeurIPS 2020
- 訂單系統:從0到1設計思路
- Javaweb設計思路JavaWeb
- springboot許可權設計思路(精確到按鈕級別)Spring Boot
- JavaScript非同步程式設計史:回撥函式到Promise到Async/AwaitJavaScript非同步程式設計函式PromiseAI
- 遊戲角色設計思路遊戲
- 創意設計新思路
- 剖析 HTTPS 的設計思路HTTP
- 通用點贊設計思路
- UI設計培訓分享:UI設計師的設計思路UI
- Widget Manager 設計思路學習
- 2048小遊戲設計思路遊戲設計
- MASA Framework - 整體設計思路Framework
- 無法理解的設計思路
- 非同步程式設計非同步程式設計
- 簡單理解非同步程式設計(python)和非同步程式設計(nodejs)非同步程式設計PythonNodeJS
- 非同步程式設計:基於事件的非同步程式設計模式(EAP)非同步程式設計事件設計模式
- API介面安全性設計思路API
- 網上商城架構設計之表設計思路(三)架構
- java非同步程式設計Java非同步程式設計
- asyncio 非同步程式設計非同步程式設計
- 非同步程式設計 CompletableFuture非同步程式設計
- Dart 非同步程式設計Dart非同步程式設計
- Javascript 非同步程式設計JavaScript非同步程式設計
- php非同步程式設計PHP非同步程式設計
- 非同步程式設計---Promise非同步程式設計Promise
- js 非同步程式設計JS非同步程式設計
- 非同步 API 的設計非同步API
- DW_apb_wdt
- MYSQL 同步到ES 如何設計架構保持一致性MySql架構