Azure Data Factory V1如何将批处理管道的输入输出改为Data Lake Store
把Azure Data Factory V1的输入/输出从Blob存储切换到Data Lake Store的实操指南
我之前在ADF V1里折腾过类似的切换,踩了不少坑,给你整理下完整的步骤和关键注意点:
1. 先配置Data Lake Store链接服务
首先得在ADF V1中创建对应的ADLS链接服务,这是基础:
- 选择Azure Data Lake Store作为链接服务类型,认证方式推荐用服务主体(稳定性更高)
- 填写ADLS账户名、服务主体的客户端ID、密钥、租户ID,这些信息要从Azure Active Directory里准确获取
- 一定要点击「测试连接」确保连通性,这一步通不过后面全白搭
2. 创建适配ADLS的数据集
把原来的Blob数据集替换成ADLS专属数据集:
- 关联刚才创建好的ADLS链接服务
- 设置文件夹路径时,要用ADLS的标准格式,比如
/raw-data/input/(注意开头的斜杠,不能省略) - 如果是批量处理文件,可以用通配符指定文件名,比如
*.parquet;如果是单文件处理,直接填完整文件名即可 - 确保数据集的格式配置(比如分隔符、编码、压缩格式)和原来的Blob数据集完全一致,避免格式不兼容问题
3. 调整Batch活动的输入输出与命令行
找到管道里的Azure Batch活动,做以下修改:
- 将输入、输出数据集替换为新创建的ADLS数据集
- 重点修改命令行参数:原来Blob用的
wasb://路径要换成ADLS的adl://格式,比如adl://your-adls-account.azuredatalakestore.net/raw-data/input/file.csv - 如果用了ADF的动态参数(比如
@dataset().folderPath),要调整动态表达式,确保生成的是合法的adl://路径
4. 权限配置(最容易翻车的环节)
这部分是很多人部署失败的核心原因,一定要仔细检查:
- ADLS侧权限:给链接服务用的服务主体配置对应文件夹的权限:
- 输入文件夹:至少需要
Read和Execute权限(Execute权限是ADLS的特殊要求,没有的话连文件夹都进不去) - 输出文件夹:需要
Write、Execute和Delete权限(因为Batch任务可能需要覆盖已有文件) - 权限要递归应用到子文件夹,不然深层目录的文件会访问失败
- 输入文件夹:至少需要
- Batch账户侧:如果Batch节点部署在虚拟网络里,要确保VNet能访问ADLS;如果是公网Batch,要确保ADLS的防火墙允许Batch节点的IP访问
5. 部署与排错
- 优先部署链接服务和数据集,再部署修改后的管道,避免依赖缺失
- 如果部署或运行报错,先看ADF的监控日志:
- 若提示「权限不足」,直接去ADLS检查服务主体的权限配置,尤其是递归权限是否到位
- 若提示「路径不存在」,核对数据集和命令行里的ADLS路径是否正确,注意大小写(ADLS路径是区分大小写的!)
- 若Batch任务无法访问ADLS,检查Batch节点的网络连通性,或者ADLS的防火墙规则
内容的提问来源于stack exchange,提问作者Ziad Halabi
相关产品推荐
相关产品推荐

