使用Azure Data Factory无法解压含嵌套文件夹的Zip文件
解决Azure Data Factory解压含嵌套文件夹的Zip文件问题
针对你遇到的Zip内嵌套文件夹导致ADF复制活动解压异常的问题,有两种可行的解决办法:
方法一:调整复制活动的源配置
默认情况下,ADF复制活动只会读取Zip根目录的内容,当Zip内有顶层文件夹时,会把整个文件夹当成单个二进制文件输出。你可以通过以下设置修正:
- 打开源数据集的压缩设置,勾选「递归」选项,同时在文件筛选中填入
**(匹配所有层级的子文件),让ADF遍历Zip内的嵌套结构,识别出所有实际文件。 - 目标数据集的复制行为选择「扁平化层次结构」,这样提取的所有文件会直接输出到目标文件夹,不会保留原嵌套目录。
方法二:用Azure Function自定义解压逻辑
如果方法一无法满足需求(比如Zip结构复杂),可以通过Azure Function实现自定义解压:
- 编写Python或C#函数,逻辑为:读取ADLS中的Zip文件,解压时跳过顶层文件夹,直接将内部文件写入目标ADLS路径。
- 在ADF管道中添加「Azure Function活动」,传入Zip文件的ADLS路径和目标路径作为参数,调用函数完成解压。
注意事项
- 确保ADF使用的服务主体对ADLS存储拥有完整的读写权限,包括访问源Zip文件和写入目标文件夹。
- 若Zip文件体积较大,需调整Azure Function的超时时间,避免运行中断。
内容的提问来源于stack exchange,提问作者Dev Anand
相关产品推荐
相关产品推荐

