Dataflow-Vorlagen

Mit Dataflow-Vorlagen können Sie eine Dataflow-Pipeline für die Bereitstellung verpacken. Jeder Nutzer mit den entsprechenden Berechtigungen kann dann die Vorlage zum Bereitstellen der Paket-Pipeline verwenden. Sie können eigene benutzerdefinierte Dataflow-Vorlagen erstellen. Google bietet vordefinierte Vorlagen für gängige Szenarien.

Vorteile

Vorlagen bieten mehrere Vorteile gegenüber der direkten Bereitstellung einer Pipeline in Dataflow:

  • Vorlagen trennen das Pipelinedesign von der Bereitstellung. Beispielsweise kann ein Entwickler eine Vorlage erstellen und ein Data Scientist kann diese zu einem späteren Zeitpunkt bereitstellen.
  • Vorlagen können Parameter enthalten, mit denen Sie die Pipeline bei der Bereitstellung der Vorlage anpassen können.
  • Sie können eine Vorlage mithilfe der Google Cloud Console, der Google Cloud-Befehlszeile oder der REST API-Aufrufe bereitstellen. Sie benötigen keine Entwicklungsumgebung oder Pipeline-Abhängigkeiten, die auf Ihrem lokalen Computer installiert sind.
  • Eine Vorlage ist ein Codeartefakt, das in einem Versionsverwaltungs-Repository gespeichert und in Continuous Integration-Pipelines (CI/CD) verwendet werden kann.

Von Google bereitgestellte Vorlagen

Google bietet eine Vielzahl vordefinierter Open-Source-Dataflow-Vorlagen, die Sie für gängige Szenarien verwenden können. Weitere Informationen zu den verfügbaren Vorlagen finden Sie unter Von Google bereitgestellte Vorlagen.

Flexible Vorlagen mit klassischen Vorlagen vergleichen

Dataflow unterstützt zwei Arten von Vorlagen: Flex-Vorlagen, neuere und klassische Vorlagen. Wenn Sie eine neue Dataflow-Vorlage erstellen, empfehlen wir, sie als Flex-Vorlage zu erstellen.

Mit einer Flex-Vorlage wird die Pipeline zusammen mit einer Vorlagenspezifikationsdatei in Cloud Storage als Docker-Image in Artifact Registry gepackt. Die Vorlagenspezifikation enthält einen Verweis auf das Docker-Image. Wenn Sie die Vorlage ausführen, startet der Dataflow-Dienst eine Launcher-VM, ruft das Docker-Image ab und führt die Pipeline aus. Die Ausführungsgrafik wird auf Basis der vom Nutzer bereitgestellten Laufzeitparameter dynamisch erstellt. Verwenden Sie die projects.locations.flexTemplates.launch-Methode, um mit der API einen Job zu starten, der eine Flex-Vorlage nutzt.

Eine klassische Vorlage enthält die JSON-Serialisierung einer Dataflow-Jobgrafik. Der Code für die Pipeline muss alle Laufzeitparameter in die Schnittstelle ValueProvider einschließen. Über diese Schnittstelle können Nutzer beim Bereitstellen der Vorlage Parameterwerte angeben. Informationen zur Verwendung der API für klassische Vorlagen finden Sie in der API-Referenzdokumentation zu projects.locations.templates.

Flex-Vorlagen haben die folgenden Vorteile gegenüber herkömmlichen Vorlagen:

  • Im Gegensatz zu klassischen Vorlagen benötigen Flex-Vorlagen die Schnittstelle ValueProvider für Eingabeparameter nicht. Nicht alle Dataflow-Quellen und -Senken unterstützen ValueProvider.
  • Während klassische Vorlagen eine statische Jobgrafik haben, können Flex-Vorlagen die Jobgrafik dynamisch erstellen. Die Vorlage kann beispielsweise einen anderen E/A-Connector anhand der Eingabeparameter auswählen.
  • Eine Flex-Vorlage kann die Vorverarbeitung auf einer virtuellen Maschine (VM) während der Pipelineerstellung durchführen. So können zum Beispiel Eingabeparameterwerte validiert werden.

Vorlagen-Workflow

Die Verwendung von Dataflow-Vorlagen umfasst die folgenden allgemeinen Schritte:

  1. Entwickler richten eine Entwicklungsumgebung ein und entwickeln ihre Pipeline. Die Umgebung enthält das Apache Beam-SDK und andere Abhängigkeiten.
  2. Je nach Vorlagentyp (Flex oder Classic):
    • Bei Flex-Vorlagen packen die Entwickler die Pipeline in ein Docker-Image, übertragen das Image in Artifact Registry und laden eine Vorlagenspezifikationsdatei in Cloud Storage hoch.
    • Bei klassischen Vorlagen führen Entwickler die Pipeline aus, erstellen eine Vorlagendatei und stellen die Vorlage in Cloud Storage bereit.
  3. Andere Nutzer senden eine Anfrage an den Dataflow-Dienst, um die Vorlage auszuführen.
  4. Dataflow erstellt eine Pipeline aus der Vorlage. Es kann bis zu fünf bis sieben Minuten dauern, bis die Pipeline ausgeführt wird.

IAM-Berechtigungen festlegen

Dataflow-Jobs, einschließlich Jobs, die über Vorlagen ausgeführt werden, verwenden zwei IAM-Dienstkonten:

  • Der Dataflow-Dienst verwendet ein Dataflow-Dienstkonto, um Google Cloud-Ressourcen wie VMs zu bearbeiten.
  • Die Dataflow-Worker-VMs verwenden ein Worker-Dienstkonto, um auf die Dateien und andere Ressourcen Ihrer Pipeline zuzugreifen. Dieses Dienstkonto benötigt Zugriff auf alle Ressourcen, auf die der Pipelinejob verweist, einschließlich der von der Vorlage verwendeten Quellen und Senken. Weitere Informationen finden Sie unter Zugriff auf Google Cloud-Ressourcen.

Sorgen Sie dafür, dass diese beiden Dienstkonten die entsprechenden Rollen haben. Weitere Informationen finden Sie unter Sicherheit und Berechtigungen in Dataflow.

Anforderungen an die Apache Beam SDK-Version

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

Java

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.

Zum Ausführen von Vorlagen mit der Google Cloud-Befehlszeile benötigen Sie Google Cloud CLI Version 138.0.0 oder höher.

Vorlagen erweitern

Sie können eigene Vorlagen erstellen, indem Sie die Open-Source-Vorlagen von Dataflow erweitern. Bei einer Vorlage, die eine feste Fensterdauer verwendet, können beispielsweise Daten, die außerhalb des Fensters eingehen, verworfen werden. Verwenden Sie den Vorlagencode als Basis und ändern Sie den Code zum Aufrufen des Vorgangs .withAllowedLateness, um dieses Verhalten zu vermeiden.

Nächste Schritte