Dataflow-Vorlagen

Mit Dataflow-Vorlagen können Sie Ihre Pipelines in Google Cloud bereitstellen und mithilfe der Google Cloud Console, des gcloud-Befehlszeilentools oder der REST API-Aufrufe ausführen. Klassische Vorlagen werden als Ausführungsgrafik in Cloud Storage bereitgestellt, während flexible Vorlagen die Pipeline als Docker-Image verpacken und diese Images in der Container Registry Ihres Projekts bereitstellen. Sie können eine der von Google bereitgestellten Vorlagen verwenden oder eigene Vorlagen erstellen.

Vorlagen bieten im Vergleich zu einer nicht auf Vorlagen basierenden Dataflow-Bereitstellung zusätzliche Vorteile:

  • Für die Ausführung der Pipeline müssen Sie nicht jedes Mal Ihren Code neu kompilieren.
  • Sie können Ihre Pipelines ohne die Entwicklungsumgebung und damit verbundenen Abhängigkeiten ausführen, die bei der Bereitstellung ohne Vorlage üblich sind. Dies ist bei der Planung wiederkehrender Batch-Jobs von Vorteil.
  • Sie können die Ausführung mithilfe von Laufzeitparametern anpassen.
  • Nutzer ohne technischen Hintergrund können Vorlagen mit der Google Cloud Console, dem gcloud-Befehlszeilentool oder der REST API ausführen.

Jobs mit und ohne Vorlage vergleichen

In den Dataflow-Vorlagen wird ein neuer Entwicklungs- und Ausführungsworkflow eingeführt, der sich vom Workflow für die Ausführung von Jobs ohne Vorlage unterscheidet. Beim Vorlagenworkflow wird die Entwicklung von der Ausführung abgekoppelt.

Dataflow-Jobs ohne Vorlage

Die Apache Beam-Pipelineentwicklung und -Jobausführung erfolgt meist komplett in einer Entwicklungsumgebung.

Typischer Workflow für Dataflow-Jobs ohne Vorlage:

  1. Entwickler erstellen eine Entwicklungsumgebung und entwickeln ihre Pipeline. Die Umgebung enthält das Apache Beam-SDK und andere Abhängigkeiten.
  2. Nutzer führen die Pipeline in der Entwicklungsumgebung aus. Das Apache Beam-SDK stellt Dateien in Cloud Storage bereit, erstellt eine Jobanfragedatei und sendet die Datei an den Dataflow-Dienst.

Vorlagenbasierte Dataflow-Jobs

Wenn Sie klassische Vorlagen oder flexible Vorlagen verwenden, sind Staging und Ausführung separate Schritte. Dadurch können Sie flexibler entscheiden, wer Jobs ausführen kann und wo die Jobs ausgeführt werden.

Typischer Workflow für Dataflow-Jobs mit Vorlage:

  1. Entwickler erstellen eine Entwicklungsumgebung und entwickeln ihre Pipeline. Die Umgebung enthält das Apache Beam-SDK und andere Abhängigkeiten.
  2. Dieser Schritt hängt vom verwendeten Vorlagentyp ab.
    • Klassische Vorlagen: Entwickler führen die Pipeline aus und erstellen eine Vorlage. Das Apache Beam-SDK stellt Dateien in Cloud Storage bereit, erstellt ähnlich wie bei einer Jobanfrage eine Vorlagendatei und speichert die Vorlagendatei in Cloud Storage.
    • Flexible Vorlagen: Entwickler verpacken die Pipeline in ein Docker-Image und verwenden dann das gcloud-Befehlszeilentool, um die Datei mit der flexiblen Vorlagenspezifikation in Cloud Storage zu erstellen und zu speichern.
  3. Andere Nutzer können Jobs mühelos mit der Cloud Console, dem gcloud-Befehlszeilentool oder der REST API ausführen, um Anfragen zur Ausführung von Vorlagendateien an den Dataflow-Dienst zu senden.

Darüber hinaus können Sie klassische Vorlagenjobs über die Monitoring-Benutzeroberfläche von Dataflow klonen. Im Formular zur Übermittlung für geklonte Jobs sind bereits Parameterwerte eingetragen. Sie können jedoch geändert werden, bevor Sie den Job ausführen.

Zum Klonen eines Jobs führen Sie die folgenden Schritte aus:

  1. Rufen Sie die Seite Jobdetails für den Job auf, den Sie klonen möchten.
  2. Klicken Sie auf Klonen.
  3. Aktualisieren Sie bei Bedarf die Jobparameter.
  4. Klicken Sie auf Job ausführen, um den neuen Job zu senden.

Den zu verwendenden Vorlagentyp beurteilen

Flexible Vorlagen bieten mehr Flexibilität als klassische Vorlagen, da kleinere Varianten von Dataflow-Jobs über eine einzige Vorlage gestartet werden und die Verwendung jeder Quell- oder Senken-E/A ermöglicht wird. Bei klassischen Vorlagen wird die Ausführungsgrafik während der Vorlagenerstellung erstellt. Die Ausführungsgrafik für flexible Vorlagen wird auf Basis der Laufzeitparameter, die der Nutzer bei der Ausführung der Vorlage bereitstellt, dynamisch erstellt. Wenn Sie mit flexiblen Vorlagen arbeiten, können Sie daher kleinere Anpassungen vornehmen, um verschiedene Aufgaben mit derselben zugrunde liegenden Vorlage auszuführen. Ein Beispiel hierfür ist das Ändern des Dateiformats der Quelle oder Senke.

Vorlagenbasierte Jobs vergleichen

In der folgenden Tabelle werden die Gemeinsamkeiten und Unterschiede zwischen klassischen und flexiblen Vorlagen zusammengefasst:
Option Klassische Vorlagen Flex-Vorlagen
Schritte für Staging und Ausführung abkoppeln Ja Ja
Vorlage mit der Google Cloud Console, dem gcloud-Tool oder den REST API-Aufrufen ausführen Ja Ja
Pipeline ohne erneutes Kompilieren von Code ausführen Ja Ja
Pipeline ohne Entwicklungsumgebung und zugehörige Abhängigkeiten ausführen Ja Ja
Pipelineausführung mit Laufzeitparametern anpassen Ja Ja
Validierungen bei der Erstellung der Jobgrafik ausführen, um Laufzeitfehler zu reduzieren Nein Ja
Kann die Ausführungsgrafik des Jobs ändern, nachdem die Vorlage erstellt wurde Nein Ja
Kann Streamingjobs aktualisieren Ja Nein
Unterstützt FlexRS Ja Nein
Unterstützt SQL-Parameter Nein Ja
Unterstützung von E/A-Schnittstellen abseits von ValueProvider Nein Ja

Sowohl bei klassischen Vorlagen- als auch bei flexiblen Vorlagenjobs finden das Staging und die Ausführung in verschiedenen Schritten statt. Die beiden Arten von vorlagenbasierten Jobs führen jedoch zu unterschiedlichen Staging-Artefakten. Wenn Sie klassische Vorlagen verwenden, ist das bereitgestellte Artefakt die Vorlage mit der JSON-serialisierten Ausführungsgrafik. Bei Flex-Vorlagen ist das bereitgestellte Artefakt ein Docker-Image, das die JAR-Datei oder den Python-Code enthält.

SDK-Versionsanforderungen

Überprüfen Sie, ob Ihre Apache Beam-SDK-Version die Vorlagenerstellung für eigene Vorlagen unterstützt.

Java: SDK 2.x

Zum Erstellen von Vorlagen mit dem Apache Beam SDK 2.x für Java benötigen Sie die Version 2.0.0-beta3 oder höher.

Python

Zum Erstellen von Vorlagen mit dem Apache Beam SDK 2.x für Python benötigen Sie die Version 2.0.0 oder höher.

Java: SDK 1.x

Zum Ausführen von Vorlagen mit dem gcloud-Befehlszeilentool benötigen Sie das Cloud SDK 138.0.0 oder höher.

Nächste Schritte