Entrega E2 · 12% da nota Semana 10

Ingestão em lote e captura de mudanças

O dado sai da origem e chega ao armazenamento analítico em formato aberto, por dois caminhos de natureza diferente.

Prazo
Peso
12% da nota final
Semana
Semana 10 no cronograma
Onde entregar
No repositório público da Squad, com a tag e2

O dado sai do OLTP e chega ao armazenamento analítico por dois caminhos de natureza diferente. Fazer os dois é o ponto: eles falham de maneiras distintas, e a Squad precisa ter visto as duas falhas.

O que se espera

Um caminho em lote, que traz a carga completa ou incremental da fonte pública, é idempotente e pode ser reexecutado sem duplicar nada. E um caminho de mudanças, que captura o que muda no OLTP — decodificação lógica do WAL com Debezium, ou um fluxo equivalente — e o entrega a jusante.

Do outro lado, a camada analítica em formato aberto: Parquet no mínimo, e uma tabela Iceberg ou Delta por cima. “Aberto” é requisito, não sugestão: o ponto pedagógico é que o dado não fique refém do motor que o escreveu.

A decisão desta Entrega

O ADR da E2 é sobre o mecanismo de ingestão. Há muito o que medir:

  • CDC contra recarga periódica: qual a latência de cada um, e a que custo de operação? A opção nula aqui costuma ser forte — INSERT ... SELECT agendado resolve muitos domínios, e dizer isso com número vale mais do que montar Kafka por reflexo.
  • Iceberg ou Delta? Ambos servem; o que muda são as garantias de evolução de esquema e o ecossistema de leitura. Escolha com critério explícito.
  • Qual a semântica de entrega do seu fluxo — no mínimo uma vez, no máximo uma vez, exatamente uma vez? Demonstre, não afirme: force uma reexecução e mostre o que acontece com os dados.

Erros que se repetem

  • CDC que nunca viu uma mudança. O conector sobe, o tópico existe, e nada jamais foi atualizado na fonte. Escreva um script que altere linhas no OLTP e mostre o efeito atravessando o fluxo.
  • Parquet sem particionamento nem pensamento. Um arquivo por execução, milhares de arquivos pequenos. Isso tem nome e tem consequência de leitura.
  • Reprocessamento que duplica. Rodar duas vezes dobra as linhas. Idempotência é requisito da avaliação, não refinamento.
  • Dado atrasado ignorado. O evento que chega com três dias de atraso cai na janela errada ou some. Trate explicitamente, e diga o que você escolheu fazer com ele.

Checklist de aceite

É o que a monitoria confere na correção. Item não atendido não zera a Entrega, mas pesa nos critérios de funcionamento e reprodutibilidade.

  • Ingestão em lote da fonte pública, idempotente e reexecutável
  • Fluxo de mudanças a partir do OLTP — CDC por decodificação lógica ou streaming
  • Camada de armazenamento analítico em formato aberto (Parquet, e tabela Iceberg ou Delta)
  • Semântica de entrega declarada e demonstrada: o que acontece se o consumidor reprocessar
  • Tratamento explícito de dado atrasado e de reprocessamento de janela
  • Escolha de serialização e compressão justificada pelo padrão de acesso, não por padrão da ferramenta
  • 1 ADR sobre a escolha do mecanismo de ingestão, com a opção nula considerada
  • Diário de bordo das Semanas 7 a 10 no repositório