Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Los trabajos por lotes usan Dataflow Shuffle de forma predeterminada.
Dataflow Shuffle traslada la operación de redistribución fuera de las VMs de trabajador y la traslada al backend del servicio de Dataflow.
Información acerca de Dataflow Shuffle
Dataflow Shuffle es la operación base detrás de las transformaciones de Dataflow, como GroupByKey, CoGroupByKey y Combine.
La operación de Dataflow Shuffle particiona y agrupa los datos por clave de forma escalable, eficiente y tolerante a errores.
Beneficios de Dataflow Shuffle
Dataflow Shuffle está basado en servicios y tiene los siguientes beneficios:
Tiempo de ejecución más rápido de las canalizaciones por lotes para la mayoría de los tipos de trabajo de canalización.
Reducción en los recursos consumidos de CPU, memoria y almacenamiento en Persistent Disk en las VMs de trabajador.
Mejor ajuste de escala automático horizontal porque las VMs no contienen datos aleatorios y, por lo tanto, se puede reducir la escala verticalmente de forma anticipada.
Mejor tolerancia a errores, ya que una VM en mal estado que contenga datos de Dataflow Shuffle no causará que falle todo el trabajo.
Asistencia y limitaciones
El ordenamiento aleatorio de Dataflow no está disponible para los trabajos de transmisión.
Esta característica está disponible en todas las regiones en las que Dataflow sea compatible. Para ver las ubicaciones disponibles, consulta la página Ubicaciones de Dataflow. Puede haber diferencias de rendimiento entre las regiones.
Los trabajadores deben implementarse en la misma región que el trabajo de Dataflow.
No especifiques la opción de canalización zone. En su lugar, especifica el region y establece el valor en una de las regiones disponibles. Dataflow selecciona de forma automática la zona en la región especificada.
Si especificas la opción de canalización zone y la configuras en una zona fuera de las regiones disponibles, la tarea de Dataflow muestra un error. Si configuras una combinación incompatible de region y zone, tu trabajo no puede usar Dataflow Shuffle.
En Python, Dataflow Shuffle requiere el SDK de Apache Beam para la versión 2.1.0 o posterior de Python.
Consideraciones sobre el tamaño del disco
El tamaño predeterminado del disco de arranque para cada trabajo por lotes es de 25 GB. En algunos trabajos por lotes, es posible que debas modificar el tamaño del disco. Tenga en cuenta lo siguiente:
Una VM de trabajador usa parte de los 25 GB de espacio en disco para el sistema operativo, los archivos binarios, los registros y los contenedores. Los trabajos que usan una cantidad significativa de disco y exceden la capacidad restante de este pueden fallar cuando usas Dataflow Shuffle.
Los trabajos que usan una gran cantidad de E/S de disco pueden ser lentos debido al rendimiento del disco pequeño. Para obtener más información sobre las diferencias de rendimiento entre los tamaños de disco, consulta Rendimiento del disco persistente de Compute Engine.
A fin de especificar un tamaño de disco más grande para un trabajo de Dataflow Shuffle, puedes usar el parámetro --disk_size_gb.
Precios
La mayor parte de la reducción de los recursos de los trabajadores proviene de derivar el trabajo de redistribución en el servicio de Dataflow. Por ese motivo, existe una carga asociada con el uso de Dataflow Shuffle. Sin embargo, la duración puede variar de una ejecución a otra. Si ejecutas una canalización que tiene plazos importantes, recomendamos que asignes suficiente tiempo de búfer antes del plazo.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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."]]