前几天参加了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的购买成本或有更经济的替代方案