Wiki Databricks
Jobs e Workflows: orquestração no Databricks
Um job é um grafo de tarefas com dependências, agenda, tentativas e alertas. A agenda usa cron no formato Quartz, com segundos.
No Databricks, o orquestrador nativo é o Jobs (por muito tempo chamado Workflows; hoje aparece como *Lakeflow Jobs*). Um job é um DAG de tarefas: cada tarefa roda um notebook, um script Python, um pacote wheel, uma consulta SQL, um pipeline declarativo ou outro job, e só começa quando as tarefas de que depende terminaram.
Um pipeline medalhão como job
ingestao_bronze(sem dependência)limpeza_silverdepende deingestao_bronzegold_vendasegold_clientesdependem delimpeza_silvere rodam em paraleloqualidadedepende das duas gold; se falhar, o job falha e avisa
resources:
jobs:
medalhao_diario:
name: medalhao-diario
schedule:
quartz_cron_expression: "0 30 5 * * ?"
timezone_id: America/Sao_Paulo
tasks:
- task_key: ingestao_bronze
notebook_task: {notebook_path: ../notebooks/bronze.py}
- task_key: limpeza_silver
depends_on: [{task_key: ingestao_bronze}]
notebook_task: {notebook_path: ../notebooks/silver.py}
max_retries: 2
- task_key: gold_vendas
depends_on: [{task_key: limpeza_silver}]
notebook_task: {notebook_path: ../notebooks/gold_vendas.py}(Formato de um Databricks Asset Bundle; veja CI/CD para dados.)
Cron do Quartz: seis campos, com segundos
A agenda do job usa a sintaxe do Quartz: segundos minutos horas dia-do-mês mês dia-da-semana [ano]. Um dos dois campos de dia leva ? ("tanto faz").
0 30 5 * * ?: todo dia às 05:30:00.0 0 */2 ? * MON-FRI: a cada duas horas, de segunda a sexta.0 0 6 1 * ?: dia 1 de cada mês, às 06:00.
A ferramenta "cron" deste site traduz uma expressão e lista as próximas execuções.
O que configurar além da agenda
- Tentativas (
max_retries) e intervalo entre elas: falha transitória (rede, nó perdido) não precisa de gente. - Tempo-limite por tarefa: job travado custa cluster parado.
- Alertas de falha e de duração anormal.
- Parâmetros (data de referência) em vez de "hoje" fixo no código: reprocessar um dia vira rodar o job com outro parâmetro.
- Gatilho por chegada de arquivo ou por atualização de tabela, quando esperar o relógio é desperdício.
Fontes
Conhecimento compartilhado pela Genesis Innovation.