You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Databricks高级工作区用DuckDB连接Fabric湖仓与数据湖?

DuckDB连接Fabric湖仓错误分析与解决方案

错误核心原因

  • 未提供有效身份凭据:DuckDB访问OneLake必须通过SPN或存储访问密钥做身份验证,无合法凭据会触发权限校验失败,同时可能引发连带的SSL证书验证异常。
  • SSL CA证书问题:DuckDB无法读取系统默认的SSL根证书(路径错误或权限不足),导致无法建立与OneLake的安全HTTPS连接。

正确连接与访问步骤

方式一:使用服务主体(SPN)

  1. 提前获取SPN的租户ID、客户端ID、客户端密钥(Azure AD中创建并授权访问Fabric湖仓)
  2. 在DuckDB中配置凭据并查询:
-- 配置SPN身份信息
SET azure_tenant_id = '你的租户ID';
SET azure_client_id = '你的SPN客户端ID';
SET azure_client_secret = '你的SPN客户端密钥';
-- 可选:指定SSL证书路径(解决证书读取问题)
SET ssl_ca = '/etc/ssl/certs/ca-certificates.crt'; -- Linux环境示例,Windows可对应系统证书路径

-- 读取OneLake中的CSV文件
SELECT * FROM read_csv('abfss://demo@onelake.dfs.fabric.microsoft.com/Lakehouse.Lakehouse/Files/20180402040501.CSV');

方式二:使用存储访问密钥

  1. 在Fabric湖仓的「设置」-「存储访问密钥」中获取访问密钥
  2. 配置DuckDB并查询:
-- 配置存储访问密钥
SET azure_storage_account_key = '你的存储访问密钥';
-- 可选:指定SSL证书路径
SET ssl_ca = '/etc/ssl/certs/ca-certificates.crt';

-- 读取目标CSV文件
SELECT * FROM read_csv('abfss://demo@onelake.dfs.fabric.microsoft.com/Lakehouse.Lakehouse/Files/20180402040501.CSV');

SSL证书问题补充处理

如果仍存在SSL证书错误:

  • Linux环境:直接使用系统默认证书路径/etc/ssl/certs/ca-certificates.crt,确保DuckDB进程有读取权限
  • Windows环境:指定C:\Windows\System32\certificates\root\ca-bundle.pem,或通过openssl导出系统根证书
  • Databricks环境:使用集群自带的SSL证书路径,或上传自定义证书到DBFS后指定路径(如dbfs:/path/to/ca-cert.pem)

内容的提问来源于stack exchange,提问作者Andy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 20:05:07