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

能否通过ADF的Copy Activity复制Azure存储账户的全部容器及数据?

使用Azure Data Factory Copy Activity复制存储账户所有容器及数据的可行性与实现步骤

可行,不过Copy Activity本身无法直接批量遍历所有容器,需要结合ADF的Get Metadata和ForEach Activity来实现全容器复制,具体步骤如下:

1. 配置源/目标存储账户链接服务

  • 在ADF中创建两个Azure Blob Storage链接服务,分别对应源和目标存储账户。确保链接服务使用的身份(托管身份、服务主体或账户密钥)拥有Blob Data Contributor或更高权限,能访问存储账户的容器及数据。

2. 获取源存储账户的容器列表

  • 添加一个Get Metadata Activity:
    • 数据源关联源存储账户的链接服务,数据集的容器名留空(或设为@null);
    • 在Activity的"字段"设置里勾选Child items,运行后就能获取源存储账户下所有容器的列表。

3. 遍历容器列表执行复制

  • 添加ForEach Activity,将其输入设置为@activity('你的Get Metadata Activity名称').output.childItems,以此遍历所有容器;
  • 可选开启Sequential模式(按顺序复制),如果追求复制速度可以关闭,并行处理(注意不要超过存储账户的并发请求限制)。

4. 在循环内配置Copy Activity

  • 在ForEach的循环体中添加Copy Activity:
    • 源数据集:关联源存储账户链接服务,容器名设为@item().name(动态引用当前遍历的容器),无需额外过滤即可复制容器内所有数据;
    • 目标数据集:关联目标存储账户链接服务,容器名同样设为@item().name,目标存储账户会自动创建同名容器;
    • 复制行为选择Preserve hierarchy,保持原文件目录结构;根据数据量调整并行复制数等性能参数。

5. 测试运行流水线

  • 保存流水线后触发测试,验证每个容器的文件是否完整复制到目标存储账户。

注意事项

  • 权限问题:提前确认链接服务的身份对源/目标存储账户都有读写权限,避免访问被拒;
  • 限流问题:大量容器并行复制时,要注意Azure存储账户的请求速率限制,必要时降低并行数;
  • 增量同步:如果后续需要定期同步,可在Copy Activity中配置基于最后修改时间的增量复制规则,搭配ADF触发器自动运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 17:00:12