Voltar aos projetos EN
Estudo de caso

Otimização de pipelines ETL no Databricks

Aplicação de técnicas de otimização Spark que reduziram o runtime de pipelines críticos em até 94%, com impacto direto no custo de DBU.

Power Tuning · 2025

Problema

Pipelines ETL críticos apresentavam runtimes excessivos — chegando a quase 17 minutos por execução —, ampliando o consumo de DBU, estourando janelas de processamento e impedindo o SLA de entrega de dados.

Arquitetura

flowchart TB
  subgraph Antes
    A1[Full scan em toda a tabela] --> A2[Joins com shuffle]
    A2 --> A3[Small files acumulados]
    A3 --> A4[Runtime de ate 17 minutos]
  end
  subgraph Depois
    B1[Leitura incremental] --> B2[BroadcastJoin]
    B2 --> B3[CLUSTER BY + OPTIMIZE]
    B3 --> B4[Runtime de menos de 1 min a 4 min]
  end
  A4 -.otimizacao.-> B1
  classDef bad fill:#1a1018,stroke:#ef4444,color:#e2e8f0
  classDef good fill:#0d1525,stroke:#10b981,color:#e2e8f0
  class A1,A2,A3,A4 bad
  class B1,B2,B3,B4 good

Solução

  • BroadcastJoin: broadcasts de tabelas pequenas eliminaram shuffles desnecessários em joins.
  • CLUSTER BY: reorganização física dos dados para maximizar o data skipping em leituras futuras.
  • OPTIMIZE: compactação de small files que degradavam a performance de leitura e escrita.
  • Leitura incremental: substituição de full scans por leitura apenas das linhas novas, reduzindo o volume processado a cada execução.

Resultados

  • fato_notafiscal: 20 min → 4 min (-80%)
  • fato_ordemvenda: 5m 46s → menos de 1 min (-83%)
  • fato_remessa: 9m 31s → menos de 1 min (-90%)
  • notafiscalremessa: 4m 55s → menos de 1 min (-80%)
  • fato_financeiroareceber: 10m 2s → menos de 1 min (-90%)
  • fato_partidascontabeis: 16m 59s → menos de 1 min (-94%)

Stack

Databricks PySpark Spark SQL Delta Lake