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

如何通过ADF管道活动仅复制目标ADLS中不存在的文件?

解决ADF仅复制目标不存在文件的方案

核心思路

先筛选出源端存在但目标端缺失的文件列表,再逐个复制这些文件,避免复制活动遍历整个源容器。

具体步骤

1. 获取源端全量文件列表

添加Get Metadata活动,配置源为你的ADLS源容器,Field list选择Child items,以此获取源端所有文件(a.txt、b.txt、c.txt)的名称及属性。

2. 获取目标端已存在文件列表

再添加一个Get Metadata活动,配置目标为ADLS目标容器,同样选择Field list为Child items,得到目标已有的文件(a.txt、c.txt)列表。

3. 筛选出待复制的文件

添加Filter活动:

  • 输入集合选择第一个Get Metadata活动的output.childItems
  • 筛选条件填写表达式:
    @not(contains(activity('目标端Get Metadata活动名称').output.childItems, item().name))
    
    该表达式会逐一校验源文件名是否存在于目标列表中,最终得到仅包含b.txt的待复制列表。

4. 循环复制筛选后的文件

添加ForEach活动:

  • 遍历集合选择Filter活动的output.value
  • 在ForEach内部添加Copy活动:
    • 源数据集的文件路径设置为 @item().name,指定单个待复制文件
    • 目标数据集的文件路径同样设置为 @item().name,确保文件精准写入目标位置

问题排查

  • 之前用If活动无效的原因:If活动仅能判断单个全局条件,未对源文件做逐个筛选,复制活动仍会读取整个源容器的所有文件,导致全量复制。
  • 注意ADLS文件名区分大小写,确保Get Metadata获取的文件名与目标端完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:47:05