Question d'entretien pour ingénieur data

Expliquez les slowly changing dimensions et la façon dont vous implémenteriez le type 2.

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

Réponse rapide

Les slowly changing dimensions décrivent la manière de gérer les changements d'attributs dans les tables de dimension. Le type 1 écrase et perd l'historique. Le type 2 insère une nouvelle ligne à chaque changement, avec une clé de substitution, des horodatages valid_from et valid_to et un indicateur de version courante, si bien que les faits se joignent à la version de l'attribut qui était vraie à ce moment-là. Le type 3 conserve une colonne de valeur précédente pour un seul état antérieur.

Pourquoi les recruteurs posent cette question

C'est la question centrale de la modélisation dimensionnelle, et elle sépare ceux qui ont construit un entrepôt de ceux qui n'en ont fait que des requêtes. Les recruteurs attendent la clé de substitution, parce que les clés naturelles cassent dès que vous avez plusieurs lignes par entité, et ils veulent entendre comment les faits se joignent à la bonne version historique plutôt qu'à la version courante.

Comment structurer votre réponse

  • Définissez les types 1, 2 et 3 en une ligne chacun.
  • Détaillez les colonnes du type 2 : clé de substitution, valid_from, valid_to, is_current.
  • Expliquez comment les faits se joignent à la bonne version au moment de l'événement.
  • Couvrez la logique de chargement : fermer l'ancienne ligne, insérer la nouvelle.
  • Mentionnez le coût : croissance de la table et complexité des requêtes.

Exemple de réponse

Exemple parlé, à la première personne

Le type 1 écrase simplement la valeur, donc vous perdez l'historique. Le type 2 conserve l'historique en ajoutant une ligne à chaque changement d'attribut. Concrètement, cela veut dire une clé de substitution comme clé primaire, la clé métier naturelle à côté, des horodatages valid_from et valid_to, et un booléen is_current par commodité. La table de faits stocke la clé de substitution qui était courante au moment de l'événement, si bien qu'un fait de vente de mars se joint toujours au territoire de mars du commercial, et non à son territoire actuel. Cette distinction est tout l'intérêt du sujet, et c'est ce que la finance remarquera si vous vous trompez. Le chargement est un merge : trouver les lignes dont les colonnes suivies ont changé, positionner valid_to sur la ligne existante, insérer une nouvelle ligne avec valid_from renseigné et valid_to à null ou à une date lointaine. En général, je hache les colonnes suivies en une seule clé de changement, pour que la comparaison soit un seul test d'égalité plutôt que vingt.

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 gérez-vous un enregistrement de dimension qui arrive en retard ?
  • Qu'arrive-t-il à votre table de faits si vous utilisez la clé naturelle à la place ?
  • Comment implémenteriez-vous le type 2 dans dbt ?

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