Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Les tâches par lot utilisent Dataflow Shuffle par défaut.
Dataflow Shuffle transfère l'opération de brassage des données depuis les VM de nœud de calcul vers le backend du service Dataflow.
À propos de Dataflow Shuffle
Dataflow Shuffle est l'opération de base derrière les transformations Dataflow telles que GroupByKey, CoGroupByKey et Combine.
L'opération Dataflow Shuffle permet de partitionner et de regrouper les données par clé de manière évolutive et efficace tout en bénéficiant d'une tolérance aux pannes.
Avantages de Dataflow Shuffle
La fonctionnalité Dataflow Shuffle basée sur les services présente les avantages suivants :
Temps d'exécution plus rapide des pipelines par lots pour la majorité des types de job de pipeline.
Réduction des ressources de processeur, de mémoire et de disques persistants consommées sur les machines virtuelles de calcul.
Meilleur autoscaling horizontal, car les VM ne contiennent pas de données aléatoires et peuvent donc faire l'objet d'un scaling à la baisse plus tôt.
Meilleure tolérance aux pannes, car une VM défectueuse contenant des données Dataflow Shuffle n'entraîne pas l'échec de l'ensemble du job.
Compatibilité et limites
Dataflow Shuffle n'est pas disponible pour les tâches de streaming.
Cette fonctionnalité est disponible dans toutes les régions où Dataflow est disponible. Pour afficher les emplacements disponibles, consultez la page Emplacements Dataflow. Il peut y avoir des différences de performances entre les régions.
Les nœuds de calcul doivent être déployés dans la même région que le job Dataflow.
Ne spécifiez pas l'option de pipeline zone. Au lieu de cela, spécifiez region et définissez la valeur sur l'une des régions disponibles. Dataflow sélectionne automatiquement la zone dans la région spécifiée.
Si vous spécifiez l'option de pipeline zone en la définissant sur une zone en dehors des régions disponibles, la tâche Dataflow renvoie une erreur. Si vous définissez une combinaison de region et de zone incompatible, votre job ne peut pas utiliser Dataflow Shuffle.
Pour Python, Dataflow Shuffle nécessite le SDK Apache Beam pour Python version 2.1.0 ou ultérieure.
Considérations concernant la taille du disque
La taille de disque de démarrage par défaut pour chaque job par lot est de 25 Go. Pour certains jobs par lots, vous devrez peut-être modifier la taille du disque. Réfléchissez aux éléments suivants :
Une machine virtuelle de calcul utilise une partie des 25 Go d'espace disque pour le système d'exploitation, les fichiers binaires, les journaux et les conteneurs. Les tâches qui utilisent une quantité importante de disque et qui dépassent la capacité de disque restante peuvent échouer lorsque vous utilisez Dataflow Shuffle.
Les jobs qui utilisent beaucoup d'E/S de disque peuvent être lentes en raison des performances du petit disque. Pour plus d'informations sur les différences de performances entre les différentes tailles de disque, consultez la page Performances des disques persistants Compute Engine.
Pour spécifier une taille de disque plus importante pour une tâche Dataflow Shuffle, vous pouvez utiliser le paramètre --disk_size_gb.
Tarifs
La majeure partie de la réduction des ressources de calcul est due au déchargement du travail de brassage des données sur le service Dataflow. Pour cette raison, des frais sont appliqués à l'utilisation de Dataflow Shuffle. Les temps d'exécution peuvent varier d'une exécution à l'autre. Si vous exécutez un pipeline avec des délais importants, nous vous recommandons d'allouer suffisamment de temps de mémoire tampon avant l'échéance.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/04/22 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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,["Batch 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- 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\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- 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\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\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."]]