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:

  • 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.
  • Vorlagen trennen die Pipelineerstellung (durch Entwickler durchgeführt) von der Ausführung der Pipeline. Daher ist es nicht erforderlich, den Code bei jeder Ausführung der Pipeline neu zu kompilieren.
  • 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 Antragsformular für geklonte Jobs sind bereits Parameterwerte eingetragen. Sie können jedoch geändert werden, bevor Sie den Job ausführen.

Mit den folgenden Schritten clonen Sie einen Job:

  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.

Informationen zu den verschiedenen Phasen der Pipelineerstellung und -ausführung mit oder ohne Verwendung einer klassischen Vorlage oder einer Flex-Vorlage finden Sie unter Dataflow-Pipeline in eine wiederverwendbare Vorlage umwandeln.

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 aktualisieren1 Ja Ja
Unterstützt FlexRS1 Ja Ja
Unterstützt SQL-Parameter Nein Ja
Unterstützung von E/A-Schnittstellen abseits von ValueProvider Nein Ja

Hinweise:

1. Um das Streaming-Update oder das FlexRS-Feature zu verwenden, müssen Nutzer ihre FlexRS-Vorlagen mit der Basis-Image-Version 20210120_RC00 neu erstellen.

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