Oracle Data Integrator的一个强大功能就是通过CDC(Changed Data Capture)抓取异构数据库之间的数据变化,并将这些数据同步到目标数据库中。比如说从Sybase ASE或者IBM DB2中将大量的产品数据定期通过CDC同步到Oracle数据仓库中,反之亦可以。
以下描述最简单的在ODI中设置CDC复制的步骤,只是一个大体步骤,可能有些细节会遗漏。
1. Designer -> Models -> Datastore,创建一个源表和一个目标表的Datastore,可以通过反向工程完成。当然之前需要在Topology Manager中的相应Technologies里添加Physical Architecture和Logical Architecture。
2. 设置Model的Journalizing属性,选择合适的JKM(Journalizing Knowledge Module),当然之前需要将合适的JKM导入到ODI中来。
3. 将源表的Datastore加入CDC。
4. 启动Journal (将会在源表所在的Schema中自动创建相应的Trigger,假设我们是用Trigger的方式而不是Logminer技术的话),为了能够正常启动Journal,源表必须具有主键。
5. 在目标表的Datastore中添加Subscriber,命名最好是默认的大写SUNOPSIS。
6. Designer -> Projects -> Interfaces,创建一个Interface,在Diagram页面做好源表和目标表字段之间的Mapping关系,注意,在源表属性中勾选“Journalized Data Only”选项。
7. 启动Schedualer Agent,参看我的上一篇文章。
8. 为Interface创建Scenario,再设置Scenario中的Scheduling。注意,设置Scheduling的时候,如果计划运行间隔是一小时以上,那么使用“Defination”页面,如果计划运行时间间隔在一小时以下(比如5分钟或者10秒钟一次),那么应该使用“Execution Cycle”页面,而“Defination”页面中的Execution部分应该设置为“On startup”而不是默认的“Simple”。
9. 运行该Scenario,可以在Operator中监控Scenario的运行情况。
该文章似乎只适用于我自己的备忘,而完全不能作为他人学习的参考文档来使用,如果想从头学习ODI,请去仔细阅读安装ODI时自带的Documentation Library,非常详细,原来SUNOPSIS的文档功力也是一流。
好详细的教程!
多谢!
已经很不错了。
啥时候你把我msn加了,
等两天有机会到上海office来坐坐。