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

如何通过Python Notebook直连MS Fabric Warehouse加载数据并解决认证问题

连接MS Fabric Warehouse的Python无交互认证方案

核心依赖安装

首先确保安装所需包:

pip install pyodbc azure-identity

同时需安装ODBC Driver 18 for SQL Server,Windows可直接下载安装,Linux/macOS通过对应包管理器安装(如Ubuntu用apt install msodbcsql18)。

无交互认证方案(Service Principal)

针对开发库的通用场景,推荐使用Azure AD服务主体(Service Principal)认证,无需浏览器或Azure CLI,支持代码配置参数:

1. 准备认证信息

  • 在Azure AD注册应用,获取tenant_id、client_id、client_secret。
  • 在Fabric工作区中,为该服务主体分配Warehouse Contributor或更高权限。

2. 通用代码示例

以下代码支持通过变量配置工作区、仓库及认证信息:

import pyodbc
from azure.identity import ClientSecretCredential
import os

# 可配置参数(建议从环境变量读取敏感信息)
TENANT_ID = os.getenv("FABRIC_TENANT_ID")
CLIENT_ID = os.getenv("FABRIC_CLIENT_ID")
CLIENT_SECRET = os.getenv("FABRIC_CLIENT_SECRET")
WORKSPACE_NAME = "your-workspace-name"
WAREHOUSE_NAME = "your-warehouse-name"
# 数据库格式为「工作区名.仓库名」
DATABASE_NAME = f"{WORKSPACE_NAME}.{WAREHOUSE_NAME}"
# 服务器地址可从Fabric仓库的「连接」面板复制
SERVER = "tcp:xxx.fabric.microsoft.com,1433"

# 获取Azure AD访问令牌
credential = ClientSecretCredential(
    tenant_id=TENANT_ID,
    client_id=CLIENT_ID,
    client_secret=CLIENT_SECRET
)
token = credential.get_token("https://database.windows.net/.default")

# 构造ODBC连接字符串
conn_str = f"""
DRIVER={{ODBC Driver 18 for SQL Server}};
SERVER={SERVER};
DATABASE={DATABASE_NAME};
UID=unused;
PWD={token.token};
Encrypt=yes;
TrustServerCertificate=no;
Connection Timeout=30;
Authentication=ActiveDirectoryServicePrincipal
"""

# 执行SQL查询
with pyodbc.connect(conn_str) as conn:
    with conn.cursor() as cursor:
        # 示例:查询表数据
        cursor.execute("SELECT TOP 5 * FROM your_schema.your_table")
        for row in cursor.fetchall():
            print(row)
        
        # 示例:加载数据(假设data为DataFrame)
        # from pandas import DataFrame
        # data.to_sql("target_table", conn, schema="your_schema", if_exists="append", index=False)

关键注意事项

  • 令牌有效期约1小时,长期运行的脚本需定期调用credential.get_token()刷新令牌。
  • 敏感信息(如client_secret)禁止硬编码,务必通过环境变量、密钥 vault 等方式管理。
  • 若遇到权限错误,检查服务主体在Fabric工作区的权限配置,确保能访问目标仓库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 14:41:01