Change Data Capture (CDC) — Processar Apenas o Que Mudou Seu pipeline processa 50GB de dados todo dia. Mas você sabe quanto realmente mudou desde ontem? Provavelmente 2MB. Você está processando os 50GB de novo. Toda dia. Desperdiçando tempo, poder computacional, e dinheiro em cloud. Change Data Capture (CDC) resolve isso. O Problema: Full Scan Desnecessário Cenário Real O problema é pior em escala. Por Que Acontece? Porque a maioria dos engenheiros de dados faz assim: Isso funciona. Mas é como caminhar 10km todo dia pra comprar um pão no mesmo lugar, em vez de pedir entrega. A Solução: Change Data Capture (CDC) CDC significa capturar apenas as mudanças — inserções, atualizações, deletions — em vez de ler a tabela inteira. Como Funciona (Conceitual) Sem CDC: Com CDC: A pergunta é: como saber quais registros mudaram? Aí é onde entra a implementação específica. Implementação por Database PostgreSQL: Debezium + WAL (Write-Ahead Logs) PostgreSQL escreve TODO comando SQL em um log antes de executar (Write-Ahead Log). Você pode ler esse log e extrair só as mudanças. Implementação (com Debezium — ferramenta pronta): Debezium lê o WAL do PostgreSQL e envia cada mudança para Kafka (ou diretamente para seu warehouse): Você só processa esses eventos. Resultado: 45 minutos viram 3 minutos. MySQL: Binlog Replication MySQL tem binlog (parecido com WAL do PostgreSQL). BigQuery: INFORMATION_SCHEMA + Streaming Timeline BigQuery não tem CDC nativo, mas você pode: 1. Usar INFORMATION_SCHEMA.STREAMING_TIMELINE (para Streaming Inserts): project.dataset.INFORMATION_SCHEMA.STREAMING_TIMELINE 2. Ou usar DML auditing: project.dataset.usuarios__dml_log Delta Lake: Change Data Feed (Nativo) Delta Lake (Databricks) tem CDC integrado: Comparação: Tempo e Custo | Abordagem | Tempo | Custo BigQuery | Volume Processado | |-----------|-------|----------------|-------------------| | Full Scan | 45 min | $12 | 50GB | | CDC | 3 min | $0.24 | 100MB | | Economia | 94% menos | 98% menos | 99.8% menos | Em escala, CDC paga por si: Semanal: 45 min × 7 = 315 min = $84 em full scan. CDC = $1.68. Economia: $82/semana Anual: $82 × 52 = $4.264 de economia por ano em um único pipeline Com 10 pipelines: $42k de economia anual. Quando Usar CDC ✅ Use CDC se: Seu dataset tem >10GB e muda <10% por dia Você roda pipeline mais de 1x por dia Sua tabela tem histórico de mudanças importante (auditoria, compliance) Seu custo de processamento é >$5/execução Você quer real-time ou near-real-time updates ❌ Não vale CDC se: Dataset <5GB (custo de implementação > economia) Pipeline roda 1x por mês Seu warehouse recalcula tudo toda noite mesmo (data warehouse overnight batch) Você está começando e precisa entregar rápido (CDC adiciona complexidade) Passo a Passo: Implementar CDC com PostgreSQL + Python 1. Setup PostgreSQL com Logical Replication 2. Instale Debezium (Docker) 3. Configure Conector Debezium 4. Consuma Eventos Armadilhas Comuns 1. "Estou perdendo eventos" Causa: Consumer caiu e não gravou offset. Debezium continua mas você perdeu mudanças. Solução: Sempre use Kafka com replicação (min.insync.replicas = 2) e graceful shutdown. 2. "Meu pipeline não roda em real-time, virou lento" Causa: CDC gera MUITOS eventos por segundo se seu banco muda muito. Você está processando 1000 eventos/s em vez de 50GB/dia. Solução: Batche eventos (processe a cada 100 eventos ou 1 minuto, o que vier primeiro). 3. "Schema mudou, pipelines quebraram" Causa: Coluna nova foi adicionada. Debezium passa eventos com a coluna, seu schema no warehouse não tem. Solução: Use schema registry e versionamento. Debezium integra com Confluent Schema Registry. Conclusion: CDC é o Upgrade Que Faz Diferença CDC não é "nice to have". É o padrão industrial para pipelines em escala. Se você: Roda 10 pipelines / dia Processa >5GB Paga cloud por execução CDC é obrigatório. O tempo de implementação (1-2 semanas) paga por si em 1-2 meses. Após isso, é economia pura. Próximo passo: Escolha seu database (PostgreSQL com Debezium é a opção mais robusta), defina o primeiro conector, e monitore a economia em tempo real. Na Elite Data Academy, temos módulo de Data Engineering que cobre CDC passo a passo, do setup até troubleshooting em produção. Ideal se você quer aprender a implementar sem desperdiçar semanas em documentação.