Dataflow Shuffle für Batchjobs

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.