Pular para o conteúdo

Quando a fonte muda de layout e quebra o pipeline em silêncio

· ETL, contrato de dados, qualidade

Em resumo: quando um fornecedor muda o layout de um arquivo (uma coluna a mais, ordem trocada, encoding diferente) sem avisar, um pipeline ingênuo continua rodando e desalinha as colunas, então o relatório sai com valores no campo errado, sem nenhum erro. A defesa é um contrato de dados que valida o arquivo na entrada e barra o que não bate.

Como uma mudança "pequena" corrompe tudo

Pipelines costumam ler a posição da coluna ("a terceira é o valor"). Se a fonte insere uma coluna no meio, a terceira passa a ser outra coisa, e o pipeline lê data como valor, ou mistura cliente com produto. Nada quebra; tudo fica errado. É o tipo de falha que só aparece quando alguém estranha o número, dias depois. Já vi esse desalinhamento em produção mais de uma vez.

Por que o pipeline não acusa sozinho

Porque ele foi escrito para confiar no formato. Sem uma verificação explícita, ele faz o que mandaram: lê e processa. O pipeline executou a tarefa, mas não a tarefa certa, e essa é a raiz do erro silencioso.

Contrato de dados: validar antes de processar

A ideia é o arquivo provar que está no formato esperado antes de entrar:

  1. Esquema esperado: nome e ordem das colunas, tipos, encoding.
  2. Validação na ingestão: se não bate com o contrato, para e avisa, não processa.
  3. Quarentena: o arquivo problemático fica retido para análise, não vira relatório (como funciona).
  4. Ler por nome, não por posição: robustez extra contra reordenação de colunas.

É o princípio contract-first de um pipeline confiável: a fonte muda, o contrato acusa primeiro.

Schema drift e monitoramento de pipeline

Quando o layout do arquivo muda de um dia para o outro, o nome técnico disso é schema drift: a mudança de schema silenciosa da fonte. Contrato barra na entrada. Monitoramento de pipeline fecha o cerco, acompanhando esquema, contagem de colunas e volume a cada carga, e avisando quando a fonte muda antes de o número sair errado. Um impede; o outro enxerga.

Perguntas frequentes

Como detectar schema drift antes de o relatório sair errado? Compare o esquema de cada arquivo com um contrato fixo na ingestão: nome, ordem e tipo das colunas. Se não bate, o pipeline para e avisa. Monitoramento de pipeline complementa, registrando contagem de colunas e volume por carga e acusando o desvio na hora, não dias depois.

Ler colunas por nome resolve quando o layout do arquivo muda? Ajuda, mas não basta. Ler por nome protege contra reordenação. Não protege contra coluna removida, renomeada ou com tipo trocado. Por isso o contrato valida o conjunto inteiro na entrada, e não só a posição: é a diferença entre robustez parcial e barrar toda mudança de schema.

Implemento essa blindagem em pipelines ETL/ELT. Recebe arquivos de terceiros que mudam sem aviso? Posso ajudar a proteger a entrada do seu pipeline.

Leia também

Peça um diagnóstico do seu fechamento

Deixe seu contato e eu retorno com uma leitura rápida de onde seu relatório depende de uma pessoa — sem compromisso.

Resposta humanaSem cobrança até a propostaNDA bilateral

Esse problema parece o seu?

Uma conversa de 30 minutos, sem compromisso. Eu falo onde está o risco e o que resolver primeiro.