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 |
|---|---|---|
|
|
Login: client-ID · Password: client secret · Extra |
|
Capacity-operators / |
Login: client-ID · Password: client secret · Extra |
Operators¶
FabricRunItemOperatorDraait 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(standaardTrue),timeout(seconden, standaard 7 dagen),check_interval(seconden, standaard 60),deferrable(standaard vanuit Airflow’s eigen configoperators.default_deferrable),job_params(dict die wordt doorgegeven aan de Fabric-job),use_notebook_beta_endpoints. Zetrun_id/locationin XCom en biedt een “Monitor Item Run”-link naar de Fabric-portal.SuspendFabricCapacityOperator/ResumeFabricCapacityOperator/GetFabricCapacityOperatorPauzeert, 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