使用Informatica的CDC(Change Data Capture)功能实现。可按照以下步骤操作:
创建源和目标数据库连接,在Informatica中可以使用JDBC连接方式。
在PowerCenter Designer中创建一个CDC Control任务,指定需要捕获变更的表。
在CDC Control任务中创建一个CDC Mapping任务,指定需要捕获的字段及其类型。此步骤可使用Power Center Designer的CDC Editor工具进行操作。
在CDC Mapping任务中设置CDC条件,例如捕获INSERT、UPDATE、DELETE等操作。
在CDC Mapping任务中创建Source Qualifier转换,源表使用变更表,目标表使用所有需要捕获的字段。
在CDC Mapping任务中创建一个Update Strategy转换,用于判断是否需要更新目标表。
在CDC Mapping任务中创建一个Target转换,指定目标表及相应字段。
示例代码如下(基于Informatica 9.0版本):
JDBC Source Connection:jdbc:oracle:thin:@localhost:1521:ORCL
JDBC Target Connection:jdbc:oracle:thin:@localhost:1521:ORCL
a. 创建一个新的CDC Control任务,命名为“CDC_Test_Control”。
b. 在“CDC_Test_Control”任务中,选择需要捕获变更的表,例如“EMPLOYEE”表。
a. 创建一个新的Mapping任务,命名为“CDC_Test_Mapping”。
b. 在“CDC_Test_Mapping”中,指定需要捕获的字段及其类型。
c. 在“CDC_Test_Mapping”中,设置CDC条件,例如捕获INSERT、UPDATE、DELETE等操作。
a. 在“CDC_Test_Mapping”中创建Source Qualifier转换。
b. 在Source Qualifier中,选择上一步中指定的变更表“EMPLOYEE”。
c. 在Source Qualifier中,选择所有需要捕获的字段。
a. 在“CDC_Test_Mapping”中创建Update Strategy转换。
b. 在Update Strategy中,使用表达式判断是否需要更新目标表。例如:
IIF (CMP_OPCODE = 3, DD_DELETE, DD_INSERT_UPDATE)
a. 在“CDC_Test_Mapping”中创建Target转换。
b. 在Target转换中,指定目标表及相应字段。
c. 完成以上操作后,可以保存并运行CDC Mapping任务。
通过以上步骤,即可实现类似Power Exchange的CDC功能,将数据库中的数据变更捕获到Informatica中,并存储到目标表中。