变化数据随时都可能生成,因此需要不断的将新的变化同步过去。有两种方法可以完成这个任务。
- 第一种办法可以通过计划实现。例如创建一个计划,每半个小时执行一次同步接口。这样可以每半个小时将变化数据同步到目标。此法需要注意计划的重复间隔,要保证在重复调用之前,上一次调用已经完成,一般可以用于定期同步的需求。
- 第二种办法是在创建一个包,利用ODI 提供的 CDC 相关的工具轮询日记,一旦有了变化就调用同步接口。此法可以满足实时性较高的需求。
1、创建Package
Designer->Projects->“项目名称”->First Folder->Packages,右击选择“New Package”,定义个名称,如下图:
2、设置关系图
2.1 OdiWaitForLogData
在关系图中添加用于 CDC 的工具: OdiWaitForLogData,属性如下图所示: 属性的配置将每1秒钟轮询WEB_CUSTOMER的日记表,直到发现1条变化记录。
2.2 添加映射
拖动映射到右边的关系图,属性如下图所示:
2.2 OdiSleep
在关系图中添加用于 CDC 的工具: OdiSleep,属性如下: 等待1秒,继续轮询。
3、执行包
执行包操作后,会发现这个包会一直在执行,并处于 OdiWaiteForLogData 这一步,如下图: 源表插入数据,SQL如下图: 在Operator中会发现已完成数据同步,并且进入下一个轮询: 当然,如果在源表删除或者更新一条数据,目标表也会同步删除或更新的。