适用于:
SQL Server
Azure 数据工厂中的 SSIS Integration Runtime
在主题
通过变更数据捕获改善增量加载
中,关系图演示的是仅对一个表执行增量加载的基本包。 但是,加载一个表并不像执行多个表的增量加载那样常见。
在执行多个表的增量加载时,有些步骤必须对所有表执行一次,而有些步骤则必须针对每个源表重复执行。 在 Integration Services 中提供了多个用于实现这些步骤的选项:
使用父包和子包。
在一个包中使用多个数据流任务。
使用一个父包和多个子包来加载多个表
可以使用父包来执行只需执行一次的步骤。 子包将执行针对各源表的步骤。
创建父包。
在控制流中,使用执行 SQL 任务或 Integration Services 表达式来计算终结点。
有关如何计算端点的示例,请参阅
指定变更数据的间隔
。
如果需要,可使用 For 循环容器来延迟执行,直到所选周期的变更数据准备就绪。
有关 For 循环容器的示例,请参阅
确定变更数据是否已准备就绪
。
使用多个执行包任务针对每个要加载的表执行子包。 使用父包变量配置将父包中计算的端点传递到各个子包。
有关详细信息,请参阅
执行包任务
和
在子包中使用变量和参数的值
。
应为每个源表各创建一个子包。
在控制流中,使用脚本任务或执行 SQL 任务汇集将用于查询变更的 SQL 语句。
有关如何汇集查询的示例,请参阅
准备查询变更数据
。
在每个子包中使用一个的数据流任务加载变更数据,并将变更数据应用到目标。 按照下面的步骤说明配置数据流:
在数据流中,使用源组件来查询变更表中在所选端点内发生的变更。
有关如何查询变更表的示例,请参阅
检索和了解变更数据
。
使用有条件拆分转换将插入、更新和删除操作定向到不同的输出,以便于进行适当的处理。
有关如何配置此转换以定向输出的示例,请参阅
处理插入、更新和删除
。
使用目标组件将插入操作应用到目标。 使用具有参数化的 UPDATE 和 DELETE 语句的 OLE DB 命令转换,将更新和删除操作应用到目标。
有关如何使用此转换来应用更新和删除操作的示例,请参阅
将变更应用到目标
。
有关如何配置此转换以定向输出的示例,请参阅
处理插入、更新和删除
。
使用目标组件将插入操作应用到目标。 使用具有参数化的 UPDATE 和 DELETE 语句的 OLE DB 命令转换,将更新和删除操作应用到目标。
有关如何使用此转换来应用更新和删除操作的示例,请参阅
将变更应用到目标
。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:
https://aka.ms/ContentUserFeedback
。
提交和查看相关反馈