Brains Up AnalyticsBRAINSUPAnalytics
ETLAzurePerformance

Ingestão incremental: pare de recarregar tudo toda noite

Watermarking, change data capture e os padrões que reduzem custo e janela de processamento em pipelines de ETL.

Recarregar a tabela inteira toda noite funciona — até a tabela ter 500 milhões de linhas e a janela noturna não ser mais suficiente. A ingestão incremental é o que mantém pipelines rápidos e baratos conforme o volume cresce.

Watermarking

A técnica mais comum é o watermark: você guarda o maior valor de uma coluna monotônica (geralmente updated_at ou um ID sequencial) processado na última execução e, na próxima, busca apenas o que veio depois.

SELECT * FROM origem
WHERE updated_at > '${ultimo_watermark}';

Simples, mas há armadilhas:

  • Fuso horário e relógios. Use UTC de ponta a ponta.
  • Registros atrasados. Se a fonte pode inserir dados com updated_at no passado, considere uma janela de sobreposição (reprocessar as últimas X horas).
  • Deletes. Watermark por updated_at não captura exclusões físicas. Para isso, você precisa de CDC ou soft deletes.

Change Data Capture (CDC)

Quando a fonte suporta, o CDC lê o log de transações do banco e entrega inserts, updates e deletes em ordem. É mais robusto que watermarking, mas exige suporte da fonte e mais infraestrutura.

No Azure, você pode combinar o CDC do SQL Server com o Azure Data Factory; no Lakehouse, o MERGE do Delta aplica essas mudanças de forma idempotente.

A regra prática

Comece simples: watermark com janela de sobreposição resolve a maioria dos casos. Migre para CDC quando precisar capturar deletes ou quando a latência exigir near-real-time. Resistir à tentação de "recarregar tudo, é mais fácil" é o que diferencia um pipeline que escala de um que vai te acordar de madrugada daqui a um ano.

Articles liés

Vous avez aimé ? Découvrez les e-books pour du contenu approfondi.

E-books