Oracle Golden Gate實時數據集成

轉自:http://news.newhua.com/news1/program_database/2009/1223/091223153410872F8K68804G0274C9EG7HF0FB5F4F256897GG1F6B060_2.html?lt=common

  

      在數據集成方面,Oracle主要有三大產品:(1)Oracle新收購的Golden Gate,主要強調數據的實時性,號稱數據提取最快,對源端開銷影響最小;(2)Oracle原有的產品ODI(Oracle Data Integrator),用於數據集成的絕大多數場景;(3)Data Quality/Profiling,主要在ETL時保證數據質量和分類的輔助工具。和IBM的相應產品家族相比,幾乎一一對應。對於(2)和(3),IBM有收購的DataStage相應產品對應,對於(1)的實時性,IBM有MQ家族中的一個real-time版本對應。微軟Microsoft有相應(2)(3)的產品,(1)還沒有。

  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研討會上不能完全同意的觀點:E-LT比ETL好,因爲省掉了中間服務器。這完全是偷換概念。Oralce只不過將LT的功能放在目標數據庫端的機器上而已。IBM的DataStage或Microsoft的Integration Service都可以,TL還是LT,反正工作量都少不了。

  Oracle在會上舉了3個例子,分別是BlackBerry的製造者RIM,全球很大的旅遊分銷者Sabre,以及據說排名美國第二位的網上零售商OverStock。可惜演講者對於這三家的業務都不熟,不清楚這三家到底將Golden Gate用於什麼業務的什麼地方,爲什麼一定要用Golden Gate,所以給人的感覺是說服力不強。後面有一個女的演講者倒是相對詳細地介紹了RIM如何用Golden Gate,不過給我的感覺更像是一個反面案例。

  RIM在全球有5個Supply Center,未來還會增加,比如由於和中國電信合作,將會在中國增加一個Supply Center。每個Supply Center要根據全球的需求和其他點的產量來決定自己的生產量,即每個Supply Center的決策者要同時看到其他center的最新數據,所以RIM採用了Golden Gate來將其他點的數據同步到本地,雙向需要總共20個同步操作。這種分佈式的模式顯然和目前數據大集中的主流方向背道而馳,複雜性隨Supply Center的增加而大大增加,所以除了RIM是Golden Gate的鐵桿Fans外,實在找不出其他理由。爲什麼不在某個中心點建一個DW數據庫,將5個Supply Center的數據都同步到中心點就可以了,這樣只需要5個單向的同步操作。

  Oracle將Golden Gate定位於兩種應用,一是DW中的ETL,另外一種是DR中的數據高可靠性。嚴格來說,Oracle都有將Golden Gate的應用面擴大之嫌,更多的站在產品已有的功能上來想可以用於哪些方面,並希望說服客戶按照Oracle的思路走。Golden Gate作爲一家單獨的公司時,上述的兩個定位是沒錯,但被Oracle收購後,在Oracle的大家族中,再如此定位,Oracle顯然打着多收三五斗的主意。

 

  從ETL來說,任何數據庫都帶自己的ETL工具,Oracle自己的是ODI。Golden Gate相比ODI的優勢是更新頻率快,實時性好,但真正要用到該特性的機會很少。DW的應用通常以天的頻率更新就足夠了,如果實在需要加快,2小時做一次ETL增量操作即可。而且即使Golden Gate將數據ETL到了目標端DW數據庫,如果採用MOLAP的方式做BI,爲了要得到實時性,還必須以非常高的頻率來執行刷新MOLAP Cube的操作,這時BI應用是不可用的。因此要得到Golden Gate實時性的好處,DW應用必須採用ROLAP的方式,該方式速度比MOLAP低,通常用於數據量非常大的高端場合(同樣情況下采用MOLAP,將佔用非常大的磁盤空間),所以真要將Golden Gate用於ETL,只有實時性要求高,數據量非常大的極端場合。

  從DR來說,Golden Gate的優勢是支持異構數據庫,網絡帶寬佔用小。但前一個優勢沒有人會真正使用,由於應用的限制,不會有人在DR Site採用異構數據庫如DB2、SQL Server來容災Oracle數據庫。失去了這個優勢,相信絕大多數的人會採用Oracle的Date Guard來實現DR,一免費(包含在數據庫中),二支持同步模式(Golden Gate其實是異步模式),三Golden Gate要經過兩次Trail File再寫入SQL的過程也相對複雜。所以採用Golden Gate來做DR的機會也是很小的。

  總結來說,Golden Gate能發揮用武之地,必須具備數據實時性要求高,遠端Site點距離很遠(廣域網時延很大,帶寬佔用小的優勢發揮),遠端需要的數據必須經過複雜處理等要求的場合,否則值不回Golden Gate的購買成本,或有更經濟的替代方案。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章