You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Data Factory(Upsert)复制表时目标端部分表记录数偏多

Data Factory Upsert后部分表目标记录数多于源表的原因
  • 键列定义错误或不完整:如果源表的唯一标识是多字段组合,但ADF的Upsert仅配置了部分字段作为键列,会导致源表中实际唯一的记录被判定为不同键值,每次管道运行都会插入新记录;另外,源与目标库的键列数据类型不匹配(如源为int、目标为varchar),会导致匹配失败,本该更新的记录被当作新记录插入,最终目标表记录数超标。

  • 未同步源表的删除操作:Upsert仅处理更新/插入逻辑,不会自动删除源表中已移除的记录。如果源表有记录被删除,但管道未配置对应的删除同步逻辑(如通过对比源目标数据后执行删除),目标表会保留这些已失效的记录,导致数量多于源表。

  • 目标表无唯一约束:ADF的Upsert依赖目标表的键列存在唯一索引或约束,否则无法准确判断记录是否已存在。若目标表未配置该约束,可能导致同键记录被多次插入,积累后目标表记录数超过源表。

  • 源数据查询逻辑存在重复:如果复制活动的源查询语句存在问题(如错误使用UNION ALL导致重复读取、或未正确过滤重复数据),每次运行都会返回重复的源记录,这些重复记录会被Upsert逻辑当作新记录插入(若键列无法匹配),最终导致目标表记录冗余。

  • 管道重复运行的重试/重复触发:若管道因故障重试、或被手动重复运行,而源数据在两次运行间未发生变化,但由于匹配逻辑异常(如键列数据转换错误),ADF无法识别已存在的记录,会再次插入相同数据,造成目标表记录数增加。

内容的提问来源于stack exchange,提问作者BlakeB9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 14:22:20