Per impostazione predefinita, i job batch utilizzano l'ordinamento casuale di Dataflow. Dataflow Shuffle sposta l'operazione di shuffling dalle VM worker al backend del servizio Dataflow.
Informazioni su Dataflow Shuffle
- Dataflow Shuffle è l'operazione di base alla base delle trasformazioni 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 di Dataflow Shuffle
Lo shuffle di Dataflow basato su servizio presenta i seguenti vantaggi:
- Tempo di esecuzione più rapido delle pipeline batch per la maggior parte dei tipi di job della pipeline.
- Una riduzione delle risorse di archiviazione su Persistent Disk, 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 funzionante contenente i dati elaborati in ordine casuale di Dataflow non causa l'errore dell'intero job.
Supporto e limitazioni
- L'operazione di data shuffling di Dataflow non è disponibile per i job di streaming.
- 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 dipiazzati nella stessa regione del job Dataflow.
Non specificare l'opzione pipeline
zone
. Specifica inveceregion
e imposta il valore su una delle regioni disponibili. Dataflow selezione automaticamente la zona nella regione specificata.Se specifichi l'opzione
zone
pipeline 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 l'ordinamento casuale di Dataflow.Per Python, l'ordinamento casuale di Dataflow 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 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 molta 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 dei dischi permanenti 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 dei worker deriva dal trasferimento del lavoro di ordinamento al servizio Dataflow. Per questo motivo, è previsto un addebito associato all'utilizzo dell'ordinamento Dataflow. 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.