Azure Data Factory 使用控制表实现源到目标数据加载的报错咨询
Azure Data Factory Copy Activity 报错"Table is required for Copy Activity" 解决方案
核心原因
该报错是ADF 2022年后版本更新的数据集必填项校验逻辑导致的:就算你在Copy Activity源端选择Use Query模式传入了自定义查询语句,对于SQL类数据源(Azure SQL、SQL Server、PostgreSQL等),ADF仍会校验源数据集是否配置了Schema、Table参数,没有配置就会触发该报错,和你控制表内的ExtractSQL逻辑无关,这也是你之前可以正常运行、现在复现失败的核心原因。
具体解决步骤
- 第一步:修改源端数据集配置
打开Copy Activity绑定的源数据集,在Schema、Table输入框中填写任意静态占位值即可,比如Schema填dummy、Table填dummy,不需要对应真实存在的库表。如果后续需要适配多表直接查表的场景,也可以把这两个参数设置为动态值,分别绑定@item().SourceSchemaName、@item().SourceTableName - 第二步:确认Copy Activity源端配置生效
回到ForEach活动嵌套的Copy Activity配置页,源端的查询选项要明确选择自定义查询(部分旧版本界面叫Query),确认动态表达式为@item().ExtractSQL,不要误选表或存储过程选项 - 第三步:校验控制表数据合法性
可以先单独取一条控制表的测试数据,手动填入Copy Activity的查询框做单任务测试,排除ExtractSQL语法错误掩盖配置问题的可能
效果验证
完成上述配置后重新运行全量管道,Lookup拉取的控制表参数可以正常传递给Copy Activity,自定义查询逻辑会覆盖数据集的占位表配置,不会再触发表必填的校验报错。
内容的提问来源于stack exchange,提问作者Gav Cheal
相关产品推荐
相关产品推荐

