Azure Data Factory从Blob复制到Data Lake报baseUri为空错误求助
解决Azure Data Factory复制任务中baseUri为空的错误
问题根源
你遇到的baseUri cannot be null错误,核心原因是Azure Data Lake Store链接服务中的dataLakeStoreUri配置存在问题——要么该参数值为空,要么格式不符合ADLS Gen1的要求,导致ADF无法识别有效的存储服务地址。
具体修复步骤
1. 修正ADLS链接服务的dataLakeStoreUri格式
对于ADLS Gen1,dataLakeStoreUri必须是完整且格式正确的URI,示例格式如下:
"dataLakeStoreUri": "https://<your-adls-account-name>.azuredatalakestore.net/webhdfs/v1/"
注意:必须包含/webhdfs/v1/后缀,这是ADLS Gen1的标准API路径,缺失会直接导致baseUri解析失败。
2. 完善链接服务的认证配置
根据你使用的认证方式补充对应参数:
- 服务主体(Service Principal)认证:需要在
typeProperties中添加servicePrincipalId和servicePrincipalKey,完整配置示例:
{ "name": "<your-linked-service-name>", "properties": { "type": "AzureDataLakeStore", "typeProperties": { "dataLakeStoreUri": "https://<your-adls-account>.azuredatalakestore.net/webhdfs/v1/", "servicePrincipalId": "<your-service-principal-id>", "servicePrincipalKey": { "type": "SecureString", "value": "<your-service-principal-secret>" }, "tenant": "<your-tenant-id>" }, "connectVia": { "referenceName": "<your-integration-runtime>", "type": "IntegrationRuntimeReference" } } }
- 托管标识(MSI)认证:无需添加
servicePrincipalId和servicePrincipalKey,但必须确保Data Factory的托管标识已被授予ADLS账户的权限(如Storage Blob Data Contributor)。
3. 验证ADLS数据集配置
你的数据集配置基本合规,若需要复制到指定文件名而非自动生成,可补充fileName参数:
"typeProperties": { "folderPath": "<your-target-folder>", "fileName": "<target-file-name>" }
(注:fileName为可选参数,不填则ADF会自动生成随机文件名)
额外排查点
- 若你使用的是ADLS Gen2,请切换链接服务和数据集类型:改用
AzureStorage链接服务(连接字符串指向Gen2账户)和AzureBlob数据集,因为Gen2本质是基于Blob存储架构的,不兼容AzureDataLakeStore类型配置。 - 确认Integration Runtime的网络连通性:自托管IR需确保能访问ADLS服务;托管IR需确保ADLS账户允许公共网络访问,或已配置VNet端点。
内容的提问来源于stack exchange,提问作者Dan Szepesi
相关产品推荐
相关产品推荐

