Pergunta de entrevista para Engenheiro de Dados

Você precisa reprocessar dois anos de histórico depois de corrigir um bug de transformação. Como você aborda isso?

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

Resposta rápida

Reprocesse primeiro para um destino separado, valide contra a tabela existente e só então faça a troca. Processe em blocos por partição em vez de um job gigantesco, rode com concorrência limitada para não sufocar as cargas de produção e torne cada bloco idempotente para que falhas possam ser repetidas no lugar. Acompanhe o progresso de forma explícita e leve em conta que atributos de dimensão e dados de origem podem ter mudado desde então.

Por que os entrevistadores perguntam isso

Backfills são um rito de passagem e uma forma comum de causar um segundo incidente. Os entrevistadores querem divisão em blocos, isolamento de recursos em relação à produção e validação antes da troca. Eles também sondam se você reconhece que recomputar o histórico nem sempre é reprodutível, já que dimensões, taxas de câmbio e registros de origem podem ter mudado por baixo.

Como estruturar sua resposta

  • Escreva em uma tabela sombra para que a produção fique intacta.
  • Divida por partição e limite a concorrência para proteger as cargas ao vivo.
  • Torne cada bloco idempotente e repetível de forma independente.
  • Valide com reconciliação contra agregados reconhecidamente corretos.
  • Troque de forma atômica e guarde a tabela antiga por uma janela de rollback.

Exemplo de resposta

Exemplo falado, em primeira pessoa

Eu nunca faço backfill no lugar. Eu construo em uma tabela sombra, valido e então troco com um rename atômico ou um ponteiro de view, guardando a antiga por uma semana caso alguém note uma discrepância. A execução em si é dividida por partição, normalmente mensal ou semanal dependendo do volume, com talvez quatro rodando ao mesmo tempo, porque a forma mais rápida de causar um segundo incidente é saturar o warehouse e explodir todos os jobs agendados ao mesmo tempo. Eu também rodo em um warehouse ou grupo de recursos separado, quando a plataforma permite. Validação é a parte que as pessoas apressam. Eu escolho alguns agregados em que o financeiro já confia, receita por mês por exemplo, e comparo o antigo com o novo, esperando diferenças só onde o bug se aplicava. Se um mês muda e não deveria, a correção está errada. A outra coisa que eu sinalizo cedo é que o histórico nem sempre é reprodutível: se a dimensão é tipo 1 e foi sobrescrita, recomputar o passado devolve os atributos de hoje, não os históricos.

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ê evita que um backfill sufoque as suas cargas de produção?
  • E se o sistema de origem não retiver mais os dados brutos?
  • Como você comunicaria uma mudança em números históricos aos stakeholders?

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