Question d'entretien pour ingénieur data

Que signifie qu'un pipeline soit idempotent, et comment en construisez-vous un ?

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

Réponse rapide

Un pipeline idempotent produit le même résultat que vous le lanciez une fois ou cinq fois sur la même fenêtre d'entrée. Construisez-le en faisant en sorte que chaque exécution possède une tranche de données déterministe, puis en remplaçant cette tranche au lieu d'y ajouter. Utilisez l'écrasement de partition ou un merge sur une clé stable, dérivez la fenêtre de l'intervalle planifié plutôt que de l'horloge, et évitez les effets de bord non rejouables.

Pourquoi les recruteurs posent cette question

L'idempotence est la propriété qui rend les reprises, les rejeux d'historique et la récupération d'incident sûrs : cette question demande donc en réalité si vous avez déjà exploité des pipelines à 3h du matin. Les recruteurs veulent le motif delete puis insert ou merge, l'usage de l'intervalle de données planifié plutôt que de now(), et la conscience des effets de bord non rejouables comme les e-mails ou les écritures vers une API externe.

Comment structurer votre réponse

  • Définissez-la comme : une exécution ou plusieurs, même état final.
  • Donnez le mécanisme : écraser une partition ou merger sur une clé.
  • Insistez sur le fait que la fenêtre temporelle vient de la planification, pas de l'horloge.
  • Signalez les effets de bord qui cassent l'idempotence.
  • Expliquez pourquoi cela rend les rejeux d'historique triviaux.

Exemple de réponse

Exemple parlé, à la première personne

Cela veut dire que je peux relancer le job d'hier maintenant et obtenir exactement la même table que s'il s'était exécuté proprement une seule fois. Le motif que j'utilise : chaque exécution possède une partition, et l'écriture remplace cette partition au lieu d'y ajouter. Donc le job du 2026-08-25 supprime et réécrit la partition de cette date, ou merge sur une clé unique, et le lancer quatre fois ne change rien après la première. Le détail qui piège les gens, c'est le temps. Si votre job filtre sur maintenant moins un jour, alors une relance trois jours plus tard traite la mauvaise fenêtre : l'intervalle doit venir de l'intervalle de données de l'orchestrateur, pas de l'horloge à l'intérieur de la tâche. Je surveille aussi les effets de bord, parce que nous avions un pipeline qui envoyait un e-mail de synthèse à la fin, et une reprise a fait que la finance a reçu deux fois le même rapport. Nous avons déplacé la notification dans une tâche séparée, avec sa propre clé de déduplication. Une fois que tout est idempotent, rejouer l'historique revient simplement à exécuter une plage de dates.

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 rendriez-vous idempotent un pipeline qui écrit vers une API externe ?
  • Quelle est la différence entre idempotent et déterministe ici ?
  • Comment gérez-vous une source qui modifie l'historique rétroactivement ?

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