Γρήγορη εκκίνηση: Εκτέλεση του πρώτου ερωτήματος DAX

Σε αυτήν τη γρήγορη εκκίνηση, πραγματοποιείτε έλεγχο ταυτότητας στο Power BI, εκτελείτε ένα ερώτημα DAX σε ένα μοντέλο σημασιολογίας και αποσειριοποιείτε την απόκριση βέλους σε μια τοπική δομή δεδομένων.

Προαπαιτούμενα στοιχεία

  • Ένας χώρος εργασίας Power BI με τουλάχιστον ένα μοντέλο σημασιολογίας.
  • Δικαιώματα δόμησης και ανάγνωσης στο μοντέλο σημασιολογίας.
  • Μια καταχώρηση εφαρμογής Microsoft Entra (ή χρησιμοποιήστε αλληλεπιδραστικό έλεγχο ταυτότητας για δοκιμή).
  • Python 3.10 ή νεότερη έκδοση.

  • Εγκατάσταση εξαρτήσεων:

    pip install msal pyarrow pandas
    

1 - Έλεγχος ταυτότητας

Αποκτήστε ένα διακριτικό κομιστή με το 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 - Εκτέλεση ερωτήματος DAX

Στείλτε μια αίτηση POST στο τελικό σημείο βέλους εκτέλεσης ερωτημάτων με μια απλή EVALUATE πρόταση.

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 - Επιθεωρήστε τα αποτελέσματα

# 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])

Εκκαθάριση των πόρων

Εάν δημιουργήσατε μια εγγραφή εφαρμογής Microsoft Entra αποκλειστικά για δοκιμή, μεταβείτε στην πύλη Azure και διαγράψτε την. Τα διακριτικά πρόσβασης λήγουν αυτόματα και δεν χρειάζονται μη αυτόματη ανάκληση.