#Databricks#FinOps#Redução de Custos#Cloud

Como Reduzir Custos no Databricks: Guia Completo de Otimização

2026-02-02 DataFusionX Engineering 25 min read
Databricks Cost Optimization Framework

O Problema: Custos de Cloud Fora de Controle

Segundo pesquisa da Unravel Data, empresas podem economizar entre 35% e 45% em custos de Databricks apenas com otimizações básicas de recursos. O problema é que muitas organizações não sabem por onde começar. Este guia apresenta estratégias práticas, validadas em projetos reais, para reduzir significativamente a fatura mensal do Databricks.

A plataforma Databricks cobra por DBUs (Databricks Units), uma unidade de processamento que varia conforme o tipo de cluster e workload. O custo final é calculado multiplicando o número de DBUs consumidos pelo preço por DBU do plano contratado. Entender essa mecânica é o primeiro passo para otimização.

1. Escolha o Tipo de Compute Correto

Um dos erros mais comuns é usar All-Purpose Clusters para tudo. Esses clusters são 2 a 4 vezes mais caros que Job Clusters. A documentação oficial do Databricks recomenda usar Job Compute para workloads não-interativos, pois o custo por DBU é significativamente menor.

Tipo de Compute Caso de Uso Custo Relativo
All-Purpose Compute Desenvolvimento interativo, notebooks Alto (2-4x)
Jobs Compute ETL batch, pipelines agendados Baixo (1x)
SQL Warehouse Queries SQL, BI tools Médio
Serverless Workloads variáveis, baixa latência Pay-per-use

Dica Prática:

Migre todos os jobs ETL agendados de All-Purpose para Jobs Compute. Essa única mudança pode reduzir custos em 50% ou mais para esses workloads específicos.

2. Spot Instances: Economia de até 90%

Instâncias Spot são capacidade excedente dos provedores de cloud (AWS, Azure, GCP) oferecida com descontos de até 90% em relação ao preço On-Demand. O trade-off é que essas instâncias podem ser interrompidas a qualquer momento.

A estratégia recomendada pelo Databricks é configurar o Driver Node como On-Demand (para manter o Spark Context estável) e os Worker Nodes como Spot. Se a cloud reclamar as instâncias Spot, o Driver solicita novos executores sem falhar o job.


// Cluster Policy para forçar uso de Spot Instances
{
  "aws_attributes.availability": {
    "type": "fixed",
    "value": "SPOT_WITH_FALLBACK"
  },
  "aws_attributes.first_on_demand": {
    "type": "fixed",
    "value": 1
  },
  "aws_attributes.spot_bid_price_percent": {
    "type": "fixed",
    "value": 100
  }
}
      

3. Auto-Scaling e Auto-Termination

Clusters ociosos são dinheiro queimado. O Databricks oferece duas funcionalidades essenciais para evitar desperdício:

Auto-Scaling

Permite que o cluster ajuste automaticamente o número de workers com base na demanda. Configure um mínimo e máximo de workers, e o Databricks escala conforme necessário.


# Configuração de Auto-Scaling via API
{
  "autoscale": {
    "min_workers": 2,
    "max_workers": 10
  }
}
      

Auto-Termination

Define um tempo de inatividade após o qual o cluster é automaticamente desligado. A recomendação é configurar entre 10 e 30 minutos para clusters interativos.

Caso Real:

Uma empresa de e-commerce reduziu custos em 35% apenas implementando auto-termination de 20 minutos em todos os clusters de desenvolvimento, eliminando clusters que ficavam ligados durante a noite e finais de semana.

4. Otimização de Delta Lake

O formato Delta Lake é fundamental para performance no Databricks. Tabelas mal otimizadas geram mais I/O, mais tempo de processamento e, consequentemente, mais custos.

OPTIMIZE e Z-ORDER

O comando OPTIMIZE compacta pequenos arquivos em arquivos maiores (idealmente ~1GB), resolvendo o "small files problem". O ZORDER reorganiza os dados fisicamente para maximizar o Data Skipping.


-- Compactar arquivos e ordenar por colunas frequentemente filtradas
OPTIMIZE sales_table
ZORDER BY (region, product_category);

-- Remover arquivos antigos (economiza storage)
VACUUM sales_table RETAIN 168 HOURS; -- 7 dias
      

Liquid Clustering (Novo)

O Databricks introduziu o Liquid Clustering como evolução do Z-ORDER. Ele reorganiza dados automaticamente durante operações de escrita, eliminando a necessidade de rodar OPTIMIZE manualmente.

5. Photon Engine: Quando Usar

O Photon é o motor de execução vetorizado do Databricks, escrito em C++. Ele acelera queries SQL e operações DataFrame em até 3x, mas custa mais por DBU. A decisão de usar Photon deve ser baseada em análise de custo-benefício.

Cenário Recomendação
Queries SQL complexas com JOINs grandes Use Photon
Agregações pesadas em tabelas grandes Use Photon
UDFs Python complexas Evite Photon
Streaming simples com pouca transformação Evite Photon

6. Monitoramento e Governança

Sem visibilidade, não há otimização. O Databricks oferece ferramentas nativas para monitorar custos:

System Tables

A tabela system.billing.usage permite consultar o consumo de DBUs por workspace, cluster e usuário. Use-a para identificar os maiores consumidores.


-- Top 10 clusters por consumo de DBU no último mês
SELECT 
  cluster_name,
  SUM(usage_quantity) as total_dbus,
  SUM(usage_quantity * list_price) as estimated_cost
FROM system.billing.usage
WHERE usage_date >= DATE_SUB(CURRENT_DATE(), 30)
GROUP BY cluster_name
ORDER BY total_dbus DESC
LIMIT 10;
      

Cluster Policies

Cluster Policies permitem definir regras que limitam o que os usuários podem criar. São essenciais para governança de custos em equipes grandes.

7. Checklist de Otimização

Use esta lista para auditar o ambiente Databricks e identificar oportunidades de economia:

[ ] Jobs ETL usando Jobs Compute (não All-Purpose)

[ ] Spot Instances habilitadas para workers

[ ] Auto-termination configurado (10-30 min)

[ ] Auto-scaling com limites definidos

[ ] Delta Lake com OPTIMIZE/ZORDER agendado

[ ] VACUUM rodando semanalmente

[ ] Cluster Policies implementadas

[ ] Tags de custo configuradas

[ ] Alertas de budget ativos

[ ] Revisão mensal de custos agendada

Conclusão

A otimização de custos no Databricks não é um projeto único, mas um processo contínuo. Comece pelas mudanças de maior impacto (Jobs Compute, Spot Instances, Auto-termination) e evolua para otimizações mais avançadas (Delta Lake, Photon, Cluster Policies).

Com as estratégias apresentadas neste guia, é possível reduzir a fatura do Databricks em 30% a 50% sem comprometer performance. O segredo está em medir, analisar e ajustar continuamente.

Precisa de ajuda especializada?

A DataFusionX oferece diagnósticos gratuitos de custos Databricks. Entre em contato para uma análise personalizada do ambiente e identificação de oportunidades de economia.

./SUBSCRIBE_UPDATES

// Receba dicas de FinOps, cases de otimização e novidades sobre engenharia de dados.