Google PDE: Stream-Verarbeitung mit Dataflow und Apache Beam — Lernleitfaden

Teil des Google Professional Data Engineer — Lernleitfaden. Üben Sie mit verifizierten Antworten im Google-Prüfungscenter, oder absolvieren Sie zeitlich begrenzte Übungstests auf ExamRoll.io.

Überblick

Die Stream-Verarbeitung in der Google Cloud basiert auf dem einheitlichen Programmiermodell von Apache Beam, das vom Dataflow-Runner ausgeführt wird. Beam bietet eine logische Abstraktion – Pipelines von Transformationen über PCollections –, die Ihren Code von Ausführungsdetails wie Parallelität, Autoskalierung und Fehlertoleranz entkoppelt. Beim Streaming hängt die Korrektheit von der Zeitsemantik (Ereigniszeit vs. Verarbeitungszeit), dem Windowing (feste, gleitende, Sitzungs-, globale Fenster), Watermarks, Triggern und der Behandlung verspäteter Daten ab. Ein exzellenter Betrieb auf Dataflow erfordert die richtige Worker-Größe, eine passende Autoskalierungsrichtlinie, die Wahl der Streaming-Engine und der Shuffle-Optionen, ein idempotentes Senken-Design, die Handhabung von Dead-Letter-Nachrichten und eine robuste Observability.

Apache-Beam-Modell und Zeitsemantik

Fehlermodi und Kompromisse:

Betrieb von Dataflow für Streaming-Workloads

Bereitstellung, Vorlagen und Upgrade-Strategien

undefined

undefined

Praktisches Problemszenario

NovaTrack Inc. erfasst globale IoT-Telemetriedaten von 50.000 Temperatursensoren und muss minutengenaue Aggregate liefern, Rohdaten persistieren und ein Echtzeit-Dashboard bereitstellen. Gelegentlich fehlerhafte Nachrichten und eine außerplanmäßige Zustellung (out-of-order) sind zu erwarten. Die Lösung muss automatisch skalieren, fehlerhafte Datensätze zur Überprüfung bereitstellen und Upgrades ohne Ausfallzeiten unterstützen.

Ansatz:

  1. Ingestion und Zeitsemantik

    • Erstellen Sie ein regionales Pub/Sub-Thema und pro Region Publisher mit den Attributen deviceId und eventTs (RFC3339). Aktivieren Sie, wenn möglich, Ordering Keys nach deviceId.
    • Begründung: Pub/Sub bietet einen langlebigen, elastischen Ingress mit At-least-once-Zustellung. Das Anhängen von Ereigniszeitstempeln am Edge bewahrt die wahre Ereigniszeit; die Sortierung pro Gerät reduziert die Neuordnung innerhalb eines Geräts ohne zentrale Engpässe.
  2. Dataflow-Streaming-Pipeline mit Ereigniszeit-Fenstern (Event-Time Windows)

    • Lesen Sie aus einer dedizierten Subscription über PubSubIO, extrahieren Sie eventTs als Beam-Zeitstempel und verwenden Sie publishTime als Fallback, falls dieser fehlt.
    • Wenden Sie FixedWindows von 1 Minute mit einem Early Trigger nach 30 Sekunden und Late Firings für jedes verspätete Element an; setzen Sie die zulässige Verspätung (Allowed Lateness) auf 10 Minuten und akkumulieren Sie die Panes.
    • Begründung: Ereigniszeit-Fenster gewährleisten genaue Minutenaggregate; Early Firings versorgen das Dashboard mit unterminütiger Aktualität; Late Firings korrigieren Aggregate, wenn verspätete Daten eintreffen. Die Begrenzung der Verspätung deckelt die Zustandsgröße (State Size) und die Kosten.
  3. Validierung, Anreicherung und Dead-Letter-Routing

    • Implementieren Sie eine ParDo-Transformation, die JSON parst, Schema und Wertebereiche validiert und mit kleinen statischen Referenzdaten über einen Side-Input anreichert, der beim Job-Start aus BigQuery geladen wird.
    • Verwenden Sie TupleTags, um gültige Datensätze an den Haupt-Output und fehlerhafte an eine Dead-Letter-PCollection auszugeben, die Payload, Fehler, deviceId und Parse-Zeitstempel enthält; schreiben Sie die DLQ in eine partitionierte BigQuery-Tabelle.
    • Begründung: Side-Inputs halten Referenzdaten für geringe Latenz im Speicher. Die Erfassung in einer Dead-Letter-Queue ermöglicht die Überprüfung und gezielte Neuverarbeitung fehlerhafter Zeilen, ohne den Hauptfluss zu blockieren.
  4. Aggregation und Hot-Key-Mitigation

    • Gruppieren Sie nach deviceId und berechnen Sie pro Minute avg/min/max mit CombineFns. Für Top-N-Regionalmetriken sharden Sie nach region#N, um Hot Keys zu vermeiden, und aggregieren Sie dann erneut.
    • Begründung: Combiner minimieren das Shuffle-Volumen und die Kosten; Key-Sharding verhindert Engpässe durch einzelne Schlüssel während des regionalen Fan-Ins.
  5. Sinks und Exactly-Once-Effekte

    • Schreiben Sie validierte Rohdatenereignisse und Minutenaggregate mit BigQueryIO und der Storage Write API nach BigQuery. Setzen Sie eine stabile Insert-ID basierend auf deviceId + eventTs für Idempotenz bei benutzerdefinierten Wiederholungsversuchen (Retries).
    • Begründung: Die Storage Write API bietet eine Ingestion mit hohem Durchsatz und geringer Latenz mit Exactly-Once-Semantik innerhalb eines Streams. Stabile IDs gewährleisten die nachgelagerte Deduplizierung, falls Wiederholungen (Replays) auftreten.
  6. Strategie für die Dashboard-Konsistenz

    • Das Dashboard fragt partitionierte Aggregat-Tabellen mit einem Rückblick (Lookback) von 2 Minuten relativ zum Watermark oder einer festen Verzögerung von 2x der beobachteten Verfügbarkeitslatenz für Streaming-Daten ab.
    • Begründung: Die Sichtbarkeit von BigQuery-Streaming ist Eventually Consistent; eine leichte Verzögerung der Lesezugriffe verhindert fehlende, sich in Verarbeitung befindliche Zeilen (in-flight) und bewahrt gleichzeitig ein Nahezu-Echtzeit-Verhalten.
  7. Betrieb: Autoscaling und Streaming Engine

    • Aktivieren Sie die Streaming Engine; setzen Sie maxWorkers basierend auf der erwarteten Spitzenlast (z. B. 3x Durchschnitt), wählen Sie einen Maschinentyp, der für CPU-gebundenes Parsen und Verschlüsselung ausgelegt ist, und vergrößern Sie die Boot-Disk, um transientes Shuffle zu bewältigen.
    • Überwachen Sie Watermark-Lag, Backlog in Sekunden, CPU und den Durchsatz pro Schritt; richten Sie Alarme für anhaltenden Lag und Spitzen in der DLQ-Rate ein.
    • Begründung: Die Streaming Engine externalisiert Zustand (State) und Shuffle für mehr Elastizität und einfachere Upgrades; die richtige Dimensionierung (Right-Sizing) und Überwachung verhindern stille SLO-Verletzungen.
  8. Bereitstellung und Upgrades mit Flex Templates

    • Bündeln Sie die Pipeline als Flex Template mit Parametern: Input-Subscription, Output-Tabellen, DLQ-Tabelle, maxWorkers und Region. Bei einer inkompatiblen Änderung starten Sie die neue Pipeline, die auf dasselbe Topic mit einer neuen Subscription zielt, überprüfen Sie die Ausgaben und leeren (drain) Sie dann den alten Job. Erstellen Sie optional einen Pub/Sub-Snapshot und lassen Sie die neue Subscription auf den Snapshot zugreifen (seek), um Lücken zu garantieren.
    • Begründung: Flex Templates ermöglichen wiederholbare, parametrisierte Bereitstellungen. Ein verifizierter Blue/Green-Cutover mit Drain erreicht null Datenverlust und minimale Ausfallzeiten.
  9. Neuverarbeitung und Batch-Backfills

    • Speichern Sie komprimierte Avro-Dateien der Rohdatenereignisse über einen Side-Output in Cloud Storage; führen Sie eine Batch-Dataflow-Pipeline aus, um Daten nachzufüllen (Backfill) oder neu zu verarbeiten, wenn sich Modelle oder Schemata ändern.
    • Begründung: Dauerhafte Rohdatenarchive unterstützen die Reproduzierbarkeit und Schema-Evolution, ohne den Hot Path zu beeinträchtigen.

Dieses Design liefert korrekte Aggregate mit geringer Latenz bei begrenzten Kosten, klarer Fehlerisolierung, starker Observability und sicheren Upgrade-Pfaden, während es gleichzeitig außerplanmäßige und verspätete Daten im globalen Maßstab verarbeitet.


BigQuery Analytics und Warehouse-Engineering · Alle Domänen · Messaging

Diese Fragen üben → · Zeitlich begrenzte Übung auf ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Bestehe deine Prüfung →

Google durchsuchen →

Related guides

All-in-One Zugang

Ein Abonnement. Jede Prüfung.

Jeder Plan schaltet unbegrenzte Antwortsuche, Übungstests, KI-Erklärungen und die vollständige Ressourcenbibliothek frei – in über 20 Sprachen.

Monatlich
24.87
Just €0.83/day
Alles inklusive:
  • Unbegrenzte Antwortsuche
  • Unbegrenzte Übungstests
  • KI-gestützte Erklärungen
  • Vollständige Ressourcenbibliothek
  • Über 20 Sprachen
  • Wöchentliche Inhaltsaktualisierungen
  • Belohnungen & Empfehlungen
  • Priorisierter Support
Kostenlose Testphase starten

Keine Kreditkarte erforderlich*

Bestes Preis-Leistungs-Verhältnis
12 Monate
179.87
Just €0.49/daySave 40%
Alles inklusive:
  • Unbegrenzte Antwortsuche
  • Unbegrenzte Übungstests
  • KI-gestützte Erklärungen
  • Vollständige Ressourcenbibliothek
  • Über 20 Sprachen
  • Wöchentliche Inhaltsaktualisierungen
  • Belohnungen & Empfehlungen
  • Priorisierter Support
Kostenlose Testphase starten

Keine Kreditkarte erforderlich*

✓ Kostenloser Plan enthalten · ✓ Jederzeit kündbar · ✓ Alle Pläne schalten das vollständige Produkt frei