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 ... SELECTagendado 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