前几天参加了Oracle Golden Gate实时数据集成研讨会,这里总结和分析一下Oracle的数据集成家族产品。
在数据集成方面,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,反正工作量都少不了。