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:
- Ihre Pipeline könnte von vertikalem Autoscaling profitieren.
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.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.
Für Java-Pipelines, die die folgenden Anforderungen erfüllen, können die Klassen
MapState
undSetState
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:
Beenden Sie die Pipeline:
Aktivieren Sie Dataflow Prime.
Führen Sie die Pipeline noch einmal aus.
Dataflow Prime aktivieren
So aktivieren Sie Dataflow Prime für eine Pipeline:
Aktivieren Sie die Cloud Autoscaling API.
Dataflow Prime verwendet die Cloud Autoscaling API, um den Arbeitsspeicher dynamisch anzupassen.
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:
Für Jobs, die auf der Seite Job aus Vorlage erstellen gestartet wurden:
Rufen Sie die Seite Job aus Vorlage erstellen auf.
Geben Sie im Feld Zusätzlicher Test den Wert
enable_prime
ein.
Geben Sie für Jobs, die über die Befehlszeile aus einer Vorlage gestartet werden, das Flag
--additional-experiments=enable_prime
an.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
- Informationen zu Dataflow-Kontingenten
- Pipelineoptionen festlegen
- Verfügbare Pipelineoptionen für Java- und Python-Pipelines
- Weitere Informationen zu Autotuning-Features für Dataflow Prime
- Weitere Informationen zu Dataflow-GPUs