Nutz Event Time statt Processing Time und definier ein Watermark, also die heuristische Schätzung der Engine, dass keine Events älter als ein bestimmter Timestamp mehr eintreffen. Fenster schließen, wenn das Watermark ihr Ende passiert. Setz eine erlaubte Verspätung, damit leicht verspätete Events Ergebnisse noch aktualisieren, und leite alles Spätere in einen Side Output oder eine Abstimmungstabelle, statt es stillschweigend zu verwerfen.
Warum Interviewer das fragen
Verspätete Daten sind der Punkt, an dem Streaming wirklich schwer wird, also trennt diese Frage Leute, die einen Job in Produktion betrieben haben, von denen, die ein Tutorial durchgeklickt haben. Interviewer wollen Event Time gegen Processing Time, das Watermark als Trade-off zwischen Latenz und Vollständigkeit und eine Policy für sehr späte Events statt eines Schulterzuckens.
So baust du deine Antwort auf
- Unterscheide Event Time und Processing Time gleich am Anfang.
- Definier das Watermark und was das Schließen eines Fensters bedeutet.
- Rahme den Verspätungsschwellwert als Trade-off zwischen Vollständigkeit und Latenz.
- Nenn die Policy für Events jenseits des Schwellwerts.
- Erwähn, dass du die tatsächliche Verspätung misst, um die Zahl empirisch zu setzen.
Beispielantwort
Zuerst hängt alles an der Event Time, denn Ergebnisse nach Processing Time ändern sich bei jedem Replay und sind damit für Abstimmungen wertlos. Das Watermark ist dann die Behauptung der Engine, dass sie keine Events älter als diesen Timestamp mehr erwartet, und Fenster werden finalisiert, wenn es sie passiert. Diesen Abstand zu wählen ist die eigentliche Designentscheidung: ein kurzes Watermark liefert schnelle Ergebnisse, die manchmal unvollständig sind, ein langes liefert korrekte Ergebnisse spät. Ich setze das aus Daten und nicht aus dem Bauch. In einer Mobile-App-Pipeline haben wir den Abstand zwischen Event Time und Ingestion Time gemessen und fanden das 99. Perzentil bei etwa vier Minuten, getrieben von Handys ohne Netz, also haben wir die erlaubte Verspätung auf zehn Minuten gesetzt. Alles Spätere ging in einen Side Output, der einen täglichen Abstimmungsjob speiste, welcher die betroffenen Fenster im Warehouse korrigiert hat. Die Regel, an der ich festhalte: verspätete Daten werden nie leise verworfen. Wenn wir sie verwerfen, werden sie vorher gezählt.
Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.
So funktioniert esNachfragen, mit denen du rechnen solltest
- Wie würdest du zwischen dem Aktualisieren von Ergebnissen und dem Ausgeben von Korrekturen wählen?
- Was passiert mit Watermarks, wenn eine Partition keine Daten mehr erhält?
- Wie begrenzt du die State-Größe bei langen Fenstern?
Weitere Fragen für Data Engineer
Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.
Meine Fragen vorhersagen