使用Python连接到Power bixmla端点

2024-06-13 13:48:31 发布

您现在位置:Python中文网/ 问答频道 /正文

自从announcement about XMLA endpoints以来,我一直在尝试如何通过Python将格式为powerbi://api.powerbi.com/v1.0/myorg/[workspace name]的URL连接到SSAS OLAP多维数据集,但是我还没有得到任何工作。在

我有一个高容量的工作区,我可以使用daxstudio和SSMS作为explained here连接到它,但是我还没有弄清楚如何使用Python来实现它。我试过安装联机分析处理.xmla,但当我尝试使用powerbiurl作为位置时,使用powerbi或{}作为前缀时,会出现以下错误。在

import olap.xmla.xmla as xmla
p = xmla.XMLAProvider()
c = p.connect(location="powerbi://api.powerbi.com/v1.0/myorg/[My Workspace]")
[...]
TransportError: Server returned HTTP status 404 (no content available)

我肯定有身份验证的问题,但我有点力不从心。我需要在ActiveDirectory中设置一个“app”并使用API吗?如何处理这种连接的身份验证?在

如果有人知道任何博客文章或其他资源,可以演示如何使用Python连接到powerbixmla端点,那将是一件了不起的事情。我的搜寻失败了,但我肯定不是唯一一个想这么做的人。在


Tags: namecom身份验证apiurl格式workspaceabout
2条回答

我不熟悉联机分析处理.xmla或者使用Python连接到olap多维数据集,但我认为问题出在驱动程序(或连接器?)提供于联机分析处理.xmla. 在

announcement about XMLA endpoints页面中,它说连接只适用于ssms18.0rc1或更高版本,这是一个非常新的连接。daxstudio也是如此,支持xmla连接的版本(版本2.8.2199年2月3日)相当新鲜。在

latest version联机分析处理.xmla似乎是从2013年8月开始的,所以有可能在PowerBI-XMLA连接背后有一些微软的魔力,这就是为什么它不能与旧的连接器一起工作。在

在@Gigga指出了连接器的问题之后,我去寻找其他使用MSOLAP的Python模块进行连接,并找到了一个我正在工作的模块!在

该模块是adodbapi(注意pywin32先决条件)。在

连接就这么简单:

import adodbapi

# Connection string
conn = adodbapi.connect("Provider=MSOLAP.8; \
    Data Source='powerbi://api.powerbi.com/v1.0/myorg/My Workspace Name'; \
    Initial Catalog='My Data Model'")

# Example query
print('The tables in your database are:')
for name in conn.get_table_names():
    print(name)

它通过弹出如下窗口,使用我的Windows凭据进行身份验证:

Sign in window

相关问题 更多 >