Подключение к конечной точке Power BI XMLA с помощью Python - PullRequest
4 голосов
/ 28 мая 2019

После объявления о конечных точках XMLA я пытался выяснить, как подключиться к URL-адресу формы powerbi://api.powerbi.com/v1.0/myorg/[workspace name] в качестве куба SSAS OLAP через Python, но я не получилвсе для работы.

У меня есть рабочее пространство премиум-класса, и я могу подключиться к нему, используя DAX Studio, а также SSMS, как объяснено здесь 1006 *, но я не понялкак это сделать с Python.Я попытался установить olap.xmla, но я получаю следующую ошибку, когда пытаюсь использовать URL-адрес Power BI в качестве местоположения, используя 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 и как-то использовать API?Как обрабатывается аутентификация для такого типа соединения?

Если кто-нибудь знает о каких-либо публикациях в блоге или других ресурсах, демонстрирующих, как подключиться к конечной точке Power BI XMLA, в частности, с использованием Python, это было бы удивительно.Мои поиски провалились, но, конечно, я не могу быть единственным, кто пытается это сделать.

Ответы [ 2 ]

2 голосов
/ 29 мая 2019

После того, как @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)

Он аутентифицировался с использованием моих учетных данных Windows, открыв окно, подобное этому:

Sign in window

0 голосов
/ 29 мая 2019

Я не знаком с olap.xmla или с использованием Python для подключения к кубам olap, но я думаю, что проблема в драйвере (или коннекторе?), Предоставленном в olap.xmla.

На странице объявления о конечных точках XMLA говорится, что соединение работает только с SSMS 18.0 RC1 или новее, что является довольно новым. То же самое с DAX studio, версия, где поддерживается соединение xmla (Версия 2.8.2, 3 февраля 2019 г.), довольно свежа.

Последняя версия olap.xmla *1008*, по-видимому, относится к августу 2013 года, поэтому вполне возможно, что за подключением PowerBI XMLA есть какая-то магия Microsoft, и поэтому она не работает со старыми коннекторами.

...