I job batch utilizzano lo shuffling di Dataflow per impostazione predefinita. Shuffling di Dataflow sposta l'operazione di shuffle dalle VM worker alla Backend del servizio Dataflow.
Informazioni sullo shuffle di Dataflow
- Lo shuffle di Dataflow è l'operazione di base alla base
Trasformazioni di Dataflow come
GroupByKey
,CoGroupByKey
eCombine
. - L'operazione di Dataflow Shuffle esegue il partizionamento e il raggruppamento dei dati per chiave in modo scalabile, efficiente e a tolleranza di errore.
Vantaggi dello shuffle di Dataflow
Lo shuffle di Dataflow basato su servizio presenta i seguenti vantaggi:
- Tempi di esecuzione più rapidi delle pipeline batch per la maggior parte dei tipi di job della pipeline.
- Una riduzione delle risorse di archiviazione su disco permanente, della memoria e della CPU consumate sulle VM worker.
- Scalabilità automatica orizzontale migliore, perché le VM non contengono dati elaborati in ordine casuale e possono quindi essere ridotte in modo precedente.
- Una migliore tolleranza agli errori, perché una VM non sana che contiene i dati elaborati in ordine casuale di Dataflow non causa il fallimento dell'intero job.
Supporto e limitazioni
- L'operazione di data shuffling non è disponibile per i job di streaming.
- Questa funzionalità è disponibile in tutte le regioni in cui è supportato Dataflow. Per visualizzare le località disponibili, consulta Località di Dataflow. Potrebbero esserci differenze di rendimento tra le regioni.
- Il deployment dei worker deve essere eseguito nella stessa regione del job Dataflow.
Non specificare l'opzione pipeline
zone
. È invece necessario specificareregion
e imposta il valore su una delle regioni disponibili. Dataflow: seleziona automaticamente la zona nella regione specificata.Se specifichi il valore
zone
e impostarla su una zona esterna alle regioni disponibili, Il job Dataflow restituisce un errore. Se imposti una combinazione incompatibile diregion
ezone
, il job non può utilizzare l'ordinamento casuale di Dataflow.Per Python, lo shuffle di Dataflow richiede l'SDK Apache Beam per Python versione 2.1.0 o successiva.
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 binari, i log e i container. I job che utilizzano una quantità significativa di spazio su disco e superano la capacità rimanente del disco potrebbero non riuscire quando utilizzi la miscelazione di Dataflow.
- I job che utilizzano una quantità elevata di I/O del disco possono essere lenti a causa delle prestazioni è un disco di piccole dimensioni. Per ulteriori informazioni sulle differenze di prestazioni tra i dischi dimensioni, consulta Prestazioni del disco permanente di Compute Engine.
Per specificare una dimensione del disco più grande per un job di ordinamento di Dataflow, puoi utilizzare il parametro --disk_size_gb
.
Prezzi
La maggior parte della riduzione delle risorse worker deriva dal trasferimento da parte del lavoro di shuffling al servizio Dataflow. Per questo motivo, esiste un charge associato all'uso di Dataflow shuffling. I tempi di esecuzione potrebbero variare da una corsa all'altra. Se stai eseguendo una pipeline con scadenze importanti, ti consigliamo di allocare un tempo di buffer sufficiente prima della scadenza.