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

Azure Data Factory复制作业列不存在报错,跨环境异常排查求助

解决ADF复制作业UserErrorInvalidColumnName报错问题

问题背景

复制作业在验收/生产环境报错:

Operation on target Copy data to staging table failed: Failure happened on 'Sink' side.
ErrorCode=UserErrorInvalidColumnName,
'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,
Message=Column name <some_column> is not found in the source table.,
Source=Microsoft.DataTransfer.DataContracts,'

已知条件:

  • <some_column>仅存在于Sink端,未在复制作业中配置复制该列
  • 开发环境运行正常,验收/生产环境失败
  • 所有环境通过Terraform部署,配置代码一致

排查与解决步骤

  • 检查自动映射设置:
    若复制作业开启了「自动映射」,ADF会自动匹配Sink端所有列,即使未手动配置映射。此时需:

    1. 进入作业的「映射」标签页,关闭「自动映射」;
    2. 或编辑映射规则,将<some_column>从映射列表中移除,或设置为「忽略」状态。
  • 验证源表Schema一致性:
    尽管配置代码一致,验收/生产环境的源表可能存在Schema隐性差异(如开发环境曾有该列后删除,ADF元数据缓存未更新):

    1. 在ADF中刷新源数据集的Schema,重新发布作业;
    2. 检查Terraform代码中源数据集的Schema定义,确认无硬编码的<some_column>列名。
  • 调整Sink端Schema漂移与验证设置:
    若未开启「允许架构漂移」,ADF会严格校验源与Sink的列匹配关系,即使未配置复制该列也会报错:

    1. 在作业的Sink设置中开启「允许架构漂移」;
    2. 或为Sink端的<some_column>配置默认值/常量映射,确保ADF无需从源表获取该列数据。
  • 排查Terraform部署的隐性差异:
    对比开发与生产环境的ADF作业实际配置(而非仅代码):

    1. 导出两个环境的ARM模板,对比映射规则、Sink设置、源数据集配置;
    2. 确认不同环境的源数据集连接字符串指向的是同结构的表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 23:18:12