Pular para conteúdo

3. Extração de Dados: Domínio Contrato

Objetivo

Estabelecer um processo de ingestão que preserve a fidelidade técnica dos dados legados, garantindo que a "matéria-prima" para a Medallion architecture seja rastreável e passível de reprocessamento (idempotência).

Detalhes da Origem (Inventory)

  • Ambiente: Servidor de Produção (Réplica de Leitura/Snapshot).
  • Tecnologia: Banco de Dados Relacional (Legado InfoEscola).
  • Versão do Schema: v2024.04 (Snapshot de referência para o projeto).
  • Encoding de Origem: latin1 / CP1252 (Atenção a caracteres especiais em nomes de alunos).

Escopo da Extração

Todos os dados do sistema legado foram extraídos em uma carga só (full load). Os dados são históricos, não haverá alteração.

Rastreabilidade e Governança

Toda carga gerada neste ciclo de extração do sistema legado seguiram as seguintes regras de rastreabilidade:

  • _extraction_at: Timestamp UTC do início do processo.
  • _source_system: Identificador do sistema de origem (ex: infoescola_legacy).
  • Checksum da linha original para validação de integridade.

Protocolo de Armazenamento (Bronze Layer)

Os dados serão armazenados em formato Parquet (ou Delta) no destino, mantendo a estrutura exata da origem.

  • Caminho: /mnt/bronze/contrato/YYYY/MM/DD/
  • Regra de Ouro: Nenhuma transformação destrutiva ou cast de tipo será feito nesta etapa. O dado bruto é sagrado.

Gestão de Ocorrências e Limitações

  • Tratamento de Encoding: Qualquer erro de decodificação será logado e o registro marcado com _error_flag = 'encoding_issue', em vez de interromper a extração.
  • Timeout: Configuração de retry (3 tentativas) para tabelas volumosas como PESSOA.
  • Limitação Conhecida: O campo observacao_contrato no legado é um campo BLOB/TEXT que pode conter caracteres de quebra de linha que corrompem CSVs; por isso, a extração será via conector binário direto para Parquet.

Evidências de Execução (Checklist de Saída)

1. Log de Extração (Exemplo de Saída)

[2026-05-14 10:00:00] INFO: Iniciando extração da tabela CONTRATO. [2026-05-14 10:05:22] SUCCESS: 450.123 registros extraídos com sucesso. [2026-05-14 10:05:23] WARN: 12 registros ignorados por erro de truncamento no campo 'complemento'.

2. Validação de Volume

Tabela Contagem Origem (Source) Contagem Destino (Bronze) Status
CONTRATO 450.123 450.123 ✅ Match
PESSOA 1.200.550 1.200.550 ✅ Match

3. Intervalo Temporal

  • Início: 2018-01-01 00:00:00
  • Fim: 2026-04-30 23:59:59

Status da Extração:

  • [x] Origem e Destino Mapeados
  • [x] Chaves de Rastreabilidade Definidas
  • [x] Estratégia de Carga (Incremental/Full) Validada
  • [x] Logs de Erro Estruturados