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

使用Azure Data Factory将S3中40万指定文件迁移至Azure Data Lake Gen2咨询

基于ADF内置活动的实现方案

以下方案仅使用ADF原生预定义功能,无需引入额外计算服务,可适配40万级文件路径的批量校验+下载需求,同时解决监控记录过多、缺失路径导致流水线失败的问题。

方案1(优先推荐:无循环、监控记录极少)

通过映射数据流的关联逻辑自动过滤不存在的S3文件,全程仅生成2-3条活动运行记录:

  • 第一步:使用Lookup活动读取ADLS Gen2中存储的CSV路径清单,关闭仅返回第一行选项,输出所有路径记录(ADF Lookup默认支持最多50万条单批次输出,可直接覆盖40万条路径需求)。
  • 第二步:创建映射数据流,配置两个源:
    1. 源1为ADLS Gen2的路径清单CSV,输出字段保留S3文件路径列(假设列名为s3_path)
    2. 源2为S3存储桶,格式选择二进制(适配任意文件类型下载),通配符路径填**,勾选递归,开启允许没有文件容错选项,同时勾选输出系统列FilePath(即为S3存储桶内现有文件的完整路径)
  • 第三步:在数据流中添加内连接转换,关联条件为源1.s3_path == 源2.FilePath,通过内连接自动过滤掉CSV中不存在于S3的路径。
  • 第四步:配置数据流Sink为目标存储(如ADLS Gen2),直接写入关联后的S3文件内容即可,所有不存在的路径会被自动跳过,不会触发报错。

方案2(适配S3存储桶文件量极大、全量扫描成本过高的场景)

使用批次ForEach控制运行记录量级,40万条路径仅生成千级运行记录:

  • 第一步:同样通过Lookup活动读取CSV路径清单,输出路径数组。
  • 第二步:添加ForEach活动,传入路径数组,开启批次执行模式,批次大小配置为100-500(可根据实际需求调整,数值越大运行记录越少),开启并行执行。
  • 第三步:在ForEach活动内部,先调用Get Metadata活动校验当前批次内的S3文件是否存在,过滤掉不存在的路径后,再调用Copy活动批量下载当前批次的有效文件。
  • 关键配置:Copy活动开启容错下的跳过缺失文件、跳过不兼容文件选项,避免偶发的文件删除导致流水线中断。

注意事项

  • 若下载的是结构化数据文件,可将数据流S3源的格式修改为对应文件格式(如CSV、Parquet),无需使用二进制格式。
  • 映射数据流运行时请选择合适的Integration Runtime配置,40万级文件校验建议配置4-8个核心,避免运行时间过长。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:24:04