我有一个包含复制数据任务的管道,我将一些数据从 On-Prem SQL 更新插入到 Synapse 中。设置是这样的,我首先建立表列表,然后在 ForEach 中动态设置键列(来自变量)并执行更新插入。奇怪的是,复制数据任务偶尔会失败并出现此错误
ErrorCode=SqlUpsertKeyColumnsInvalid,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Sql upsert 键列“[some-column-name]”在表中不存在'[某些架构名称].[InterimTable_9688bbfd-bb01-4a10-b6f6-9832bcb12512]'.,Source=Microsoft.DataTransfer.ClientLibrary,'
当我重新运行管道时,一个表的错误消失,但另一个表可能会出现错误。此复制操作涉及大约 100 个表,并且更新插入的数据量并不大(至少几百条记录)。
提前谢谢您!
如果通过并行执行循环来执行此操作,则该变量可能会被其他并行执行覆盖。 为了避免这种情况,您需要停用并行执行或在循环中执行另一个管道。辅助管道需要循环中使用的参数,并且不会让它们被并行循环覆盖。