airflow-powerbi-provider

Een hook, operator, en sensor voor het starten en volgen van Power BI dataset-refreshes vanuit een Airflow DAG, authenticerend tegen de Power BI REST API met een Azure AD app-only (client credentials) grant.

Connectie instellen

Zie Power BI-connectie voor een walkthrough met screenshots van het aanmaken van deze connectie in de Airflow UI.

Maak een Airflow-connectie aan van het type http (power_bi, standaard connection-id powerbi_default):

Veld

Waarde

Login

Client-ID van de Azure AD-appregistratie

Password

Client secret van de Azure AD-appregistratie

Extra

{"tenant_id": "<Azure tenant ID>"}

Operators en sensors

PowerBIDatasetRefreshOperator

Start een dataset-refresh (POST .../datasets/{id}/refreshes) en zet de resulterende Power BI request-id in XCom (powerbi_dataset_refresh_id). Parameters: conn_id, dataset_id, group_id (de workspace-id), wait_for_termination (standaard False — blokkeert tot de refresh een terminale status bereikt), timeout (seconden, standaard 7 dagen), check_interval (seconden, standaard 60).

PowerBIDatasetRefreshSensor

Pollt een door bovenstaande operator gestarte refresh totdat deze Completed/Failed bereikt, en haalt de request-id op uit XCom via xcom_task_id. Werpt PowerBIDatasetRefreshException op bij status Failed.

Gebruik

from PowerBI_Operator.operators.powerbi_refresh_dataset_operator import (
    PowerBIDatasetRefreshOperator,
)
from PowerBI_Operator.sensors.powerbi_refresh_dataset_sensor import (
    PowerBIDatasetRefreshSensor,
)

refresh = PowerBIDatasetRefreshOperator(
    task_id="refresh_dataset",
    conn_id="powerbi_default",
    dataset_id="<dataset-id>",
    group_id="<workspace-id>",
)

wait_for_refresh = PowerBIDatasetRefreshSensor(
    task_id="wait_for_refresh",
    conn_id="powerbi_default",
    dataset_id="<dataset-id>",
    group_id="<workspace-id>",
    xcom_task_id="refresh_dataset",
)

refresh >> wait_for_refresh