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

如何在ADF中将容器文件名传递至Copy Data任务?

实现Azure Data Factory容器文件名传递到Copy Data任务的方案

1. 配置Get Metadata活动获取文件列表

  • 添加Get Metadata活动,数据源选择目标Blob存储容器,勾选Child Items字段,以此获取容器内所有文件的元数据(含文件名、修改时间等)。
  • 若仅需处理新增文件,搭配Filter活动:以Get Metadata输出的childItems为输入,过滤条件设为文件lastModified时间大于上次运行时间(可通过管道变量存储上次运行时间,或直接用触发器触发时间作为判断基准)。

2. 用ForEach活动遍历目标文件

  • 添加ForEach活动,将Get Metadata(或Filter过滤后)的文件列表设为遍历对象,Items属性填写动态表达式:
    @activity('Get Metadata活动名称').output.childItems
    
    过滤后的场景则用:
    @activity('Filter活动名称').output.value
    
  • 根据需求选择是否开启Sequential(顺序处理),默认并行处理。

3. 在ForEach内部传递文件名到Copy Data任务

  • 在ForEach容器内添加Copy Data任务:
    • 源端配置:选择Blob存储,文件路径用动态内容引用当前遍历的文件名:
      @item().name
      
      若需完整路径,可拼接容器名:
      @concat('你的容器名/', item().name)
      
    • 目标端配置:完成Snowflake连接配置后,目标表可固定,也可根据文件名动态生成(例如@concat('schema.target_table_', split(item().name, '.')[0]),需确保Snowflake支持自动建表或提前存在对应表)。

4. 变量辅助新增文件筛选(可选)

  • 创建管道变量(如lastProcessedTime日期变量),管道启动时赋值为上次运行的时间戳(可从管道运行历史读取,或存储在Azure SQL/Blob的配置文件中)。
  • 处理完每个文件后,更新变量为当前文件的lastModified时间,确保后续运行仅处理新增文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 20:07:03