Wiki Databricks
Compute: clusters, job clusters e serverless
Cluster interativo é para explorar; job cluster nasce e morre com o job. A escolha do compute é a maior alavanca de custo no Databricks.
Todo código Spark no Databricks roda num *compute*: um driver e zero ou mais workers (executores). O tipo de compute decide quanto se paga e por quanto tempo.
Os tipos
- All-purpose (interativo): para notebooks e exploração. Fica ligado enquanto alguém usa; configure auto termination para desligar sozinho depois de minutos ocioso.
- Job compute: criado quando o job começa e destruído quando termina. É o caminho padrão para produção, com preço por DBU menor que o interativo.
- Serverless: o Databricks gerencia as máquinas; o início é rápido e não há cluster para dimensionar.
- SQL warehouse: compute para consultas SQL e BI (Power BI conecta aqui).
Dimensionar
- Autoscaling: mínimo e máximo de workers; o cluster cresce com a fila de tarefas e encolhe ocioso.
- Tipo de nó: memória para shuffle e cache pesados, CPU para transformação simples, disco local para shuffle grande.
- Spot (instâncias de capacidade ociosa, mais baratas): bom para workers, que podem ser repostos; o driver fica em máquina normal.
- Photon: motor vetorizado em C++ que acelera SQL e DataFrame; custa mais DBU por hora e costuma pagar a diferença em tempo.
Sinais de cluster mal dimensionado
- CPU baixa o tempo todo com muitos workers: cluster grande demais, ou o trabalho é uma tarefa só (skew,
coalesce(1), janela sem partição). - *Spill* para disco e erros de memória: pouca memória por núcleo, ou partições grandes demais.
- Job curto em cluster que leva minutos para subir: o tempo de inicialização vira parte grande da conta; pools ou serverless resolvem.
- Política de compute (*compute policy*) limita o que cada equipe pode criar: tipo de nó, máximo de workers, auto termination obrigatório. É governança de custo antes do gasto.
Fontes
Conhecimento compartilhado pela Genesis Innovation.