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

Databricks Workflows: orquestração de pipelines de dados end-to-end

João Barros 20 de October de 2025 2 min de leitura

Os Databricks Workflows (anteriormente Jobs) permitem orquestrar pipelines complexos com múltiplas tasks — notebooks, scripts Python, queries SQL, Delta Live Tables — com dependências, retry automático e notificações.

Anatomia de um 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)

Criar via API REST

POST /api/2.1/jobs/create
{
  "name": "Pipeline_Vendas_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

# No notebook, ler parâmetros do job
dbutils.widgets.get("data_execucao")

# Passar parâmetros na task
"base_parameters": {"data_execucao": "{{job.start_time.iso_date}}"}

Retry e timeouts

"max_retries": 2,
"min_retry_interval_millis": 300000,  // 5 minutos entre retries
"timeout_seconds": 3600               // falhar se demorar mais de 1h

Conclusão

Os Databricks Workflows eliminam a necessidade de ferramentas externas de orquestração para pipelines Spark. Para casos mais complexos de cross-plataforma, combine com Azure Data Factory chamando o Databricks REST API.

Partilhar: