Question d'entretien pour ingénieur data

Qu'est-ce que le change data capture, et en quoi le CDC basé sur les logs diffère-t-il d'un polling sur une colonne d'horodatage ?

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

Réponse rapide

Le change data capture diffuse les changements au niveau ligne depuis une base source. Le CDC basé sur les logs lit directement le journal de transactions : il capture donc les insertions, mises à jour et suppressions physiques dans l'ordre des commits, avec presque aucune charge sur la source. Le polling d'une colonne updated_at est plus simple mais rate les suppressions physiques, rate les états intermédiaires entre deux sondages, dépend de l'application qui maintient la colonne, et peut rater des lignes à cause de problèmes d'horloge ou de frontière transactionnelle.

Pourquoi les recruteurs posent cette question

C'est une vraie décision d'architecture sur presque tous les projets d'ingestion. Les recruteurs veulent entendre les faiblesses précises du polling par horodatage, en particulier les suppressions et les transactions en cours, et vérifier si vous comprenez ce que le CDC basé sur les logs exige de la source : slots de réplication, rétention des logs, permissions et un plan pour le snapshot initial.

Comment structurer votre réponse

  • Définissez le CDC et nommez les deux principales implémentations.
  • Listez exactement ce que rate le polling par horodatage.
  • Décrivez ce que le CDC basé sur les logs exige de la base source.
  • Expliquez le passage de relais entre snapshot et flux.
  • Dites comment vous géreriez les changements de schéma sur la table source.

Exemple de réponse

Exemple parlé, à la première personne

Le CDC consiste à récupérer les changements au niveau ligne plutôt que de relire des tables entières. Le CDC basé sur les logs, avec quelque chose comme Debezium qui lit le write ahead log de Postgres ou le binlog MySQL, vous donne chaque insertion, mise à jour et suppression dans l'ordre des commits, et n'ajoute presque aucune charge de requêtes sur la primaire. Le polling d'une colonne updated_at est bien plus simple à mettre en place, et c'est très bien pour des données de référence qui bougent lentement, mais il a de vrais trous. Il ne voit pas du tout les suppressions physiques, donc des lignes persistent silencieusement en aval pour toujours. Il rate les états intermédiaires si une ligne change deux fois entre deux sondages, et il dépend du fait que chaque écrivain pense à renseigner la colonne, ce qu'un job legacy de notre parc n'a jamais fait. Le CDC basé sur les logs a son propre coût opérationnel. Il vous faut un slot de réplication, et si votre consommateur cale, le log n'est pas recyclé et le disque de la source se remplit, ce qui est une défaillance vraiment dangereuse. Je surveille donc le retard du slot comme une alerte de premier plan, à côté du retard du pipeline.

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éreriez-vous le snapshot initial sans bloquer la source ?
  • Que se passe-t-il si un slot de réplication Postgres prend du retard ?
  • Comment représentez-vous une suppression en aval dans une table en ajout seul ?

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