繁体   English   中英

如何连接到 Power BI 外部的 Power BI 数据库?

[英]How to connect to Power BI database outside of Power BI?

我想连接到一个 Power BI 数据库并使用 SQL 查询它。我的第一直觉是使用 Python 的pyodbc package,如下所示:

conn = pyodbc.connect( 'DRIVER={SQL Server};SERVER=powerbi://api.powerbi.com/v1.0/url;DATABASE=DB Name;Trusted_Connection=yes;')

然而,这引发了以下问题:

---------------------------------------------------------------------------
OperationalError                          Traceback (most recent call last)
<ipython-input-6-669e861464b3> in <module>
----> 1 conn = pyodbc.connect( 'DRIVER={SQL Server};SERVER=powerbi://api.powerbi.com/v1.0/myorg/Datasets;DATABASE=Mutual Servicing;Trusted_Connection=yes;')

OperationalError: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect); [08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). (123)')

我认为这可能是基于当我在 Power BI 上的 model 选项卡中的表格上 hover 时出现的信息,它看起来像这样:

名称:SomeTableView
数据源类型:SQL Server Analysis Services数据库
服务器:powerbi://api.powerbi.com/v1.0/myorg/stuff
数据库:此处为数据库名称

我以正确的方式接近这个吗? 还是托管在 power BI 服务器上的数据库不应该从外部 power BI 访问?

您好,您的方法是正确的,但 PBI 的后端是 SSAS 而不是 SQL 实例。 代替。 pyodbc 尝试pyadomd ,它是下面 python 的 SSAS 库,我包含了一个示例代码

对于 dll 安装这个

from sys import path
path.append('/root/dll/Microsoft.AnalysisServices.AdomdClient.dll')
from pyadomd import Pyadomd
conn='Provider=MSOLAP;Data Source=powerbi://api.powerbi.com/v1.0/myorg/;Initial Catalog=testcube;User Id=testuser;Password=xxxxx ;'
query = "SELECT DIMENSION_CAPTION AS [DIMENSION] FROM $system.MDSchema_Dimensions"
         
with Pyadomd(conn) as conn:
   with conn.cursor().execute(query) as cur:
      print(cur.fetchall())

从 pyadomd 的文档中,您也可以找到一些示例,干杯!!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM