Recentemente enfrentamos um desafio clássico de Engenharia de Dados: sincronizar várias tabelas com milhões de registros entre duas instâncias PostgreSQL.

O cenário inicial era crítico: as cargas full (carga completa) levavam até 5 dias para rodar, o que inviabilizava a atualização frequente dos dados para a tomada de decisão.

🚀 A Solução: Estratégia Incremental com dltHub

Decidimos testar o dltHub implementando uma estratégia de carga incremental. O resultado superou as expectativas:

  • Tempo de processamento: Redução drástica de 5 dias para menos de 23 horas.
  • Confiabilidade: Ganhamos performance e previsibilidade no pipeline.
  • Manutenção: A gestão das cargas ficou muito mais simples.

🛑 O Desafio dos “Hard Deletes”

Um ponto crítico desse projeto foi lidar com registros excluídos. A fonte dos dados fazia hard delete (apagava o registro fisicamente), o que é um pesadelo para manter o destino sincronizado em processos incrementais (já que o registro simplesmente “some” da origem e o incremental não percebe).

A solução aplicada foi simples e eficiente:

  1. Alteramos a origem para salvar os IDs dos registros excluídos em uma tabela auxiliar de controle.
  2. Sincronizamos essa tabela de “deletados” também de forma incremental.
  3. No destino, aplicamos uma rotina que lê esses IDs e remove os registros correspondentes.

O resultado foi um processo simples, prático e auditável.


🛠 Stack Utilizada

  • Orquestração: Apache Airflow
  • Ingestão: dltHub
  • Banco de Dados: PostgreSQL

Se você também está lutando com pipelines lentas ou problemas de sincronia de exclusões, vale a pena testar esse combo.