共享資料服務和ODS庫(4.4)
在傳統架構,包括現在的微服務架構中,都會涉及到ODS庫的構建。而對於中臺規劃中的資料中臺,更是需要ODS庫來提供關鍵的資料服務能力。
為何通過共享ODS庫來提供資料服務能力,而不是由原來的業務系統或單個微服務模組來提供資料服務能力。這裡面有一個重點就是對於資料服務而言往往需要提供領域資料服務能力,涉及到底層多種資料庫表的關聯查詢動作。而在傳統方式下,這個往往涉及到跨庫查詢才能夠實現,也就是說單個業務系統往往並沒有能力提供。
這也是為何在傳統模式下,會考慮再規劃建設一個獨立的領域服務層微服務模組,來專門處理這類服務。即使這樣處理也存在要多次呼叫後臺資料庫介面,然後再邏輯層進行組合和組裝的問題,那麼在效能上肯定會造成一定的損耗。
而共享ODS庫要做的就是將共享的基礎主資料和各個業務系統中共享的動態資料(類似專案,訂單,合同)等全部進行集中,集中到ODS庫來提供統一的共享資料服務能力。那麼原來上層應用需要呼叫各個業務系統或模組提供的資料服務來獲取資料,而新架構下只需要通過共享資料中心ODS庫提供的共享資料服務來查詢資料即可。
這種模式下本身又帶來如下的好處
1. 共享ODS庫很容易解決資料庫表之間的多表關聯查詢問題,這個在資料庫層就可以完成。
2. 對於業務系統不再承載查詢服務消費和請求,本身也降低了業務系統本身的效能壓力。
而為了滿足以上的需求,在構建ODS庫的時候往往還需要考慮兩點。
1. 資料庫資料的抽取最好能夠通過實時的資料庫日誌複製技術來完成,那麼ODS庫隨時都是最新資料拷貝。
2. 對於海量資料的儲存,在構建ODS庫的時候需要考慮構建為分散式的ODS庫。
對於分散式的ODS庫,即可以考慮傳統的結構化資料庫進行分割槽分庫處理,也可以直接採用Hadoop來構建大資料儲存平臺,在ODS庫只承載查詢業務的時候這點上是可行的。