ADF Copy Activity附加列无法输入函数及自定义值问题求助
提问:Azure Data Factory Copy Activity附加列无法输入自定义值问题
我创建了一条Azure Data Factory管道,其中包含For Each活动,该活动内部嵌套了用于向Azure SQL插入数据的Copy Data活动。我需要使用Additional columns功能时遇到异常:系统仅允许我选择$$FILEPATH作为取值,无法在VALUE组合框中输入任何自定义内容或函数。
操作演示动图如下:
请问是否有其他开发者遇到过相同问题?
回答
这个是Azure Data Factory的预期设计行为,不是故障,触发条件是你当前Copy Data活动的源数据集配置为Binary格式。当源为二进制格式时,ADF默认仅开放$$FILEPATH这一个内置系统变量作为附加列可选值,锁定了自定义值/表达式的输入权限。
可直接落地的解决方法
- 如果你读取的是CSV/Parquet/JSON等结构化文件,直接把源数据集的格式从
Binary修改为对应文件的实际格式,保存后刷新附加列配置页面,Value输入框就会自动解锁,支持输入静态值、动态表达式、系统函数等任意自定义内容。 - 如果你确实需要使用Binary格式读取源文件,不需要改动源数据集配置,直接切换到Copy Data活动的映射页签,点击「新建列」即可添加自定义字段,支持输入任意静态值或动态表达式,最终写入Azure SQL的效果和源端附加列完全一致。
- 如果你要附加的是For Each循环的当前项相关取值,也可以直接在Sink端的预执行脚本、或者目标字段映射中直接引用
@item()相关表达式,无需通过附加列配置。
内容的提问来源于stack exchange,提问作者Rob Bowman
相关产品推荐
相关产品推荐

