使用 Python 连接到 Power BI XMLA 端点
Connect to Power BI XMLA endpoint with Python
自 announcement about XMLA endpoints 以来,我一直在尝试弄清楚如何通过 Python 连接到 powerbi://api.powerbi.com/v1.0/myorg/[workspace name]
形式的 URL 作为 SSAS OLAP 多维数据集, 但我还没有得到任何工作。
我有一个高级容量的工作区,我可以使用 DAX Studio 和 SSMS explained here 连接到它,但我还不知道如何使用 [=27] =].我已尝试安装 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 中设置 "app" 并以某种方式使用 API?如何处理此类连接的身份验证?
如果有人知道演示如何专门使用 Python 连接到 Power BI XMLA 端点的任何博客文章或其他资源,那就太棒了。我的搜索失败了,但我肯定不是唯一一个尝试这样做的人。
我不熟悉 olap.xmla 或使用 Python 连接到 olap 多维数据集,但我认为问题出在 olap.xmla 中提供的驱动程序(或连接器?) .
在announcement about XMLA endpoints页面中,它说该连接仅适用于 SSMS 18.0 RC1 或更高版本,这是相当新的。 DAX studio也是一样,支持xmla连接的版本(Version 2.8.2, Feb 3 2019),挺新鲜的。
olap.xmla 的 latest version 似乎是从 2013 年 8 月开始的,因此 PowerBI XMLA 连接背后可能有一些 Microsoft 魔法,这就是它不能与旧连接器一起使用的原因。
@Gigga 指出连接器问题后,我开始寻找其他 Python 可与 MSOLAP 一起连接的模块,并找到了一个我可以使用的模块!
模块是 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)
它通过弹出 window 像这样使用我的 Windows 凭据进行身份验证:
自 announcement about XMLA endpoints 以来,我一直在尝试弄清楚如何通过 Python 连接到 powerbi://api.powerbi.com/v1.0/myorg/[workspace name]
形式的 URL 作为 SSAS OLAP 多维数据集, 但我还没有得到任何工作。
我有一个高级容量的工作区,我可以使用 DAX Studio 和 SSMS explained here 连接到它,但我还不知道如何使用 [=27] =].我已尝试安装 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 中设置 "app" 并以某种方式使用 API?如何处理此类连接的身份验证?
如果有人知道演示如何专门使用 Python 连接到 Power BI XMLA 端点的任何博客文章或其他资源,那就太棒了。我的搜索失败了,但我肯定不是唯一一个尝试这样做的人。
我不熟悉 olap.xmla 或使用 Python 连接到 olap 多维数据集,但我认为问题出在 olap.xmla 中提供的驱动程序(或连接器?) .
在announcement about XMLA endpoints页面中,它说该连接仅适用于 SSMS 18.0 RC1 或更高版本,这是相当新的。 DAX studio也是一样,支持xmla连接的版本(Version 2.8.2, Feb 3 2019),挺新鲜的。
olap.xmla 的 latest version 似乎是从 2013 年 8 月开始的,因此 PowerBI XMLA 连接背后可能有一些 Microsoft 魔法,这就是它不能与旧连接器一起使用的原因。
@Gigga 指出连接器问题后,我开始寻找其他 Python 可与 MSOLAP 一起连接的模块,并找到了一个我可以使用的模块!
模块是 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)
它通过弹出 window 像这样使用我的 Windows 凭据进行身份验证: