Use tempo de evento em vez de tempo de processamento e defina um watermark, que é a estimativa heurística do motor de que nenhum evento mais antigo que um dado timestamp ainda vai chegar. As janelas fecham quando o watermark passa o fim delas. Configure um atraso tolerado para que eventos ligeiramente atrasados ainda atualizem os resultados e mande qualquer coisa mais atrasada para uma saída lateral ou uma tabela de reconciliação, em vez de descartar em silêncio.
Por que os entrevistadores perguntam isso
Dados atrasados são onde streaming fica realmente difícil, então essa pergunta separa quem já rodou um job em produção de quem completou um tutorial. Os entrevistadores querem tempo de evento versus tempo de processamento, o watermark como trade off entre latência e completude, e uma política para eventos muito atrasados em vez de um dar de ombros.
Como estruturar sua resposta
- Distinga tempo de evento de tempo de processamento logo no começo.
- Defina o watermark e o que significa fechar uma janela.
- Enquadre o limite de atraso como trade off entre completude e latência.
- Dê a política para eventos além do limite.
- Mencione medir o atraso real para definir o número empiricamente.
Exemplo de resposta
Primeiro, tudo é chaveado por tempo de evento, porque resultados por tempo de processamento mudam a cada replay e isso os torna inúteis para reconciliação. Depois, o watermark é a afirmação do motor de que ele não espera mais eventos anteriores a esse timestamp, e as janelas se finalizam quando ele passa por elas. Escolher esse atraso é a decisão de design de verdade: um watermark curto entrega resultados rápidos que às vezes estão incompletos, um longo entrega resultados corretos com atraso. Eu defino a partir dos dados, não da intuição. Em um pipeline de app mobile nós medimos a diferença entre tempo de evento e tempo de ingestão e descobrimos que o percentil noventa e nove era de cerca de quatro minutos, causado por celulares offline, então definimos o atraso tolerado em dez minutos. Qualquer coisa mais atrasada ia para uma saída lateral que alimentava um job diário de reconciliação, que corrigia as janelas afetadas no warehouse. A regra que eu mantenho é que dado atrasado nunca é descartado em silêncio. Se a gente descarta, primeiro a gente conta.
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 funcionaPerguntas de acompanhamento que você pode esperar
- Como você escolheria entre atualizar resultados e emitir correções?
- O que acontece com os watermarks quando uma partição para de receber dados?
- Como você limita o tamanho do estado em janelas longas?
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