Dataflow Prime verwenden

Dataflow Prime ist eine serverlose Datenverarbeitungsplattform für Apache Beam-Pipelines. Dataflow Prime basiert auf Dataflow und verwendet eine für Computing-Architektur mit getrennten Status. In den folgenden Fällen kann Dataflow Prime die Pipeline-Effizienz verbessern:

Dataflow Prime unterstützt sowohl Batch- als auch Streamingpipelines. Standardmäßig verwendet Dataflow Prime Dataflow Shuffle und Dataflow Runner v2 für Batchpipelines.

Unterstützung von SDK-Versionen

Dataflow Prime unterstützt die folgenden Apache Beam SDKs:

  • Apache Beam Python SDK Version 2.21.0 oder höher

  • Apache Beam Java SDK Version 2.30.0 oder höher

  • Apache Beam Go SDK Version 2.44.0 oder höher

Zum Herunterladen des SDK-Pakets oder zum Lesen der Versionshinweise rufen Sie Apache Beam-Downloads auf.

Dataflow Prime-Features

Im Folgenden finden Sie die Liste der unterstützten Dataflow Prime-Features für verschiedene Arten von Pipelines:

  • Vertikales Autoscaling (Arbeitsspeicher). Unterstützt Streamingpipelines in Python, Java und Go.
  • Right Fitting (Ressourcenhinweise). Unterstützt Batchpipelines in Python und Java.
  • Job Visualizer. Unterstützt Batchpipelines in Python und Java.
  • Smart Recommendations. Unterstützt sowohl Streaming- als auch Batchpipelines in Python und Java.
  • Data Pipelines. Unterstützt sowohl Streaming- als auch Batchpipelines in Python und Java.

Die Features "Job Visualizer", "Smart Recommendations" und "Data Pipelines" werden auch für Nicht-Dataflow Prime-Jobs unterstützt.

Vertikales Autoscaling

Dieses Feature passt den für die Dataflow-Worker-VMs verfügbaren Arbeitsspeicher automatisch an die Anforderungen der Pipeline an und hilft, Fehler aufgrund fehlenden Arbeitsspeichers zu vermeiden. In Dataflow Prime arbeitet vertikales Autoscaling mit horizontalem Autoscaling zusammen, um Ressourcen dynamisch zu skalieren.

Weitere Informationen finden Sie unter Vertikales Autoscaling.

Individuell anpassbar

Dieses Feature verwendet Ressourcenhinweise, ein Feature von Apache Beam. Mithilfe von Ressourcenhinweisen können Sie Ressourcenanforderungen entweder für die gesamte Pipeline oder für bestimmte Schritte der Pipeline angeben. Mit diesem Feature können Sie benutzerdefinierte Worker für verschiedene Schritte einer Pipeline erstellen. Mit Right Fitting können Sie Pipelineressourcen angeben, um die Effizienz zu maximieren, die Betriebskosten zu senken und Fehler aufgrund fehlenden Arbeitsspeichers und andere Ressourcenfehler zu vermeiden. Es unterstützt Ressourcenhinweise für Arbeitsspeicher und GPU.

Für Right Fitting ist Apache Beam 2.30.0 oder höher erforderlich.

Weitere Informationen finden Sie unter Richtige Anpassung.

Job Visualizer

Mit diesem Feature können Sie sich die Leistung eines Dataflow-Jobs ansehen und die Leistung des Jobs optimieren, indem Sie ineffizienten Code ausfindig machen, einschließlich Engpässen bei der Parallelisierung. In der Google Cloud Console können Sie auf der Seite Jobs auf einen beliebigen Dataflow-Job klicken, um Details zu diesem Job aufzurufen. Sie können auch die Liste der Schritte sehen, die mit jeder Phase der Pipeline verknüpft sind.

Weitere Informationen finden Sie unter Ausführungsdetails.

Smart Recommendations

Mit diesem Feature können Sie die Pipeline gemäß den Empfehlungen auf dem Tab Diagnose der Detailseite eines Jobs optimieren und Fehler beheben. In der Google Cloud Console können Sie auf der Seite Jobs auf einen beliebigen Dataflow-Job klicken, um Details zu diesem Job aufzurufen.

Weitere Informationen finden Sie unter Empfehlungen und Diagnose.

Datenpipelines

Mit diesem Feature können Sie Jobs planen, Ressourcenauslastungen beobachten, Ziele der Datenaktualität für Streamingdaten verfolgen und Pipelines optimieren.

Weitere Informationen finden Sie unter Mit Datenpipelines arbeiten.

Kontingent- und Limitanforderungen

Für Dataflow und Dataflow Prime gelten dieselben Kontingente und Limits. Weitere Informationen finden Sie unter Kontingente und Limits.

Wenn Sie sich für Data Pipelines entscheiden, hat das zusätzliche Auswirkungen für Kontingente und Regionen.

Nicht unterstützte Funktionen

Dataflow Prime unterstützt Folgendes nicht:

  • Festlegen bestimmter VM-Typen mit dem Flag --worker_machine_type oder --machine_type für Python-Pipelines und --workerMachineType für Java-Pipelines.

  • Anzeigen oder Verwenden von SSH zur Anmeldung bei Worker-VMs.

  • Die Klasse OrderedListState für Java-Pipelines.

  • Flexible Resource Scheduling (FlexRS).

  • VPC Service Controls mit vertikalem Autoscaling verwenden. Wenn Sie Dataflow Prime aktivieren und einen neuen Job in einem VPC Service Controls-Perimeter starten, verwendet der Job Dataflow Prime ohne vertikales Autoscaling.

  • NVIDIA Multi-Process-Dienst (MPS).

  • Für Java-Pipelines, die die folgenden Anforderungen erfüllen, können die Klassen MapState und SetState verwendet werden:

    • Streaming Engine verwenden
    • Apache Beam SDK-Versionen 2.58.0 und höher verwenden
    • Runner v2 nicht verwenden

Alle Pipelineoptionen, die oben nicht explizit oder in der Tabelle zum Vergleich der Funktionen erwähnt werden, funktionieren für Dataflow und Dataflow Prime identisch.

Vor der Verwendung von Dataflow Prime

Wenn Sie Dataflow Prime verwenden möchten, können Sie den vorhandenen Pipelinecode wiederverwenden und auch die Dataflow Prime-Option entweder über Cloud Shell oder programmatisch aktivieren.

Dataflow Prime ist abwärtskompatibel mit Batchjobs, die Dataflow Shuffle verwenden, und Streamingjobs, die Streaming Engine verwenden. Wir empfehlen Ihnen jedoch, die Pipelines mit Dataflow Prime zu testen, bevor Sie sie in einer Produktionsumgebung verwenden.

Wenn Ihre Streamingpipeline in der Produktion ausgeführt wird, führen Sie zur Verwendung von Dataflow Prime die folgenden Schritte aus:

  1. Beenden Sie die Pipeline:

  2. Aktivieren Sie Dataflow Prime.

  3. Führen Sie die Pipeline noch einmal aus.

Dataflow Prime aktivieren

So aktivieren Sie Dataflow Prime für eine Pipeline:

  1. Aktivieren Sie die Cloud Autoscaling API.

    API aktivieren

    Dataflow Prime verwendet die Cloud Autoscaling API, um den Arbeitsspeicher dynamisch anzupassen.

  2. Aktivieren Sie Prime in den Pipeline-Optionen.

    Sie können die Pipelineoptionen entweder programmatisch oder über die Befehlszeile festlegen. Aktivieren Sie für unterstützte Apache Beam SDK-Versionen das folgende Flag:

Java

--dataflowServiceOptions=enable_prime

Python

Apache Beam Python SDK Version 2.29.0 oder höher

--dataflow_service_options=enable_prime

Apache Beam Python SDK Version 2.21.0 bis 2.28.0:

--experiments=enable_prime

Go

--dataflow_service_options=enable_prime

Dataflow Prime mit Vorlagen verwenden

Wenn Sie Dataflow-Vorlagen verwenden, können Sie Dataflow Prime auf eine der folgenden Arten aktivieren:

  1. Für Jobs, die auf der Seite Job aus Vorlage erstellen gestartet wurden:

    1. Rufen Sie die Seite Job aus Vorlage erstellen auf.

      Zur Seite "Job aus Vorlage erstellen“

    2. Geben Sie im Feld Zusätzlicher Test den Wert enable_prime ein.

  2. Geben Sie für Jobs, die über die Befehlszeile aus einer Vorlage gestartet werden, das Flag --additional-experiments=enable_prime an.

  3. Wenn Sie Dataflow Prime beim Erstellen einer Vorlage aktivieren möchten, geben Sie das Flag --experiments=enable_prime an.

Dataflow Prime in Apache Beam-Notebooks verwenden

Wenn Sie ein Apache Beam-Notebook verwenden, können Sie Dataflow Prime programmatisch mit PipelineOptions aktivieren:

options = pipeline_options.PipelineOptions(
    flags=[],
    dataflow_service_options=['enable_prime'],
)

Weitere Informationen zum Festlegen von Dataflow-Optionen in einem Notebook finden Sie unter Dataflow-Jobs aus einer in Ihrem Notebook erstellten Pipeline starten.

Featurevergleich zwischen Dataflow und Dataflow Prime

In der folgenden Tabelle werden die verfügbaren Features für beide Varianten von Dataflow verglichen.

Funktion Dataflow Prime Dataflow
Runner V2 Standardfeature ohne Option zum Deaktivieren von Batchjobs und optional für Streamingjobs Standardfeature mit Option zum Deaktivieren von Batchjobs und optional für Streamingjobs
Dataflow Shuffle für Batchjobs Standardfeature mit Option zum Deaktivieren Standardfeature mit Option zum Deaktivieren
Streaming Engine für Streamingjobs Optionales Feature für Java-Pipelines und immer an für Python-Pipelines Optionales Feature für Java-Pipelines und immer aktiviert für Python-Pipelines ab Version 2.45.0
Horizontales Autoscaling Standardfeature mit Option zum Deaktivieren Standardfeature mit Option zum Deaktivieren
Vertikales Autoscaling Standardfeature mit Option zum Deaktivieren Nicht zutreffend
Individuell anpassbar Optionales Feature Optionales Feature
Abrechnung Serverlose Abrechnung Standardabrechnung

Nächste Schritte