Utilisez le temps d'événement plutôt que le temps de traitement, et définissez un watermark, c'est-à-dire l'estimation heuristique du moteur selon laquelle plus aucun événement antérieur à un horodatage donné n'arrivera. Les fenêtres se ferment quand le watermark dépasse leur fin. Réglez une tolérance de retard pour que les événements légèrement en retard mettent encore à jour les résultats, et routez tout ce qui arrive plus tard vers une sortie annexe ou une table de réconciliation, plutôt que de le jeter en silence.
Pourquoi les recruteurs posent cette question
Les données en retard sont l'endroit où le streaming devient vraiment difficile : cette question sépare donc ceux qui ont fait tourner un job en production de ceux qui ont suivi un tutoriel. Les recruteurs veulent le temps d'événement contre le temps de traitement, le watermark comme arbitrage entre latence et exhaustivité, et une politique pour les événements très en retard plutôt qu'un haussement d'épaules.
Comment structurer votre réponse
- Distinguez d'emblée le temps d'événement du temps de traitement.
- Définissez le watermark et ce que signifie fermer une fenêtre.
- Présentez le seuil de retard comme un arbitrage exhaustivité contre latence.
- Donnez la politique pour les événements au-delà du seuil.
- Mentionnez la mesure du retard réel pour fixer la valeur empiriquement.
Exemple de réponse
D'abord, tout est indexé sur le temps d'événement, parce que les résultats en temps de traitement changent à chaque rejeu, ce qui les rend inutilisables pour la réconciliation. Ensuite, le watermark est l'affirmation du moteur selon laquelle il n'attend plus d'événements antérieurs à cet horodatage, et les fenêtres se finalisent quand il les dépasse. Choisir ce décalage est la vraie décision de conception : un watermark court donne des résultats rapides parfois incomplets, un long donne des résultats corrects mais tardifs. Je le fixe à partir des données, pas de l'intuition. Sur un pipeline d'application mobile, nous avons mesuré l'écart entre temps d'événement et temps d'ingestion et trouvé un quatre-vingt-dix-neuvième centile autour de quatre minutes, à cause des téléphones hors ligne : nous avons donc réglé la tolérance de retard à dix minutes. Tout ce qui arrivait plus tard partait vers une sortie annexe qui alimentait un job de réconciliation quotidien, lequel corrigeait les fenêtres concernées dans l'entrepôt. La règle à laquelle je me tiens, c'est qu'une donnée en retard n'est jamais jetée en silence. Si on l'écarte, on la compte d'abord.
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 marcheQuestions de relance à prévoir
- Comment choisiriez-vous entre mettre à jour les résultats et émettre des corrections ?
- Qu'arrive-t-il aux watermarks quand une partition cesse de recevoir des données ?
- Comment bornez-vous la taille de l'état pour de longues fenêtres ?
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