如何在复制数据活动的预复制脚本中访问Blob存储源数据
在复制数据活动预复制脚本中访问源Blob文件的方法
要在接收器的预复制脚本中访问源Blob存储的文件,核心是利用Azure Data Factory(ADF)的系统变量/数据集参数传递源文件的关键信息,具体分两种常见场景:
场景1:源为单个指定文件
- 给源Blob数据集添加参数(比如命名为
SourceFilePath),并在数据集的文件路径配置中引用该参数(例如@dataset().SourceFilePath)。 - 在复制数据活动的「源」设置里,为这个参数赋值(比如填写具体Blob文件路径:
container-name/folder/file.csv)。 - 在接收器的预复制脚本中,通过活动输入参数引用源文件路径,格式为:
若仅需文件名部分,可结合字符串函数提取:@activity('你的复制活动名称').inputs[0].parameters.SourceFilePath@split(activity('你的复制活动名称').inputs[0].parameters.SourceFilePath, '/')[sub(length(split(activity('你的复制活动名称').inputs[0].parameters.SourceFilePath, '/')),1)]
场景2:源为批量文件(通配符/文件列表)
如果复制活动处理多个源文件,需配合ForEach活动迭代文件列表:
- 用Lookup活动获取Blob存储中的目标文件列表(返回每个文件的
name和path属性)。 - 在ForEach活动中调用复制数据活动,将当前迭代的文件信息传递给源数据集的参数。
- 在复制活动的预复制脚本中,直接引用迭代项的属性:
@item().name // 获取当前文件名 @item().path // 获取当前文件的完整路径
注意:预复制脚本通常用于接收器的预处理操作(比如SQL的TRUNCATE表),若需读取源Blob内容做转换,建议先通过Lookup活动或数据流动读取文件内容,再将结果传递给后续脚本使用。
内容的提问来源于stack exchange,提问作者Krushna
相关产品推荐
相关产品推荐

