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

如何使用Python连接Power BI数据集的XMLA端点并访问目标表

可对接Power BI XMLA端点的Python库
  • pyadomd:微软官方适配的XMLA连接库,兼容性覆盖Power BI全系列付费容量(Premium/PPU/嵌入容量),支持DAX、MDX两种查询语法,是当前场景的首选
  • python-ssas:轻量级第三方封装库,对接逻辑和pyadomd接近,依赖更少,适合小批量查询场景
  • pyodbc+pandas:需要提前配置MSOLAP ODBC驱动,适合习惯用标准ODBC接口开发的场景
具体解决方案

前置校验

首先确认两个前提配置:

  1. 承载目标数据集的Power BI容量已开启XMLA端点权限,权限级别设置为读/写
  2. 你用于连接的账号拥有该数据集的「构建」权限

示例代码(pyadomd实现)

第一步安装依赖

pip install pyadomd

第二步连接查询

from pyadomd import Pyadomd
import pandas as pd

# 替换连接字符串中占位符为实际信息
connection_string = (
    "Provider=MSOLAP;"
    "Data Source=powerbi://api.powerbi.com/v1.0/myorg/你的Power BI工作区名称;"
    "User ID=你的Azure AD登录账号;"
    "Password=你的账号登录密码;"
    "Initial Catalog=你的目标数据集名称;"
)

# 查询语句可使用DAX或MDX,直接指定目标表即可
dax_query = """
EVALUATE
'你的目标表名称'
"""

# 建立连接并拉取数据
with Pyadomd(connection_string) as conn:
    with conn.cursor().execute(dax_query) as cursor:
        result_df = pd.DataFrame(cursor.fetchall(), columns=[col.name for col in cursor.description])

print(result_df)

之前adodbapi无返回的常见原因

adodbapi默认枚举表时只会返回系统层面的元数据表,不会展示业务数据表,你需要直接写DAX/MDX语句指定要查询的目标表,不需要先枚举表列表。如果还是查不到,可优先检查连接字符串中的工作区、数据集名称是否和Power BI服务端完全一致,大小写敏感。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 01:06:05