Dataflow Shuffle für Batchjobs verwenden

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. Das Feature des Dataflow Shuffle ist nur für Batchpipelines verfügbar. Damit wird der Shuffle-Vorgang von den Worker-VMs zum Dataflow-Dienst-Backend übertragen.

Batchjobs verwenden Dataflow Shuffle standardmäßig.

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.
  • Verbesserte Fehlertoleranz: Eine fehlerhafte VM mit Dataflow Shuffle-Daten hat nicht zur Folge, dass der gesamte Job fehlschlägt, wie es der Fall wäre, wenn das Feature nicht verwendet werden würde.

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.

Dataflow Shuffle verwenden

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. Wenn Sie Dataflow Shuffle verwenden, müssen die Worker in derselben Region wie der Dataflow-Job bereitgestellt werden.

Java

Wenn Sie Dataflow Shuffle für Ihre Pipeline verwenden, geben Sie die Pipelineoptionen zone nicht an. Legen Sie stattdessen den Parameter region fest und geben Sie als Wert eine der verfügbaren Regionen an. Dataflow wählt automatisch die Zone in der von Ihnen angegebenen Region aus. Wenn Sie den Parameter zone nutzen und ihn auf eine Zone außerhalb der verfügbaren Regionen festlegen, meldet Dataflow einen Fehler. Wenn Sie eine inkompatible Kombination aus region und zone festlegen, kann der Job Dataflow Shuffle nicht nutzen.

Python

Wenn Sie Dataflow Shuffle für Ihre Pipeline verwenden, geben Sie die Pipelineoptionen zone nicht an. Legen Sie stattdessen den Parameter region fest und geben Sie als Wert eine der verfügbaren Regionen an. Dataflow wählt automatisch die Zone in der von Ihnen angegebenen Region aus. Wenn Sie den Parameter zone nutzen und ihn auf eine Zone außerhalb der verfügbaren Regionen festlegen, meldet Dataflow einen Fehler. Wenn Sie eine inkompatible Kombination aus region und zone festlegen, kann der Job Dataflow Shuffle nicht nutzen.

Einfach loslegen (Go)

Wenn Sie Dataflow Shuffle für Ihre Pipeline verwenden, geben Sie die Pipelineoptionen zone nicht an. Legen Sie stattdessen den Parameter region fest und geben Sie als Wert eine der verfügbaren Regionen an. Dataflow wählt automatisch die Zone in der von Ihnen angegebenen Region aus. Wenn Sie den Parameter zone nutzen und ihn auf eine Zone außerhalb der verfügbaren Regionen festlegen, meldet Dataflow einen Fehler. Wenn Sie eine inkompatible Kombination aus region und zone festlegen, kann der Job Dataflow Shuffle nicht nutzen.

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.