Ale*_*son 5 python olap xmla powerbi
自从关于 XMLA endpoints的公告以来,我一直试图弄清楚如何powerbi://api.powerbi.com/v1.0/myorg/[workspace name]通过 Python连接到表单的 URL作为 SSAS OLAP 多维数据集,但我没有得到任何工作。
我有一个高级容量的工作区,我能够使用 DAX Studio 和 SSMS 连接到它,如here所述,但我还没有想出如何使用 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)
Run Code Online (Sandbox Code Playgroud)
我确定其中涉及身份验证问题,但我在这里有点超出我的深度。我是否需要在 ActiveDirectory 中设置一个“应用程序”并以某种方式使用 API?这种连接的身份验证是如何处理的?
如果有人知道任何博客文章或其他资源来演示如何专门使用 Python 连接到 Power BI 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)
Run Code Online (Sandbox Code Playgroud)
它通过弹出这样的窗口使用我的 Windows 凭据进行身份验证: