首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python连接到Power BI XMLA端点

使用Python连接到Power BI XMLA端点
EN

Stack Overflow用户
提问于 2019-05-29 02:01:11
回答 2查看 3K关注 0票数 6

announcement about XMLA endpoints开始,我就一直在尝试通过Python连接到形式为powerbi://api.powerbi.com/v1.0/myorg/[workspace name]的URL作为SSAS多维数据集,但是我还没有找到任何有用的东西。

我有一个超大容量的工作区,我可以使用DAX Studio以及SSMS作为explained here连接到它,但我还不知道如何使用Python来连接它。我已经尝试安装olap.xmla,但是当我尝试使用Power BI URL作为位置,并使用powerbihttps作为前缀时,我得到了以下错误。

代码语言:javascript
复制
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中设置一个“应用程序”并以某种方式使用API?如何处理此类连接的身份验证?

如果有人知道有任何博客文章或其他资源演示了如何特别使用Python连接到Power BI XMLA端点,那将是令人惊叹的。我的探索失败了,但我肯定不是唯一一个试图这样做的人。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-30 04:56:51

在@Gigga指出连接器问题后,我去寻找其他可以与MSOLAP一起工作的Python模块,并找到了一个我可以工作的模块!

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

连接就像这样简单:

代码语言:javascript
复制
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凭据进行身份验证,弹出如下窗口:

票数 5
EN

Stack Overflow用户

发布于 2019-05-30 03:08:51

我不熟悉olap.xmla或使用Python连接到olap cube,但我认为问题出在驱动程序(或连接器?)在olap.xmla中提供。

announcement about XMLA endpoints页面中,它显示该连接仅适用于SSMS 18.0 RC1或更高版本,这是相当新的。与DAX studio相同的是,支持xmla连接的版本( 2.8.2版,2019年2月3日)非常新。

olap.xmla的latest version似乎来自2013年8月,所以可能在PowerBI XMLA连接背后有一些微软的魔法,这就是为什么它不能与旧连接器一起工作的原因。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56347765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档