【发布时间】:2021-04-18 10:13:23
【问题描述】:
假设我正在尝试使用 ADF 复制活动将表中的 1000 条记录从数据库复制到 Azure SQL DB/Synapse。如果复制 600 条记录后复制活动失败,是否可以重新运行/重新启动管道,以使复制活动避免复制已复制的记录(在早期运行中复制的 600 条记录)并从剩余的 400 条记录中恢复复制操作?
【问题讨论】:
假设我正在尝试使用 ADF 复制活动将表中的 1000 条记录从数据库复制到 Azure SQL DB/Synapse。如果复制 600 条记录后复制活动失败,是否可以重新运行/重新启动管道,以使复制活动避免复制已复制的记录(在早期运行中复制的 600 条记录)并从剩余的 400 条记录中恢复复制操作?
【问题讨论】:
你可以通过使用水印技术来实现,因为你有 SQL 作为它应该锻炼的源。使用查找活动来获取表主键的最大值(在目标端)。获得该信息后,创建一个 SQL 脚本以从源表中提取数据,但添加过滤器 例如
SELECT from your table
WHERE pkId > '@{activity('Get WaterMark').output.firstrow.pkid}'
这应该可以解决问题。
【讨论】: