Pergunta de entrevista para Engenheiro de Dados

Quando você usaria Parquet em vez de Avro, e por quê?

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

Resposta rápida

Parquet é colunar, então comprime bem e permite que uma consulta leia só as colunas necessárias, o que o torna certo para leituras analíticas. Avro é orientado a linha, com codificação binária compacta e suporte forte a evolução de schema, o que o torna certo para caminhos com muita escrita e para payloads de mensagens em que você consome registros inteiros. Em resumo, Avro para transporte e aterrissagem, Parquet para as tabelas analíticas que você consulta.

Por que os entrevistadores perguntam isso

Escolha de formato é uma decisão diária de engenharia de dados com consequências reais de custo, então os entrevistadores checam se você entende o layout físico e não apenas os nomes das marcas. Boas respostas mencionam predicate pushdown e leitura seletiva de colunas, estatísticas de row group e o fato de que os dois carregam schemas, então isso não é um debate entre tipado e não tipado.

Como estruturar sua resposta

  • Contraste primeiro o layout colunar com o orientado a linha.
  • Conecte o layout colunar à compressão e à leitura seletiva de colunas.
  • Conecte o layout de linha a appends baratos e leitura de registros inteiros.
  • Mencione o comportamento de evolução de schema nos dois.
  • Dê um pipeline concreto em que você usou cada um.

Exemplo de resposta

Exemplo falado, em primeira pessoa

A diferença é o layout físico. O Parquet guarda os valores coluna a coluna, então todos os timestamps ficam juntos e comprimem muito, e uma consulta que seleciona três de quarenta colunas realmente lê o equivalente a três colunas em bytes. Ele também mantém estatísticas de mínimo e máximo por row group, então o predicate pushdown consegue pular pedaços inteiros. O Avro é orientado a linha, então um registro é contíguo, que é o que você quer quando está fazendo append de eventos ou lendo mensagens inteiras de um tópico. No último pipeline que eu construí, os payloads do Kafka eram Avro com um schema registry, aterrissávamos como Avro na zona raw e depois compactávamos em Parquet na camada curada. Isso nos dava escritas baratas na borda e leituras analíticas baratas mais adiante. Os dois lidam com evolução de schema, mas as regras do Avro para adicionar um campo com valor padrão são mais tolerantes para producers e consumers que fazem deploy em momentos diferentes, e é por isso que ele tende a vencer no lado do transporte.

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

  • O que é predicate pushdown e quando ele não ajuda?
  • Como um schema registry muda as suas garantias de compatibilidade?
  • Onde o ORC se encaixa em comparação com o Parquet?

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