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

如何在Azure Data Factory中遍历Blob文件夹解压zip并加载CSV到SQL表

Azure Data Factory 解压Blob中zip文件并导入SQL的实现方案

前置资源准备

提前在ADF中创建好三类链接服务:

  • 源存储链接服务:指向存储productblob容器的Azure存储账号
  • 输出存储链接服务:可复用源存储的链接服务,提前在存储账号中新建空容器unzip-output用于存放解压后的csv文件
  • 目标SQL链接服务:指向需要导入数据的SQL数据库实例

现有Foreach迭代器内部逻辑调整

你已经完成了文件夹遍历逻辑,只需在Foreach活动的循环体内新增以下3个活动即可:

1. 解压zip文件的复制活动

ADF原生复制活动支持zip格式自动解压,无需额外编写代码:

  • 源配置:选择Azure Blob存储的二进制数据集,路径通过动态表达式拼接为当前迭代到的文件夹下的对应zip文件,源设置页勾选「压缩」选项,压缩类型选择ZipDeflate
  • 接收器配置:选择Azure Blob存储的二进制数据集,路径指向unzip-output容器,接收器设置页勾选「解压缩文件」
  • 运行该复制活动后,zip包内的csv文件会直接解压输出到unzip-output容器中

2. 通用csv数据集配置

创建一个csv格式的数据集,指向unzip-output容器,无需指定固定文件名,按你实际csv文件的结构配置列分隔符、编码、是否包含表头即可,因为三个csv结构完全一致,ADF可自动识别所有匹配的文件。

3. 导入SQL的复制活动

以上述csv数据集作为源,目标SQL表作为接收器运行复制活动,即可将解压后的csv数据导入到目标SQL表中。如果需要单批次仅导入当前迭代对应的单份csv,可给csv数据集新增文件名参数,通过动态表达式传入当前迭代对应的csv文件名即可。

可选简化方案(无需Foreach迭代器)

如果没有单文件夹单独处理的业务要求,可直接省略Foreach迭代器,两步完成全流程:

  1. 单个复制活动直接递归遍历productblob容器下所有zip文件,一次性全部解压到unzip-output容器
  2. 单个复制活动批量读取unzip-output下所有csv文件,一次性导入目标SQL表,流程更简洁高效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:48:04