ADF从Azure Databricks Delta Lake复制数据到Azure SQL Server报错求助
问题描述
尝试使用Azure Data Factory(ADF)复制数据活动从Azure Databricks Delta Lake提取数据,无法直接传输至目标Azure SQL Server,需借助Azure Blob Storage中转,但执行时出现以下错误:
ErrorCode=AzureDatabricksCommandError,Hit an error when running the command in Azure Databricks. Error details: Failure to initialize configurationInvalid configuration value detected for fs.azure.account.key Caused by: Invalid configuration value detected for fs.azure.account.key
此前尝试过相关解决方案但未生效,需解决该问题以实现Delta Lake到Azure SQL Server的数据传输。
附相关截图:
- ADF结构截图(提示需配置存储账户):

- 配置截图:

- 执行失败截图1:

- 执行失败截图2:

解决方案
1. 核对Blob存储账户密钥/令牌
- 从Azure门户存储账户的「访问密钥」页面复制密钥1或密钥2,直接粘贴到ADF的Blob链接服务配置中,避免手动输入导致的字符错误。
- 若用SAS令牌,确保令牌包含读、写、列表权限,有效期未过期,且是完整的SAS字符串(包含
?开头的参数部分)。
2. 确认权限配置
- 给ADF的托管标识(或服务主体)分配Blob存储容器的Storage Blob Data Contributor权限——普通的Contributor权限无法满足数据读写需求。
- 在Databricks笔记本中执行测试命令,验证存储连接有效性:
dbutils.fs.mount( source = "wasbs://<容器名>@<存储账户名>.blob.core.windows.net", mount_point = "/mnt/testmount", extra_configs = {"fs.azure.account.key.<存储账户名>.blob.core.windows.net":"<存储账户密钥>"} )
挂载失败则先解决Databricks侧的连接问题,再回到ADF测试。
3. 检查ADF中转存储配置
- 进入ADF复制活动的「设置」选项卡,确认临时存储关联的Blob链接服务信息正确,无账户名或密钥错误。
- 若中转用ADLS Gen2,注意用OAuth认证配置(如
fs.azure.account.oauth2.client.id),不要混用账户密钥,否则会触发配置错误。
4. 尝试直接传输(跳过中转)
重新验证直接传输的可行性:
- 确认Azure SQL链接服务的服务器名、数据库名、凭据有效,SQL Server防火墙已允许ADF访问(可启用「允许Azure服务和资源访问此服务器」)。
- 复制活动中直接将目标设为Azure SQL Server,测试运行结果。
5. 清理Databricks集群冲突配置
登录Databricks集群,查看「Spark配置」,删除任何无效的fs.azure.account.key全局配置项——集群全局配置会覆盖ADF传递的参数,导致报错。
内容的提问来源于stack exchange,提问作者willy sepulveda
相关产品推荐
相关产品推荐

