Laufende Pipeline anhalten

Wenn Sie einen laufenden Dataflow-Job anhalten müssen, können Sie den Befehl dafür mithilfe der Dataflow Monitoring-Oberfläche und der Dataflow-Befehlszeile erteilen. Zum Anhalten des Jobs stehen Ihnen zwei Befehle zur Verfügung: Abbrechen und Per Drain beenden.

Job mit der Cloud Dataflow-Monitoring-UI anhalten

Um einen Job anzuhalten, wählen Sie den Job in der Job-Liste der Dataflow Monitoring-Oberfläche aus. Klicken Sie auf der Informationskarte des Jobs auf Job anhalten.

Abbildung 1: Informationskarte eines Dataflow-Jobs mit der Schaltfläche "Job anhalten".

Das Dialogfeld Job anhalten erscheint mit den möglichen Optionen, wie Ihr Job angehalten werden kann:

Abbildung 2: Dialogfeld "Job anhalten" mit den Optionen "Abbrechen" und "Per Drain beenden"

Wählen Sie je nach Bedarf die Option Abbrechen oder Per Drain beenden aus und klicken Sie auf Job anhalten.

Abbrechen

Wenn Sie einen Job über die Option Abbrechen anhalten, wird der Job vom Dataflow-Dienst sofort abgebrochen. Der Dienst stoppt die Datenaufnahme und -verarbeitung so bald wie möglich und beginnt sofort mit der Bereinigung der mit Ihrem Auftrag verknüpften Google Cloud-Ressourcen. Dies kann auch beinhalten, dass Compute Engine-Worker-Instanzen heruntergefahren und aktive Verbindungen zu E/A-Quellen oder -Senken getrennt werden.

Da durch "Cancel" (Abbrechen) die Verarbeitung sofort gestoppt wird, können alle "In-Flight-Daten" verloren gehen. Mit "In-Flight-Daten" sind solche Daten gemeint, die gelesen wurden, aber noch von der Pipeline verarbeitet werden. Daten, die von der Pipeline auf eine Ausgabesenke geschrieben wurden, bevor Sie den Befehl "Abbrechen" verwendet haben, können dort gegebenenfalls noch zugänglich sein.

Wenn ein Datenverlust keine Rolle spielt, verwenden Sie die Option "Abbrechen", um Ihr Konto zu deaktivieren, damit die mit Ihrem Job verknüpften Google Cloud-Ressourcen so schnell wie möglich deaktiviert werden.

Per Drain beenden

Mit der Option Per Drain beenden zum Anhalten des Jobs teilen Sie dem Dataflow-Dienst mit, Ihren Job in dem aktuellen Zustand anzuhalten. Ihr Job beendet die Aufnahme neuer Daten aus den Eingabequellen, kurz nachdem die Anfrage für einen Drain eingegangen ist. Dies geschieht in der Regel innerhalb weniger Minuten. Sämtliche vorhandenen Ressourcen, z. B. Worker-Instanzen, werden allerdings vom Dataflow-Dienst aufrechterhalten, damit die Verarbeitung und das Schreiben von gepufferten Daten in der Pipeline abgeschlossen werden können. Wenn alle ausstehenden Verarbeitungs- und Schreibvorgänge abgeschlossen sind, bereinigt der Dataflow-Dienst die mit Ihrem Job verknüpften Google Cloud-Ressourcen.

Wenn Sie einen Datenverlust beim Herunterfahren Ihrer Pipelines vermeiden möchten, verwenden Sie zum Anhalten des Jobs die Option Per Drain beenden.

Auswirkungen des Drain-Befehls auf einen Job

Wenn Sie den Drain-Befehl ausführen, schließt Dataflow sofort alle Fenster für die Verarbeitung und löst sämtliche Trigger aus. Das System wartet nicht, bis ausstehende zeitbasierte Fenster beendet werden. Wenn Ihre Pipeline z. B. zehn Minuten in einem zweistündigen Fenster liegt, wenn Sie den Drain-Befehl ausführen, wartet Dataflow nicht auf den Abschluss des Fensters. Das Fenster wird sofort mit Teilergebnissen geschlossen.

In der Detailansicht der Transformationen der Pipeline sehen Sie die Auswirkungen eines in der Verarbeitung befindlichen Drain-Befehls.

Abbildung 3: Schrittweise Ansicht mit ausgeführtem Drain-Vorgang. Beachten Sie, dass das Wasserzeichen auf den Höchstwert gesetzt wurde.