处理插入、更新和删除
适用于: SQL Server Azure 数据工厂中的 SSIS Integration Runtime
在用于执行变更数据的增量加载的 Integration Services 包的数据流中,第二个任务是分隔插入、更新和删除操作。 然后,可以使用相应的命令将它们应用到目标。
注意
为执行变更数据增量加载的包设计数据流的过程中,第一个任务是配置用于运行查询以检索变更数据的源组件。 有关此组件的详细信息,请参阅 检索和了解变更数据。 有关创建用于执行变更数据增量加载的包的完整过程的说明,请参阅变更数据捕获 (SSIS)。
关联友好值以分隔插入、更新和删除操作
在检索变更数据的示例查询中,cdc.fn_cdc_get_net_changes_<capture_instance> 函数仅返回名为 __$operation 的元数据列。 此元数据列包含一个序号值,该值指示哪个操作导致更改。
注意
有关使用和调用 cdc.fn_cdc_get_net_changes_<capture_instance> 函数的查询的详细信息,请参阅创建函数以检索变更数据。
将序号值与其相应的操作匹配,不像使用操作的助记键那样容易。 例如,D 可以简便地表示删除操作,而 I 则可表示插入操作。 在主题 创建函数以检索变更数据中创建的示例查询执行了此转换,即将序号值转换为新列中返回的友好字符串值。 下面的代码段显示了此转换:
select
...
case __$operation
when 1 then 'D'
when 2 then 'I'
when 4 then 'U'
else null
end as CDC_OPERATION
配置有条件拆分转换以定向插入、更新和删除操作
若要将变更数据行定向到三个输出中的一个输出,有条件拆分转换是理想的选择。 该转换只是检索各行中 CDC_OPERATION 列的值,并确定该变更是插入操作、更新操作还是删除操作。
注意
CDC_OPERATION 列包含一个从 __$operation 列中的数值派生的友好字符串值。
使用有条件拆分转换拆分要进行处理的插入、更新和删除操作
在 “数据流” 选项卡上,添加一个有条件拆分转换。
将 OLE DB 源的输出连接到有条件拆分转换。
在 “有条件拆分转换编辑器”的下部窗格中,输入下面三行以指定三个输出
输入条件为
CDC_OPERATION == "I"
的行,以将已插入的行定向到插入操作的输出。输入条件为
CDC_OPERATION == "U"
的行,以将已更新的行定向到更新操作的输出。输入条件为
CDC_OPERATION == "D"
的行,以将已删除的行定向到删除操作的输出。
下一步
在拆分要处理的行之后,下一步是将更改应用到目标中。
下一主题:将变更应用到目标