scamander-providers-fabric

Stelt Data- en Analytics-engineers in staat om on-demand Microsoft Fabric-jobs te starten vanuit Airflow DAGs: notebooks, pipelines, en capacity (pause/resume) beheer. Ondersteunt deferrable (async) uitvoering via Airflow triggers, zodat een langlopende Fabric item-run niet de hele tijd een worker-slot bezet houdt.

Connectie instellen

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

Er zijn twee aparte connectietypes, omdat een run en een capacity-operatie authenticeren tegen verschillende Fabric-/Azure-resources:

Connectietype

Gebruikt door

Velden

fabric

FabricRunItemOperator / FabricHook

Login: client-ID · Password: client secret · Extra tenantId · Extra refreshToken (optioneel, user-delegated auth — bij elk gebruik automatisch teruggeroteerd in de connectie) · Extra scopes (optioneel, standaard https://api.fabric.microsoft.com/.default)

fabric_capacity

Capacity-operators / FabricCapacityHook

Login: client-ID · Password: client secret · Extra tenantId · Extra scopes (optioneel, standaard https://management.azure.com/.default)

Operators

FabricRunItemOperator

Draait een Fabric-item (notebook of pipeline) in een workspace. Belangrijkste parameters: workspace_id, item_id, fabric_conn_id, job_type (bijv. "RunNotebook", "Pipeline"), wait_for_termination (standaard True), timeout (seconden, standaard 7 dagen), check_interval (seconden, standaard 60), deferrable (standaard vanuit Airflow’s eigen config operators.default_deferrable), job_params (dict die wordt doorgegeven aan de Fabric-job), use_notebook_beta_endpoints. Zet run_id/location in XCom en biedt een “Monitor Item Run”-link naar de Fabric-portal.

SuspendFabricCapacityOperator / ResumeFabricCapacityOperator / GetFabricCapacityOperator

Pauzeert, hervat, of haalt de status op van een Fabric capacity (een Azure-resource, geen workspace-item). Gedeelde parameters: fabric_capacity_conn_id, subscription_id, resource_group, capacity_name, max_retries (standaard 5), retry_delay (seconden, standaard 1). Nuttig voor kostenbeheersing, bijv. het pauzeren van een capacity buiten kantooruren.

Gebruik

from scamander.providers.fabric.operators.fabric_operator import FabricRunItemOperator
from scamander.providers.fabric.operators.fabric_capacity_operator import (
    ResumeFabricCapacityOperator,
    SuspendFabricCapacityOperator,
)

resume_capacity = ResumeFabricCapacityOperator(
    task_id="resume_capacity",
    fabric_capacity_conn_id="fabric_capacity_default",
    subscription_id="<subscription-id>",
    resource_group="<resource-group>",
    capacity_name="<capacity-name>",
)

run_notebook = FabricRunItemOperator(
    task_id="run_notebook",
    fabric_conn_id="fabric_default",
    workspace_id="<workspace-id>",
    item_id="<notebook-item-id>",
    job_type="RunNotebook",
)

suspend_capacity = SuspendFabricCapacityOperator(
    task_id="suspend_capacity",
    fabric_capacity_conn_id="fabric_capacity_default",
    subscription_id="<subscription-id>",
    resource_group="<resource-group>",
    capacity_name="<capacity-name>",
)

resume_capacity >> run_notebook >> suspend_capacity