I job batch utilizzano Dataflow Shuffle per impostazione predefinita. Dataflow Shuffle trasferisce l'operazione di shuffle dalle VM worker al backend del servizio Dataflow.
Le informazioni in questa pagina si applicano ai job batch. I job di streaming utilizzano un meccanismo di shuffling diverso, chiamato shuffling di streaming.
Informazioni su Dataflow Shuffle
- Dataflow Shuffle è l'operazione di base alla base delle trasformazioni Dataflow come
GroupByKey
,CoGroupByKey
eCombine
. - L'operazione Dataflow Shuffle partiziona e raggruppa i dati per chiave in modo scalabile, efficiente e a tolleranza di errore.
Vantaggi di Dataflow Shuffle
Il servizio di shuffling basato su Dataflow offre i seguenti vantaggi:
- Tempi di esecuzione più rapidi delle pipeline batch per la maggior parte dei tipi di job pipeline.
- Una riduzione delle risorse di CPU, memoria e spazio di archiviazione su Persistent Disk consumate sulle VM worker.
- Migliore scalabilità automatica orizzontale, perché le VM non contengono dati di shuffle e possono quindi essere ridimensionate prima.
- Maggiore tolleranza agli errori, perché una VM non integra che contiene i dati di shuffle di Dataflow non causa l'interruzione dell'intero job.
Supporto e limitazioni
- Questa funzionalità è disponibile in tutte le regioni in cui è supportato Dataflow. Per conoscere le località disponibili, consulta le località di Dataflow. Potrebbero esserci differenze di rendimento tra le regioni.
- I worker devono essere implementati nella stessa regione del job Dataflow.
Non specificare l'opzione pipeline
zone
. Specifica inveceregion
e imposta il valore su una delle regioni disponibili. Dataflow seleziona automaticamente la zona nella regione che hai specificato.Se specifichi l'opzione pipeline
zone
e la imposti su una zona al di fuori delle regioni disponibili, il job Dataflow restituisce un errore. Se imposti una combinazione incompatibile diregion
ezone
, il job non può utilizzare Dataflow Shuffle.Per Python, Dataflow Shuffle richiede l'SDK Apache Beam per Python versione 2.1.0 o successive.
Considerazioni sulle dimensioni del disco
Le dimensioni predefinite del disco di avvio per ogni job batch sono 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 spazio su disco e superano la capacità del disco rimanente potrebbero non riuscire quando utilizzi Dataflow Shuffle.
- I job che utilizzano un numero elevato di operazioni di I/O del disco potrebbero essere lenti a causa delle prestazioni del disco di piccole dimensioni. Per ulteriori informazioni sulle differenze di prestazioni tra le dimensioni dei dischi, consulta Prestazioni del disco permanente di Compute Engine.
Per specificare una dimensione del disco maggiore per un job di shuffle Dataflow, puoi utilizzare il parametro --disk_size_gb
.
Prezzi
La maggior parte della riduzione delle risorse worker deriva dal trasferimento del lavoro di shuffling al servizio Dataflow. Per questo motivo, è previsto un costo associato all'utilizzo di Dataflow Shuffle. I tempi di esecuzione possono variare da un'esecuzione all'altra. Se esegui una pipeline con scadenze importanti, ti consigliamo di allocare un tempo di buffer sufficiente prima della scadenza.