自announcement about XMLA endpoints以来,我一直在尝试找出如何通过Python以SSAS OLAP多维数据集的形式连接到powerbi://api.powerbi.com/v1.0/myorg/[workspace name]
形式的URL的方法,但是我还没有做任何事情
我有一个超大容量的工作区,可以使用DAX Studio以及explained here的SSMS来连接到该工作区,但是我还没有弄清楚如何使用Python进行工作。我尝试安装olap.xmla,但是当我尝试使用Power BI URL作为位置并使用powerbi
或https
作为前缀时,出现以下错误。
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端点的博客文章或其他资源,那就太好了。我的搜索使我失败了,但可以肯定,我不是唯一一个尝试这样做的人。
答案 0 :(得分:1)
@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凭据通过如下所示的窗口进行身份验证:
答案 1 :(得分:0)
我不熟悉olap.xmla或使用Python连接到olap多维数据集,但我认为问题出在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连接背后可能存在一些Microsoft魔术,这就是为什么它不适用于较旧的连接器的原因。