Question d'entretien pour ingénieur data

Qu'est-ce qu'un schéma en étoile, et quand normaliseriez-vous plutôt une dimension en flocon ?

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

Réponse rapide

Un schéma en étoile a une table de faits entourée de tables de dimension dénormalisées, si bien que la plupart des requêtes n'ont besoin que d'une jointure par dimension. Le flocon normalise une dimension en sous-tables, ce qui économise du stockage et centralise les attributs partagés, mais ajoute des jointures. Sur un entrepôt en colonnes, le stockage est bon marché et les jointures coûtent plus cher que la duplication : l'étoile est donc le choix par défaut. Passez au flocon quand la dimension est vraiment volumineuse, hiérarchique ou partagée entre de nombreux marts.

Pourquoi les recruteurs posent cette question

Les recruteurs s'en servent pour tester si vous savez raisonner sur des compromis physiques plutôt que réciter Kimball. Les meilleures réponses notent que la compression en colonnes rend les dimensions dénormalisées peu coûteuses, que les moteurs de requête gèrent bien les jointures par broadcast sur les petites dimensions, et que le véritable argument pour l'étoile est l'ergonomie pour les analystes plutôt que la performance brute.

Comment structurer votre réponse

  • Décrivez la forme en étoile et pourquoi elle est agréable pour les analystes.
  • Expliquez le flocon comme une normalisation des dimensions.
  • Argumentez le compromis en termes de jointures contre stockage sur des moteurs en colonnes.
  • Donnez un cas concret où le flocon est le bon choix.
  • Mentionnez la granularité comme la décision qui précède les deux.

Exemple de réponse

Exemple parlé, à la première personne

Une étoile, c'est une table de faits à une granularité définie, avec des dimensions dénormalisées accrochées autour, si bien qu'un analyste écrit une jointure par dimension et obtient des noms de colonnes lisibles. C'est mon choix par défaut, parce que sur un entrepôt en colonnes, répéter un nom de pays sur deux millions de lignes se compresse à presque rien, et la petite dimension part en broadcast de toute façon. Le flocon prend du sens quand la dimension est réellement volumineuse et hiérarchique, par exemple une dimension produit avec un arbre de catégories que plusieurs marts doivent partager, puisque maintenir cette hiérarchie à un seul endroit vaut mieux que la dupliquer cinq fois. Le point que je soulèverais avant l'un ou l'autre, c'est la granularité. Décider que la table de faits est à une ligne par ligne de commande plutôt que par commande détermine tout en aval, et se tromper là-dessus produit le classique bug de revenus comptés deux fois. J'ai déjà dû reconstruire un mart parce que la granularité était mélangée, et c'est bien plus coûteux que n'importe quel débat sur la normalisation.

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

  • Comment décidez-vous la granularité d'une table de faits ?
  • Qu'est-ce qu'une factless fact table et quand vous en serviriez-vous ?
  • Comment modélisez-vous une relation plusieurs-à-plusieurs entre fait et dimension ?

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