(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
Databricks

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.

Compartir: