Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tej szybkiej instrukcji uwierzytelniasz się w Power BI, wykonujesz zapytanie w języku DAX względem modelu semantycznego i deserializujesz odpowiedź z Apache Arrow do lokalnej struktury danych.
Wymagania wstępne
- Obszar roboczy Power BI z co najmniej jednym modelem semantycznym.
- Uprawnienia kompilacji i odczytu w modelu semantycznym.
- Rejestracja aplikacji Microsoft Entra (lub używanie uwierzytelniania interakcyjnego do testowania).
Python 3.10 lub nowszy.
Instalacja zależności:
pip install msal pyarrow pandas
1 — Uwierzytelnianie
Uzyskaj token elementu nośnego z zakresem https://analysis.windows.net/powerbi/api/.default .
from msal import PublicClientApplication
client_id = "YOUR_APP_CLIENT_ID"
authority = "https://login.microsoftonline.com/YOUR_TENANT_ID"
scopes = ["https://analysis.windows.net/powerbi/api/.default"]
app = PublicClientApplication(client_id, authority=authority)
result = app.acquire_token_interactive(scopes=scopes)
access_token = result["access_token"]
2 — Wykonaj zapytanie DAX
Wyślij żądanie POST do punktu końcowego Execute Queries Arrow za pomocą prostej EVALUATE instrukcji.
import io
import pyarrow as pa
import requests
group_id = "YOUR_WORKSPACE_ID"
dataset_id = "YOUR_DATASET_ID"
url = (f"https://api.powerbi.com/v1.0/myorg/groups/{group_id}"
f"/datasets/{dataset_id}/executeDaxQueries")
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json",
}
body = {"query": "EVALUATE TOPN(5, 'DimProduct')"}
response = requests.post(url, headers=headers, json=body)
response.raise_for_status()
reader = pa.ipc.open_stream(io.BytesIO(response.content))
table = reader.read_all()
df = table.to_pandas()
print(df)
3 — Sprawdzanie wyników
# Print the Arrow schema (column names and types)
print(table.schema)
# Show the first few rows as a pandas DataFrame
print(df.head())
# Access a specific column
print(table.column("ProductName").to_pylist()[:5])
Uprzątnij zasoby
Jeśli utworzono rejestrację aplikacji Microsoft Entra wyłącznie do testowania, przejdź do portalu Azure i usuń ją. Tokeny dostępu wygasają automatycznie i nie wymagają ręcznego odwoływania.
Treści powiązane
- Omówienie interfejsu API wykonywania zapytań języka DAX
- Samouczek: tworzenie usługi wykonywania zapytań języka DAX w warstwie środkowej
- Tutorial: wyodrębnianie dużych ilości danych przy użyciu Pythona do celów nauki o danych
- Najlepsze rozwiązania dotyczące interfejsu API REST wykonywania zapytań języka DAX