[英]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.