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 |
|
Operators en sensors¶
PowerBIDatasetRefreshOperatorStart 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(standaardFalse— blokkeert tot de refresh een terminale status bereikt),timeout(seconden, standaard 7 dagen),check_interval(seconden, standaard 60).PowerBIDatasetRefreshSensorPollt een door bovenstaande operator gestarte refresh totdat deze
Completed/Failedbereikt, en haalt de request-id op uit XCom viaxcom_task_id. WerptPowerBIDatasetRefreshExceptionop bij statusFailed.
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