在Azure Data Factory中实现从源到接收器的动态文件名传递
Azure Data Factory 动态文件名传递实现步骤
1. 确认Lookup活动的输出结构
确保Lookup活动返回的数据集包含文件名字段(比如源存储或数据库表中存储的文件名)。For Each活动的Items属性绑定为Lookup的输出结果:
@activity('Lookup文件名列表').output.value
根据处理需求选择是否开启Sequential(顺序执行)模式。
2. 给数据流添加参数
在数据流的参数面板中,创建一个字符串类型的参数(例如FileNameParam),用于接收管道传递的当前迭代文件名。
3. 在For Each中传递文件名到数据流
编辑For Each内的数据流活动,进入参数映射界面,将当前迭代项的文件名字段绑定到数据流参数:
@item().FileName // 此处FileName需与Lookup返回结果中的字段名匹配
4. 在数据流接收器中使用参数
情况1:接收器为存储服务(Blob/ADLS等)
在接收器的文件名配置项中,用表达式引用参数:
@$FileNameParam
如果需要添加后缀或路径,可拼接表达式:
@concat($FileNameParam, '_对比结果.csv')
情况2:接收器为数据库表
如果要将文件名作为字段写入表中,添加派生列活动,新增字段:
FileName = $FileNameParam
然后在接收器的字段映射中,将该派生列映射到目标表的对应字段。
5. 调试验证
- 先单独运行Lookup活动,确认返回的文件名列表正确
- 调试整个管道,检查For Each每次迭代中数据流的参数值是否正确
- 查看接收器输出,确认文件名或表字段值与预期一致
内容的提问来源于stack exchange,提问作者Kunal
相关产品推荐
相关产品推荐

