Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Batchjobs verwenden Dataflow Shuffle standardmäßig.
Dataflow Shuffle verschiebt den Shuffle-Vorgang aus den Worker-VMs in das Dataflow-Dienst-Backend.
Dataflow Shuffle
Dataflow Shuffle ist der Basisvorgang hinter Cloud Dataflow-Transformationen wie GroupByKey, CoGroupByKey und Combine.
Beim Dataflow Shuffle-Vorgang werden Daten nach Schlüsseln auf skalierte, effiziente und fehlertolerante Weise partitioniert und gruppiert.
Vorteile von Dataflow Shuffle
Der dienstbasierte Dataflow Shuffle hat folgende Vorteile:
Schnellere Ausführung von Batchpipelines für die meisten Pipelinejobtypen.
Reduzierung der genutzten CPU-, Arbeitsspeicher- und nichtflüchtigen Speicherressourcen auf den Worker-VMs.
Besseres horizontales Autoscaling, da VMs keine Shuffle-Daten enthalten und daher früher herunterskaliert werden können.
Bessere Fehlertoleranz: Eine fehlerhafte VM mit Dataflow Shuffle-Daten führt nicht dazu, dass der gesamte Job fehlschlägt.
Unterstützung und Einschränkungen
Dataflow Shuffle ist für Streamingjobs nicht verfügbar.
Diese Funktion ist in allen Regionen verfügbar, in denen Dataflow unterstützt wird. Informationen zu den verfügbaren Speicherorten finden Sie unter Dataflow-Standorte. Es können Leistungsunterschiede zwischen Regionen auftreten.
Die Worker müssen in derselben Region wie der Dataflow-Job bereitgestellt werden.
Geben Sie die Pipelineoption zone nicht an. Legen Sie stattdessen den Parameter region fest und geben Sie als Wert eine der verfügbaren Regionen an. Dataflow wählt die Zone in der von Ihnen angegebenen Region automatisch aus.
Wenn Sie die Pipelineoption zone angeben und sie auf eine Zone außerhalb der verfügbaren Regionen festlegen, gibt der Dataflow-Job einen Fehler zurück. Wenn Sie eine inkompatible Kombination aus region und zone festlegen, kann der Job Dataflow Shuffle nicht verwenden.
Für Python ist das Apache Beam SDK for Python ab Version 2.1.0 erforderlich.
Hinweise zur Laufwerksgröße
Die Standardgröße des Bootlaufwerks für jeden Batchjob beträgt 25 GB. Bei einigen Batchjobs müssen Sie möglicherweise die Größe des Laufwerks ändern. Beachten Sie dabei Folgendes:
Eine Worker-VM verwendet einen Teil des 25 GB Speicherplatzes für Betriebssystem, Binärdateien, Logs und Container. Jobs, die sehr viel Speicherplatz benötigen und die verbleibende Speicherkapazität überschreiten, schlagen möglicherweise fehl, wenn Sie Dataflow Shuffle verwenden.
Jobs, die viel Laufwerks-E/A-Leistung erfordern, werden möglicherweise aufgrund der geringen Laufwerksleistung langsamer. Weitere Informationen zu Leistungsunterschieden zwischen Laufwerksgrößen finden Sie unter Leistung der nichtflüchtigen Speicher in Compute Engine.
Um für einen Dataflow Shuffle-Job eine größere Laufwerksgröße anzugeben, können Sie den Parameter --disk_size_gb verwenden.
Pricing
Der Großteil der Reduzierung der Worker-Ressourcen ist auf die Übertragung des Shuffle-Aufwands auf den Dataflow-Dienst zurückzuführen. Daher ist die Nutzung von Dataflow Shuffle kostenpflichtig. Die Ausführungszeiten können von Ausführung zu Ausführung unterschiedlich sein. Wenn Sie eine Pipeline mit wichtigen Fristen ausführen, empfiehlt es sich, ausreichend Zeitpuffer einzuplanen.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-04-22 (UTC)."],[[["\u003cp\u003eDataflow shuffle, which is used by default for batch jobs, moves shuffle operations to the Dataflow service backend, improving efficiency.\u003c/p\u003e\n"],["\u003cp\u003eDataflow shuffle is the foundational operation for Dataflow transforms like \u003ccode\u003eGroupByKey\u003c/code\u003e, \u003ccode\u003eCoGroupByKey\u003c/code\u003e, and \u003ccode\u003eCombine\u003c/code\u003e, enabling scalable and fault-tolerant data partitioning and grouping.\u003c/p\u003e\n"],["\u003cp\u003eBenefits of Dataflow shuffle include faster batch pipeline execution, reduced worker VM resource consumption, improved horizontal autoscaling, and better fault tolerance.\u003c/p\u003e\n"],["\u003cp\u003eDataflow shuffle is not available for streaming jobs and requires worker VMs to be deployed in the same region as the Dataflow job, avoiding the specification of a \u003ccode\u003ezone\u003c/code\u003e pipeline option.\u003c/p\u003e\n"],["\u003cp\u003eDataflow shuffle charges apply, and the default 25 GB boot disk size may need to be increased for jobs with heavy disk I/O to ensure optimal performance.\u003c/p\u003e\n"]]],[],null,["# Dataflow shuffle for batch jobs\n\nBatch jobs use Dataflow shuffle by default.\nDataflow shuffle\nmoves the shuffle operation out of the worker VMs and into the\nDataflow service backend.\n\nThe information on this page applies to batch jobs. Streaming jobs use a\ndifferent shuffle mechanism, called\n[streaming shuffle](/dataflow/docs/concepts/exactly-once#streaming-shuffle).\n\nAbout Dataflow shuffle\n----------------------\n\n- Dataflow shuffle is the base operation behind Dataflow transforms such as `GroupByKey`, `CoGroupByKey`, and `Combine`.\n- The Dataflow shuffle operation partitions and groups data by key in a scalable, efficient, fault-tolerant manner.\n\nBenefits of Dataflow shuffle\n----------------------------\n\nThe service-based Dataflow shuffle has the following benefits:\n\n- Faster execution time of batch pipelines for the majority of pipeline job types.\n- A reduction in consumed CPU, memory, and Persistent Disk storage resources on the worker VMs.\n- Better [Horizontal Autoscaling](/dataflow/docs/horizontal-autoscaling), because VMs don't hold any shuffle data and can therefore be scaled down earlier.\n- Better fault tolerance, because an unhealthy VM holding Dataflow shuffle data doesn't cause the entire job to fail.\n\nSupport and limitations\n-----------------------\n\n- This feature is available in all regions where Dataflow is supported. To see available locations, read [Dataflow locations](/dataflow/docs/resources/locations). There might be performance differences between regions.\n- Workers must be deployed in the same region as the Dataflow job.\n- Don't specify the `zone` pipeline option. Instead, specify the `region`, and\n set the value to one of the available regions. Dataflow\n automatically selects the zone in the region you specified.\n\n If you specify the `zone`\n pipeline option and set it to a zone outside of the available regions, the\n Dataflow job returns an error. If you set an incompatible combination\n of `region` and `zone`, your job can't use Dataflow shuffle.\n- For Python, Dataflow shuffle requires Apache Beam SDK\n for Python version 2.1.0 or later.\n\nDisk size considerations\n------------------------\n\nThe default boot disk size for each batch job is 25 GB. For some batch jobs,\nyou might be required to modify the size of the disk. Consider the following:\n\n- A worker VM uses part of the 25 GB of disk space for the operating system, binaries, logs, and containers. Jobs that use a significant amount of disk and exceed the remaining disk capacity may fail when you use Dataflow shuffle.\n- Jobs that use a lot of disk I/O may be slow due to the performance of the small disk. For more information about performance differences between disk sizes, see [Compute Engine Persistent Disk Performance](/compute/docs/disks/performance).\n\nTo specify a larger disk size for a Dataflow shuffle job, you can\nuse the [`--disk_size_gb`](/dataflow/pipelines/specifying-exec-params#setting-other-cloud-pipeline-options)\nparameter.\n\nPricing\n-------\n\nMost of the reduction in worker resources comes from offloading the shuffle work\nto the Dataflow service. For that reason, there is a\n[charge](/dataflow/pricing) associated with the use of Dataflow\nshuffle. The execution times might vary from run to run. If you are running\na pipeline that has important deadlines, we recommend allocating sufficient\nbuffer time before the deadline."]]