Pergunta de entrevista para Engenheiro de Dados

O que significa um pipeline ser idempotente, e como você constrói um?

O que o entrevistador está avaliando, como estruturar sua resposta e um exemplo falado que você pode adaptar.

Resposta rápida

Um pipeline idempotente produz o mesmo resultado quer você rode uma vez ou cinco vezes para a mesma janela de entrada. Construa isso fazendo cada execução ser dona de uma fatia determinística de dados e depois substituindo essa fatia em vez de acrescentar a ela. Use sobrescrita de partição ou um merge em uma chave estável, derive a janela do intervalo agendado e não do relógio, e evite efeitos colaterais que não podem ser repetidos.

Por que os entrevistadores perguntam isso

Idempotência é a propriedade que torna retentativas, backfills e recuperação de incidente seguros, então essa pergunta na verdade quer saber se você já operou pipelines às 3 da manhã. Os entrevistadores querem o padrão de delete e insert ou merge, o uso do intervalo de dados agendado em vez de now(), e consciência sobre efeitos colaterais não repetíveis como e-mails ou escritas em APIs externas.

Como estruturar sua resposta

  • Defina como rodar uma ou muitas vezes e terminar no mesmo estado.
  • Dê o mecanismo: sobrescrever uma partição ou fazer merge em uma chave.
  • Insista que a janela de tempo vem do agendamento, não do relógio.
  • Aponte os efeitos colaterais que quebram a idempotência.
  • Explique por que isso torna os backfills triviais.

Exemplo de resposta

Exemplo falado, em primeira pessoa

Significa que eu posso rodar o job de ontem agora mesmo e terminar com exatamente a mesma tabela que teria se ele tivesse rodado uma vez sem problemas. O padrão que eu uso é que cada execução é dona de uma partição, e a escrita é uma substituição daquela partição em vez de um append. Então o job de 2026-08-25 apaga e reescreve a partição daquela data, ou faz merge em uma chave única, e rodar quatro vezes não muda nada depois da primeira. O detalhe que pega as pessoas é o tempo. Se o seu job filtra por agora menos um dia, uma reexecução três dias depois processa a janela errada, então o intervalo tem que vir do data interval do orquestrador, não do relógio dentro da task. Eu também fico de olho em efeitos colaterais, porque tivemos um pipeline que mandava um e-mail de resumo no final e uma retentativa fez o financeiro receber o mesmo relatório duas vezes. Movemos a notificação para uma task separada com a sua própria chave de deduplicação. Uma vez que tudo é idempotente, fazer backfill é só rodar um intervalo de datas.

Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.

Veja como funciona

Perguntas de acompanhamento que você pode esperar

  • Como você tornaria idempotente um pipeline que escreve em uma API externa?
  • Qual é a diferença entre idempotente e determinístico aqui?
  • Como você lida com uma origem que altera o histórico retroativamente?

Mais perguntas para Engenheiro de Dados

Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.

Prever minhas perguntas

Ensaie as perguntas difíceis antes que elas apareçam

Pratique com um copiloto ao vivo e depois entre pronto. Um Session Pass de $29 te leva até o fim da entrevista, sem assinatura e sem amarras.

Instalar o GhostPilot