查看: 1326|回复: 0

[Oracle数据库] Oracle ODI 12c之Setting Up Simple CDC

发表于 2018-3-8 08:00:02

本文介绍如何使用Oracle ODI 12c的Simple CDC。它是最简单的一种 CDC。这种模式下,每一张 CDC 的表的变化都是独立捕获的,不需要考虑多张存在主外键引用关系的表之间的数据一致性。

1、导入知识模块

在此之前,已经所有的知识模块导入,而CDC功能的知识模块如下图所示:
Oracle ODI 12c之Setting Up Simple CDC

2、设置模型CDC参数

打开对应的模型,设置Journalizing Mode为Simple,如下图:
Oracle ODI 12c之Setting Up Simple CDC

3、CDC配置 3.1 添加datastores

在模型中,右击要添加到CDC的表,如下图所示进行添加或者删除操作:
Oracle ODI 12c之Setting Up Simple CDC
在模型的Journalizing Tables中可以查看到,如下图:
Oracle ODI 12c之Setting Up Simple CDC

3.2 启动journals

在模型中,右击已添加到CDC的表,如下图所示启动或者关闭journal:
Oracle ODI 12c之Setting Up Simple CDC
启动完日志后,图标的左上角会出现一个绿色的小时钟图案,说明已成功设置。

4、初始化数据

此步骤根据实际情况而定。

4.1 创建映射

映射图如下所示:
Oracle ODI 12c之Setting Up Simple CDC

4.2 设置target的integration type

注意,在映射图的logical结果中,点击目标表,设置Target的Integration Type为Control Append,如下图所示:
Oracle ODI 12c之Setting Up Simple CDC

4.3 设置Loading Knowledge Module

Oracle ODI 12c之Setting Up Simple CDC

4.4 设置Integration Knownledge Module

Oracle ODI 12c之Setting Up Simple CDC
如果在初始化数据之前,想清空目标表,可以设置truncate_target_table和delete_all参数的值为true。

4.5 目标表导入初始化数据

在启动映射之前,先校检下映射。执行结果如下图:
Oracle ODI 12c之Setting Up Simple CDC
到此,初始化数据已导入目标表。

5、同步变化数据 5.1 设置源数据存储

设置源表只同步有变化的数据。选择源数据存储,选中“Journalized Data Only”,如下图:
Oracle ODI 12c之Setting Up Simple CDC

5.2 设置Loading Knowledge Module

这里需要设置Loading Knowledge Module的模式为“LKM SQL To Oracle”。如下图:
Oracle ODI 12c之Setting Up Simple CDC

5.3 设置Integration Knownledge Module

设置Integration Knownledge Module的模式为“IKM Oracle Incremental Update”。如下图:
Oracle ODI 12c之Setting Up Simple CDC
最后,保存所有设置。

5.4 源数据存储插入新数据

Oracle ODI 12c之Setting Up Simple CDC
然后,在模式中,选择源数据存储查看新增的数据,如下图:
Oracle ODI 12c之Setting Up Simple CDC
Oracle ODI 12c之Setting Up Simple CDC

5.5 目标同步数据

Oracle ODI 12c之Setting Up Simple CDC
Oracle ODI 12c之Setting Up Simple CDC
数据同步完之后,源表的Journalized Data就会被清除。ODI 同步完一张表的变化数据后,相应的订户的日记数据将被清空。这种方式非常简单,但是对于多张存在主外键引用关系的表的数据同步将会有可能造成数据不一致的情况。对于这种复杂的情况需要一致性 JKM,此模块在后面介绍。



回复

使用道具 举报