빠른 시작: 첫 번째 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 쿼리 실행

간단한 EVALUATE 문을 사용하여 쿼리 실행 화살표 엔드포인트에 POST 요청을 보냅니다.

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 포털 이동하여 삭제합니다. 액세스 토큰은 자동으로 만료되며 수동 해지가 필요하지 않습니다.