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

如何通过Databricks Notebook挂载Azure Fabric OneLake?

如何在Databricks中挂载Azure Fabric OneLake?

你之前通过账号密钥成功挂载ADLS Gen2,但尝试挂载OneLake时失败,系统仍试图指向ADLS Gen2,核心问题在于OneLake的认证机制、路径格式和ADLS Gen2存在差异,以下是具体解决思路:

核心问题分析

OneLake不支持ADLS Gen2常用的**账号密钥(Account Key)**认证方式,且路径格式需要明确指定具体的湖仓子目录(如/Files),否则Databricks会默认按ADLS Gen2的规则解析,导致挂载失败。

解决步骤

1. 使用Azure AD身份认证

OneLake仅支持Azure AD相关的认证方式,推荐使用**服务主体(Service Principal)**进行挂载,需要提前准备:

  • 服务主体的Client ID
  • 服务主体的Client Secret
  • Azure租户ID

2. 修正OneLake的ABFSS路径格式

正确的OneLake路径必须包含具体的湖仓子目录,格式示例:

abfss://<工作区名称>@onelake.dfs.fabric.microsoft.com/<湖仓名称>.Lakehouse/Files

注:/Files对应湖仓的文件存储目录,若要挂载表目录可替换为/Tables

3. 完整挂载代码示例

# 配置OneLake和服务主体参数
workspace_name = "my_workspace"
lakehouse_name = "my_lakehouse"
client_id = "<你的服务主体Client ID>"
client_secret = "<你的服务主体Client Secret>"
tenant_id = "<你的Azure租户ID>"

# 构建正确的OneLake源路径
source_url = f"abfss://{workspace_name}@onelake.dfs.fabric.microsoft.com/{lakehouse_name}.Lakehouse/Files"
mount_point = "/mnt/onelake_mount"

# 检查挂载点是否已存在
mounted_exist = any(mount_point in item[0] for item in dbutils.fs.mounts())

if not mounted_exist:
    # 配置Azure AD认证参数
    auth_configs = {
        "fs.azure.account.auth.type": "OAuth",
        "fs.azure.account.oauth.provider.type": "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
        "fs.azure.account.oauth2.client.id": client_id,
        "fs.azure.account.oauth2.client.secret": client_secret,
        "fs.azure.account.oauth2.client.endpoint": f"https://login.microsoftonline.com/{tenant_id}/oauth2/token"
    }
    # 执行挂载
    dbutils.fs.mount(
        source=source_url,
        mount_point=mount_point,
        extra_configs=auth_configs
    )

4. 验证挂载结果

挂载完成后,执行以下命令确认是否成功访问OneLake:

dbutils.fs.ls(mount_point)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 11:27:33