Question d'entretien pour ingénieur data

Quand utiliseriez-vous Parquet plutôt qu'Avro, et pourquoi ?

Ce que le recruteur cherche à évaluer, comment structurer votre réponse et un exemple parlé à adapter.

Réponse rapide

Parquet est orienté colonnes : il se compresse bien et permet à une requête de ne lire que les colonnes dont elle a besoin, ce qui le rend adapté aux lectures analytiques. Avro est orienté lignes, avec un encodage binaire compact et un solide support de l'évolution de schéma, ce qui le rend adapté aux chemins d'écriture intensifs et aux payloads de messages où vous consommez des enregistrements entiers. En résumé : Avro pour le transport et l'atterrissage, Parquet pour les tables analytiques que vous interrogez.

Pourquoi les recruteurs posent cette question

Le choix de format est une décision quotidienne en data engineering, avec de vraies conséquences de coût : les recruteurs vérifient donc si vous comprenez la disposition physique plutôt que les noms de marque. Les bonnes réponses mentionnent le predicate pushdown et l'élagage de colonnes, les statistiques de row group, et le fait que les deux portent un schéma, ce qui écarte le débat typé contre non typé.

Comment structurer votre réponse

  • Opposez d'abord la disposition en colonnes et la disposition en lignes.
  • Reliez la disposition en colonnes à la compression et à l'élagage de colonnes.
  • Reliez la disposition en lignes aux ajouts peu coûteux et aux lectures d'enregistrements entiers.
  • Mentionnez le comportement d'évolution de schéma des deux formats.
  • Donnez un pipeline concret où vous avez utilisé chacun.

Exemple de réponse

Exemple parlé, à la première personne

La différence est la disposition physique. Parquet stocke les valeurs colonne par colonne, donc tous les horodatages sont côte à côte et se compressent fort, et une requête qui sélectionne trois colonnes sur quarante lit vraiment l'équivalent de trois colonnes en octets. Il garde aussi des statistiques min et max par row group, donc le predicate pushdown peut sauter des morceaux entiers. Avro est orienté lignes, donc un enregistrement est contigu, ce que vous voulez quand vous ajoutez des événements ou lisez des messages entiers depuis un topic. Sur le dernier pipeline que j'ai construit, les payloads Kafka étaient en Avro avec un schema registry, nous les faisions atterrir en Avro dans la zone brute, puis nous compactions en Parquet dans la couche curée. Cela nous donnait des écritures peu coûteuses en bordure et des lectures analytiques peu coûteuses en aval. Les deux gèrent l'évolution de schéma, mais les règles d'Avro pour ajouter un champ avec une valeur par défaut sont plus indulgentes pour des producteurs et des consommateurs qui se déploient à des moments différents, et c'est pour cela qu'il l'emporte souvent côté transport.

Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.

Voir comment ça marche

Questions de relance à prévoir

  • Qu'est-ce que le predicate pushdown et quand n'aide-t-il pas ?
  • En quoi un schema registry change-t-il vos garanties de compatibilité ?
  • Où se situe ORC par rapport à Parquet ?

Autres questions pour ingénieur data

Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.

Prédire mes questions

Répétez les questions difficiles avant qu'on vous les pose

Entraînez-vous avec un copilote en direct, puis présentez-vous prêt. Un Session Pass à $29 vous accompagne pendant l'entretien, sans abonnement et sans engagement.

Obtenir GhostPilot