Saltar para o conteúdo

Blog · 28 de agosto de 2026

Quarentena, não crash: o que um pipeline deve fazer com linhas inválidas

Um carregamento que falha por causa de um registo malformado não é rigoroso, é frágil. Um carregamento que o aceita em silêncio é pior. A resposta útil é uma terceira.

3 min de leitura

Há dois modos de falha que aparecem constantemente no carregamento de dados, e são opostos.

O primeiro é o pipeline que para de vez na primeira linha inválida. Um registo tem uma data malformada, o processo dá erro, e 400 000 registos bons não chegam ao destino. Alguém é chamado, corrige uma célula e volta a correr tudo.

O segundo é o pipeline que aceita tudo. Nunca nada falha, o que parece ótimo até alguém reparar que o valor da faturação está errado e ninguém saber dizer desde quando.

A terceira opção

As linhas inválidas devem ser encaminhadas, não fatais. Valide cada registo com as regras que realmente importam, deixe passar os bons e escreva as falhas numa tabela de quarentena, com o motivo da falha e o lote de onde vieram.

Isto muda a forma do problema. O carregamento termina. Os dados bons ficam disponíveis. Os dados inválidos não são descartados em silêncio nem aceites em silêncio: estão num sítio concreto, com uma explicação, à espera de serem analisados. E, sobretudo, o número de linhas em quarentena passa a ser um valor que se pode acompanhar.

Uma tabela de quarentena sempre vazia diz que as regras são demasiado permissivas. Uma que se está a encher diz exatamente onde procurar.

Que regras vale a pena impor

Nem todas as verificações merecem desviar uma linha. As que geralmente merecem:

  • Campos obrigatórios de que dependem os joins seguintes. Um id de cliente em falta não é um problema cosmético.
  • Tipos que têm de ser interpretáveis. Uma data que não é uma data vai falhar mais tarde, mais longe e de forma mais confusa.
  • Verificações referenciais contra dimensões que controla. Uma encomenda de um produto que não existe é um sinal real.
  • Intervalos fisicamente impossíveis. Quantidades negativas, datas no futuro, percentagens acima de cem.

Verificações que funcionam melhor como avisos do que como desvios: valores invulgares mas válidos, campos opcionais, tudo aquilo em que o negócio tem casos genuinamente confusos mas válidos. Desviá-los ensina as pessoas a ignorar a quarentena, o que anula o objetivo.

A deriva de esquema é outra categoria

Uma coluna que desaparece, muda de tipo ou chega com um nome novo não é uma linha inválida. É um contrato quebrado, e deve parar o carregamento em vez de pôr 100% dos registos em quarentena, um a um.

A distinção importa na operação. As falhas ao nível da linha são um problema de dados e muitas vezes corrigem-se sozinhas. A deriva de esquema é uma mudança na origem de que alguém precisa de saber hoje, porque todos os pressupostos a jusante acabaram de ficar em dúvida.

Como é quando está bem feito

Percebe-se se um pipeline trata isto bem com uma pergunta: quando algo corre mal, o sistema diz-lhe o quê, quanto e desde quando? Se a resposta é um stack trace, o desenho não está terminado. Se a resposta é um número de linhas, um motivo e um id de lote, está.

  • Qualidade de dados
  • Pipelines
  • Fiabilidade

← Todos os artigos

Quer isto para o seu negócio?

Diga-nos o que demora demasiado tempo ou o que quer melhorar.