(内容有借鉴其他文档,亲身实践成功~)
需求:
table_02作为目标表,需要实时的与源数据表table_01同步(即table_01更新或者是插入或者是删除了一行记录,table_02能够实时的同步此操作----此处设置为延时10s同步------已经很了不得了 好伐!!!~~)
工具:
ODI 11g,plsql,ORACLE 11G
正文:
1.前期准备:
新建表table_01,table_02,在表table_01中插入几行记录:
在ODI中新建接口实现table_01送数给table_02-----I_table01_to_02
(由于前边的内容比较简单,具体过程略)
2.添加CDC(此处用的是SIMPLE模式):
2.1.在反向的模型中启用日志记录,选择对应的知识模块-----JKM Oracle Simple:
2.2:添加CDC:
找到模型中的table_01,右击---->"已更改数据捕获"----->添加CDC;
注:被添加cdc的表一定是含有主键的表,否则会报错
2.3:订阅订户:
找到模型中的table_01,右击---->"已更改数据捕获"----->订户----->订阅;
2.4:启动日志:
找到模型中的table_01,右击---->"已更改数据捕获"----->启动日志;
3.新建包完成实时同步:
3.1新建包:
3.2:如下第一步是OdiWaitForLogData;
3.3:之前做的接口作为第二步(略):
需要在“仅已进行日记记录的数据上”打勾:
3.4:OdiSleep:
保存!!!
执行!!!
接下来,这个包就一直处于"正在运行"状态,每隔10s就会检查一次源表table_01是否更新,然后同步到table_02目标表中