Databricks Workflows: orquestación de pipelines de datos end-to-end
João Barros
20 de October de 2025
2 min de lectura
Los Databricks Workflows (antes Jobs) permiten orquestar pipelines complejos con múltiples tasks — notebooks, scripts Python, consultas SQL, Delta Live Tables — con dependencias, retry automático y notificaciones.
Anatomía de un Workflow
Job
├── Task: ingest_bronze (Notebook: 01_ingest)
├── Task: transform_silver (Notebook: 02_transform, depende de ingest_bronze)
├── Task: aggregate_gold (Notebook: 03_aggregate, depende de transform_silver)
└── Task: refresh_powerbi (Python script, depende de aggregate_gold)
Crear vía REST API
POST /api/2.1/jobs/create
{
"name": "Pipeline_Ventas_Diario",
"tasks": [
{
"task_key": "ingest_bronze",
"notebook_task": {"notebook_path": "/Pipelines/01_ingest"},
"new_cluster": {"spark_version": "15.4.x-scala2.12", "num_workers": 4}
},
{
"task_key": "transform_silver",
"depends_on": [{"task_key": "ingest_bronze"}],
"notebook_task": {"notebook_path": "/Pipelines/02_transform"},
"existing_cluster_id": "{{cluster_id}}"
}
],
"schedule": {"quartz_cron_expression": "0 0 6 * * ?", "timezone_id": "Europe/Lisbon"},
"email_notifications": {"on_failure": ["dados@bconcepts.pt"]}
}
Parámetros dinámicos
# En el notebook, leer parámetros del job
dbutils.widgets.get("fecha_ejecucion")
# Pasar parámetros en la task
"base_parameters": {"fecha_ejecucion": "{{job.start_time.iso_date}}"}
Retry y timeouts
"max_retries": 2,
"min_retry_interval_millis": 300000, // 5 minutos entre retries
"timeout_seconds": 3600 // fallar si tarda más de 1h
Conclusión
Los Databricks Workflows eliminan la necesidad de herramientas externas de orquestación para pipelines Spark. Para casos más complejos multiplataforma, combine con Azure Data Factory llamando a la Databricks REST API.