Utilizza Dataflow shuffling per i job batch

Dataflow Shuffle è l'operazione di base alla base delle trasformazioni di Dataflow come GroupByKey, CoGroupByKey e Combine. Dataflow shuffle esegue il partizionamento e il raggruppamento dei dati per chiave in modo scalabile, efficiente e a tolleranza di errore. La funzionalità Dataflow shuffle, disponibile solo per le pipeline batch, sposta l'operazione di shuffle dalle VM worker al backend del servizio Dataflow.

I job batch utilizzano Dataflow Shuffle per impostazione predefinita.

Vantaggi di Dataflow shuffle

Dataflow shuffle basato su servizi offre i seguenti vantaggi:

  • Tempi di esecuzione più rapidi delle pipeline batch per la maggior parte dei tipi di job della pipeline.
  • Una riduzione del consumo di CPU, memoria e risorse di archiviazione su Persistent Disk sulle VM worker.
  • Miglioramento della scalabilità automatica orizzontale, in quanto le VM non contengono dati di shuffling e possono quindi essere sottoposte a scale down prima.
  • Migliore tolleranza agli errori: una VM in stato non integro che contiene dati Dataflow shuffle non causerà errori nell'intero job, come accadrebbe se non si utilizzasse la funzionalità.

Gran parte della riduzione delle risorse worker deriva dall'offload del lavoro di shuffling sul servizio Dataflow. Per questo motivo, è previsto un addebito associato all'utilizzo di Dataflow shuffling. I tempi di esecuzione possono variare da un'esecuzione all'altra. Se stai eseguendo una pipeline che ha scadenze importanti, ti consigliamo di assegnare un tempo di buffer sufficiente prima della scadenza.

Utilizza Dataflow shuffling

Questa funzionalità è disponibile in tutte le regioni in cui è supportato Dataflow. Per visualizzare le località disponibili, consulta Località Dataflow. Se utilizzi Dataflow Shuffle, il deployment dei worker deve essere eseguito nella stessa regione del job Dataflow.

Java

Se utilizzi Dataflow Shuffle per la tua pipeline, non specificare le opzioni della pipeline zone. Specifica invece il valore region e imposta il valore su una delle regioni disponibili. Dataflow seleziona automaticamente la zona nella regione specificata. Se specifichi l'opzione della pipeline zone e la imposti su una zona esterna alle regioni disponibili, Dataflow segnala un errore. Se imposti una combinazione incompatibile di region e zone, il job non può utilizzare Dataflow Shuffle.

Python

Se utilizzi Dataflow Shuffle per la tua pipeline, non specificare le opzioni della pipeline zone. Specifica invece il valore region e imposta il valore su una delle regioni disponibili. Dataflow seleziona automaticamente la zona nella regione specificata. Se specifichi l'opzione della pipeline zone e la imposti su una zona esterna alle regioni disponibili, Dataflow segnala un errore. Se imposti una combinazione incompatibile di region e zone, il job non può utilizzare Dataflow Shuffle.

Go

Se utilizzi Dataflow Shuffle per la tua pipeline, non specificare le opzioni della pipeline zone. Specifica invece il valore region e imposta il valore su una delle regioni disponibili. Dataflow seleziona automaticamente la zona nella regione specificata. Se specifichi l'opzione della pipeline zone e la imposti su una zona esterna alle regioni disponibili, Dataflow segnala un errore. Se imposti una combinazione incompatibile di region e zone, il job non può utilizzare Dataflow Shuffle.

La dimensione predefinita del disco di avvio per ogni job batch è 25 GB. Per alcuni job batch, potrebbe essere necessario modificare le dimensioni del disco. Considera quanto segue:

  • Una VM worker utilizza parte dei 25 GB di spazio su disco per il sistema operativo, i file binari, i log e i container. I job che utilizzano una quantità significativa di disco e superano la capacità rimanente del disco potrebbero non riuscire quando utilizzi Dataflow Shuffle.
  • I job che utilizzano una quantità elevata di I/O del disco potrebbero essere lenti a causa delle prestazioni del disco piccolo. Per ulteriori informazioni sulle differenze di prestazioni tra le dimensioni dei dischi, consulta Prestazioni dei dischi permanenti di Compute Engine.

Per specificare una dimensione del disco più grande per un job Dataflow Shuffle, puoi utilizzare il parametro --disk_size_gb.