如何通过Azure Data Factory高效筛选复制Azure Blob存储中的百万级Zip文件
使用Azure Data Factory筛选复制Blob存储中的指定文件
前置准备
- 确认源、目标Blob容器已创建,且ADF实例具备访问两个容器的权限(可通过托管身份或SAS密钥配置)
核心筛选配置
针对文件名格式Energy_ReportName_Timestamp_VersionNumber.zip,要筛选指定ReportName和日期的Zip文件,有两种高效实现方式:
方式1:文件名通配符(推荐,简单高效)
在源Blob数据集的配置中:
- 勾选「通配符文件路径」选项
- 填写文件名通配符:
Energy_Payment_20231209*.zip- 说明:
*会匹配日期后的所有字符(包括Timestamp和VersionNumber部分),精准锁定目标文件范围
- 说明:
方式2:正则表达式筛选(适配复杂场景)
如果需要更严谨的格式校验,可在源数据集的「筛选器」中配置正则表达式:
- 正则表达式示例:
^Energy_Payment_20231209\d{6}_.*\.zip$- 拆解:
^匹配文件名起始Energy_Payment_20231209固定匹配指定的ReportName和日期\d{6}匹配Timestamp的6位时分秒(如示例中的110007)_.*匹配无规律的VersionNumber部分\.zip$匹配文件名结尾的.zip后缀
- 拆解:
千万级文件复制优化
针对1000万级文件量,需调整配置提升复制效率:
- 开启并行复制:在复制活动的「设置」中,调高最大并行数(建议从32开始,根据存储带宽和ADF容量逐步调整)
- 启用批量处理:ADF默认会批量扫描和复制文件,无需额外配置,避免逐文件处理的性能损耗
- 精准筛选:确保通配符或正则表达式足够精准,减少不必要的文件扫描范围
- 跳过重复文件:若目标容器可能存在重复文件,可在复制活动设置中开启「跳过重复」,避免无效复制
测试与运行
- 先做小批量验证:修改通配符为
Energy_Payment_2023120900*.zip,复制少量文件确认筛选和复制结果正确 - 验证无误后,执行全量复制任务
内容的提问来源于stack exchange,提问作者Mohammad
相关产品推荐
相关产品推荐

