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

Azure Synapse中ADF复制活动:动态筛选Gen2数据湖含part的CSV文件

在Azure Synapse ADF中动态筛选并复制含“_part”的Gen2数据湖CSV文件

以下是几个直接落地的实用方案,针对你的需求优化:

方案1:Copy活动原生筛选(最简高效)

直接利用ADF Copy活动的原生文件匹配能力,无需额外活动:

  • 配置源数据集时,在文件路径的「文件名」字段填入通配符模式:*_part*.csv
  • 如果需要递归遍历所有子文件夹,勾选「递归」选项,同时将文件名模式改为**/*_part*.csv(**表示任意层级的子目录)
  • 目标数据集保持CSV格式,直接指定目标容器/文件夹,ADF会自动保留原文件名完成复制

这个方案性能最优,适合无复杂附加逻辑的场景,是ADF原生支持的批量筛选复制方式。

方案2:Get Metadata + Filter + ForEach组合(灵活扩展)

如果需要结合文件大小、修改时间等额外条件筛选,用这个组合实现动态控制:

  • Get Metadata活动:数据源指向源Gen2的目标文件夹,勾选「Child items」选项,获取该文件夹下所有文件/子文件夹的元数据
  • Filter活动:输入设置为@activity('Get Metadata').output.childItems,筛选条件写:
    @and(contains(item().name, '_part'), equals(item().type, 'File'), endsWith(item().name, '.csv'))
    
    同时过滤文件类型和后缀,避免误选文件夹或非CSV文件
  • ForEach活动:输入设置为@activity('Filter').output.value,循环内添加Copy活动:
    • 源数据集的文件路径用参数化配置,值设为@item().name,指向筛选后的单个文件
    • 目标数据集同样参数化文件名,保持原文件名和CSV格式

方案3:参数化筛选规则(便于维护)

如果后续可能调整筛选关键词,给管道添加参数(比如@pipeline().parameters.filterKeyword),然后把筛选条件改成@contains(item().name, pipeline().parameters.filterKeyword),这样修改筛选规则时不用改动管道逻辑,直接传参即可。

注意事项

  • 确保源/目标Gen2的链接服务配置了足够权限(如Storage Blob Data Contributor或对应细粒度权限)
  • 若文件数量超过10000,建议开启Copy活动的「并行复制」,根据存储性能调整并发数(默认20)
  • 测试时先上传少量包含4类文件名的测试文件,验证筛选逻辑是否精准

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 14:24:55