简体   繁体   English

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

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

I'd like to connect to a power BI database and query it using SQL. My first instinct was to use Python's pyodbc package, like so:我想连接到一个 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;')

However this raises the following:然而,这引发了以下问题:

---------------------------------------------------------------------------
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)')

I thought this might be possible based off of the information that appears when I hover over a table in my model tab on Power BI, which looks something like this:我认为这可能是基于当我在 Power BI 上的 model 选项卡中的表格上 hover 时出现的信息,它看起来像这样:

Name: SomeTableView名称:SomeTableView
Data source type: SQL Server Analysis Services database数据源类型:SQL Server Analysis Services数据库
Server: powerbi://api.powerbi.com/v1.0/myorg/stuff服务器:powerbi://api.powerbi.com/v1.0/myorg/stuff
Database: DB Name Here数据库:此处为数据库名称

Am I approaching this the right way?我以正确的方式接近这个吗? Or are databases hosted on a power BI server not meant to be accessed from outside power BI?还是托管在 power BI 服务器上的数据库不应该从外部 power BI 访问?

Hi your approach is correct but back end of the PBI is SSAS not a SQL instance.您好,您的方法是正确的,但 PBI 的后端是 SSAS 而不是 SQL 实例。 Instead of.代替。 pyodbc try pyadomd which is the SSAS library for python below i have included a sample code pyodbc 尝试pyadomd ,它是下面 python 的 SSAS 库,我包含了一个示例代码

for the dll install this对于 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())

From the documentation of pyadomd you can find some samples too cheers!!!从 pyadomd 的文档中,您也可以找到一些示例,干杯!!!

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

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