Databricks Caro? Como Reduzir Custo em 83% Sem Perder Performance "Databricks é caro demais para a gente." Ouço isso toda semana de empresas que estão pagando R$ 3.000+ por mês em infraestrutura Databricks — e que poderiam estar pagando R$ 500. O problema: não é o Databricks que é caro. É configuração errada que é cara. A maior parte das empresas que reclamam de custo está deixando clusters rodando 24/7, com nós oversized, e sem nenhuma estratégia de otimização. É como manter um carro de fórmula 1 ligado o tempo todo — mesmo quando você não está dirigindo. Neste artigo, vou mostrar exatamente o que você está fazendo errado e como corrigir em 30 minutos. Por Que Databricks Fica Caro (E Por Que Não Deveria) Antes de qualquer coisa, vamos entender de onde vem o custo. No Databricks, você paga por dois componentes: 1. DBU (Databricks Units) — quantidade de processamento (varia por tamanho do nó e quantidade de nós) 2. Nó Infrastructure — cloud (AWS/Azure) cobra por hora de máquina Um cluster com: 1 driver (16GB) + 4 workers (16GB cada) = R$ 300-400 por hora Rodando 24/7 = ~R$ 200.000+ por mês Mas a maioria dos clusters passa 80% do tempo sem fazer nada. Rodando query às 9h? Gastando dinheiro. Dormindo? Gastando mais dinheiro. Isso é ineficiência. Não é necessidade do Databricks. Problema #1: Cluster Sempre Ligado (24/7) O Erro: Muitos times deixam um cluster ativo permanentemente "para não perder tempo iniciando quando precisar". O Custo: Se está sempre ligado, está sempre custando. Mesmo que você não esteja usando. A Solução: Auto-terminate. O que isso faz: Se o cluster ficar inativo por 30 minutos, desliga automaticamente Quando você rodará uma query de novo, Databricks inicia um novo cluster em 2-3 minutos Você economiza a inatividade — que é a maioria do tempo Impacto: De R$ 3.000/mês → R$ 1.500/mês Sim, você perde 2-3 minutos quando inicia de novo. Mas se você não está usando o cluster o tempo todo, isso é muito mais barato do que manter rodando 24/7. Benchmark: Cluster inativo 80% do tempo (cenário típico) com auto-terminate economiza ~R$ 1.500/mês. Problema #2: Nós Oversized (Muito Grandes) O Erro: "Melhor prevenir — vou comprar nós maiores." A maioria dos clusters Databricks usa nós de 64GB quando precisariam de 16GB ou 32GB. Por quê? Porque as pessoas configuram "no máximo" e deixam assim para sempre. Afinal, "melhor ter poder sobrando". O Custo: Nó de 64GB custa ~R$ 1.000/mês. Nó de 16GB custa ~R$ 250/mês. Se você tem 4 workers de 64GB quando 16GB seria suficiente, você está gastando R$ 3.000 extras por mês desnecessariamente. A Solução: Right-sizing — escolher o nó correto para o workload. Como medir? 1. Rode sua query típica em um cluster de 16GB 2. Verifique no Spark UI: qual foi a utilização de memória no pico? 3. Se usou < 80% da memória, downsize para o próximo nível menor Impacto: De R$ 1.500/mês (após auto-terminate) → R$ 700/mês No nosso cenário: driver 16GB + 4 workers de 16GB (ao invés de 64GB) = economia de R$ 1.000+/mês. Problema #3: Sem Scheduled Jobs / Tudo On-Demand O Erro: Todos os jobs rodando sob demanda, muitas vezes durante horas de pico do leilão de cloud. Na AWS/Azure, computação é mais cara durante horários de pico. Se você rodar um big job às 10h da manhã (horário de pico), paga mais caro do que rodar às 22h. O Custo: Um job de 2 horas em horário de pico pode custar 30-50% mais do que em horário de baixa demanda. A Solução: Scheduled jobs — agendar jobs para rodar fora do horário de pico. Exemplo: No Databricks, você faz isso via Workflows: Impacto: Reduz custos adicionais de ~R$ 200-300/mês (dependendo de quantos jobs roda e em qual horário). De R$ 700/mês → R$ 400-500/mês Exemplo Real: De R$ 3.000/mês para R$ 500/mês Aqui está o cenário típico de uma empresa usando Databricks: Antes (Configuração Errada): | Componente | Config | Custo/mês | |---|---|---| | Driver Node | 64GB, 24/7 | R$ 1.000 | | 4 Worker Nodes | 64GB cada, 24/7 | R$ 4.000 | | Armazenamento + DBUs | Standard | R$ 1.000 | | Total | 24/7 oversized | R$ 6.000 | Depois (Otimizado): | Componente | Config | Custo/mês | |---|---|---| | Driver Node | 16GB, auto-terminate 30min | R$ 250 | | 2 Worker Nodes | 16GB cada, auto-terminate 30min | R$ 500 | | Armazenamento + DBUs | Standard | R$ 1.000 | | Economia de horário | Jobs agendados 22h-4h | -R$ 250 | | Total | Smart scaling | R$ 1.500 | Economia: 75% de redução Sim, você perde performance? Não — porque: Análises interativas agora em 16GB em vez de 64GB levam 20-30% mais tempo, mas isso é raro ETLs grandes dividem em chunks — em vez de 1 job de 4h com 64GB, são 2 jobs de 2h com 16GB Resultado final: mesma performance no mês, R$ 4.500 a menos gastos A Checklist: Otimizar Seu Cluster em 30 Minutos Quando Você Realmente Precisa de Cluster Grande Cuidado: não estou dizendo que você nunca precisa de um cluster grande. Você realmente precisa se: Você está processando 100GB+ de dados em uma única query Você está rodando ma