前幾天參加了Oracle Golden Gate實時數據集成研討會這裡總結和分析一下Oracle的數據集成家族產品
在數據集成方面Oracle主要有三大產品()Oracle新收購的Golden Gate主要強調數據的實時性號稱數據提取最快對源端開銷影響最小()Oracle原有的產品ODI(Oracle Data Integrator)用於數據集成的絕大多數場景()Data Quality/Profiling主要在ETL時保證數據質量和分類的輔助工具和IBM的相應產品家族相比幾乎一一對應對於()和()IBM有收購的DataStage相應產品對應對於()的實時性IBM有MQ家族中的一個realtime版本對應微軟Microsoft有相應()()的產品()還沒有
Golden Gate工作原理在源數據庫端(支持各種數據庫)提取日志文件以獲得變化的發生如Oralce數據庫就是監控Redo Log或Archieve Log將變化的數據寫入一個本地的跟蹤文件Trail File(可以想象成一個TXT文件)然後將記錄加密壓縮後路由到目的端的跟蹤文件Trail File最後在目標端用SQL寫入目標數據庫在目標和源端的跟蹤文件都有一個檢查點記錄最後一個成功的記錄位置說實話Golden Gate的工作原理很簡單在國內ISV開發的應用中也有用完全類似的方法來實現功能如銀行業的前置機項目和電信的BOSS項目中導程控交換機的話單
Golden Gate的適用面還是相對窄的主要是強調實時性的地方說白了就是ODI不能滿足要求的地方否則客戶為什麼不使用數據庫內置的ODI工具還非要額外花錢購買Golden Gate呢?Oracle提供的適用場景例子有銀行信用卡欺詐檢測網上促銷優化基於位置的服務SCM的改善等
Oracle用了很多市場化的溢美之詞來給Golden Gate貼金搞清楚上面的工作原理後也就無需大驚小怪了事務的可靠性是通過基於日志來提取變化實現的最快的數據提取是通過近似記錄的傳遞大大加快了傳遞的頻率來實現的網絡帶寬占用小是通過由日志到記錄再到壓縮的記錄來實現的
Oracle研討會上不能完全同意的觀點ELT比ETL好因為省掉了中間服務器這完全是偷換概念Oralce只不過將LT的功能放在目標數據庫端的機器上而已IBM的DataStage或Microsoft的Integration Service都可以TL還是LT反正工作量都少不了
Oracle在會上舉了個例子分別是BlackBerry的制造者RIM全球很大的旅游分銷者Sabre以及據說排名美國第二位的網上零售商OverStock可惜演講者對於這三家的業務都不熟不清楚這三家到底將Golden Gate用於什麼業務的什麼地方為什麼一定要用Golden Gate所以給人的感覺是說服力不強後面有一個女的演講者倒是相對詳細地介紹了RIM如何用Golden Gate不過給我的感覺更像是一個反面案例
RIM在全球有個Supply Center未來還會增加比如由於和中國電信合作將會在中國增加一個Supply Center每個Supply Center要根據全球的需求和其他點的產量來決定自己的生產量即每個Supply Center的決策者要同時看到其他center的最新數據所以RIM采用了Golden Gate來將其他點的數據同步到本地雙向需要總共個同步操作這種分布式的模式顯然和目前數據大集中的主流方向背道而馳復雜性隨Supply Center的增加而大大增加所以除了RIM是Golden Gate的鐵桿Fans外實在找不出其他理由為什麼不在某個中心點建一個DW數據庫將個Supply Center的數據都同步到中心點就可以了這樣只需要個單向的同步操作
Oracle將Golden Gate定位於兩種應用一是DW中的ETL另外一種是DR中的數據高可靠性嚴格來說Oracle都有將Golden Gate的應用面擴大之嫌更多的站在產品已有的功能上來想可以用於哪些方面並希望說服客戶按照Oracle的思路走Golden Gate作為一家單獨的公司時上述的兩個定位是沒錯但被Oracle收購後在Oracle的大家族中再如此定位Oracle顯然打著多收三五斗的主意
從ETL來說任何數據庫都帶自己的ETL工具Oracle自己的是ODIGolden Gate相比ODI的優勢是更新頻率快實時性好但真正要用到該特性的機會很少DW的應用通常以天的頻率更新就足夠了如果實在需要加快小時做一次ETL增量操作即可而且即使Golden Gate將數據ETL到了目標端DW數據庫如果采用MOLAP的方式做BI為了要得到實時性還必須以非常高的頻率來執行刷新MOLAP Cube的操作這時BI應用是不可用的因此要得到Golden Gate實時性的好處DW應用必須采用ROLAP的方式該方式速度比MOLAP低通常用於數據量非常大的高端場合(同樣情況下采用MOLAP將占用非常大的磁盤空間)所以真要將Golden Gate用於ETL只有實時性要求高數據量非常大的極端場合
從DR來說Golden Gate的優勢是支持異構數據庫網絡帶寬占用小但前一個優勢沒有人會真正使用由於應用的限制不會有人在DR Site采用異構數據庫如DBSQL Server來容災Oracle數據庫失去了這個優勢相信絕大多數的人會采用Oracle的Date Guard來實現DR一免費(包含在數據庫中)二支持同步模式(Golden Gate其實是異步模式)三Golden Gate要經過兩次Trail File再寫入SQL的過程也相對復雜所以采用Golden Gate來做DR的機會也是很小的
總結來說Golden Gate能發揮用武之地必須具備數據實時性要求高遠端Site點距離很遠(廣域網時延很大帶寬占用小的優勢發揮)遠端需要的數據必須經過復雜處理等要求的場合否則值不回Golden Gate的購買成本或有更經濟的替代方案
From:http://tw.wingwit.com/Article/program/Oracle/201311/16684.html