如何让Copy Activity迭代失败后仍使Pipeline及For Each Activity成功
解决For Each迭代失败但保持Pipeline成功的方案
核心设置:配置For Each Activity的容错策略
- 打开For Each Activity的设置面板,找到「Failure tolerance」(容错)选项,选择Continue on failure(失败后继续)。这样即使某一次迭代里的Copy Activity执行失败,For Each会跳过该失败项,继续执行剩余迭代,最终整个For Each Activity和Pipeline都会显示成功状态。
可选:添加错误日志记录(方便后续排查)
如果需要追踪哪些文件复制失败,可以给Copy Activity添加「On Failure」分支:
- 在Copy Activity右侧点击「Add activity」,选择「On Failure」触发分支。
- 在分支里添加Web Activity或Copy Activity,将失败的文件名、错误信息写入日志存储(比如SQL表、Blob文件)。可以用
@item().name获取当前迭代的文件名,@activity('Copy Data').error.message提取错误详情。
补充:优化Copy Activity的Schema兼容规则(减少失败概率)
如果想降低Schema不匹配导致的失败频次,可在Copy Activity的「Mapping」标签里调整:
- 启用「Allow schema drift」(允许Schema偏差),同时将「Handle missing columns」(处理缺失列)设为「Ignore missing columns」(忽略缺失列)或「Add as null」(缺失列填充Null)。
- 启用「Skip incompatible rows」(跳过不兼容行),该设置针对行级数据不兼容,适合部分行存在格式问题的场景。
内容的提问来源于stack exchange,提问作者Sumit
相关产品推荐
相关产品推荐

