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