La regione Dataflow archivia e gestisce i metadati relativi al job Dataflow, esegue il deployment e controlla i worker Dataflow.
I nomi delle regioni seguono una convenzione standard basata sui
nomi delle regioni di Compute Engine.
Ad esempio, il nome della regione Stati Uniti centrali è us-central1.
Questa funzionalità è disponibile in tutte le regioni in cui è supportato Dataflow. Per conoscere le località disponibili, consulta le località di Dataflow.
Linee guida per la scelta di una regione
Utilizza le seguenti linee guida per scegliere una regione appropriata per il tuo job.
Sicurezza e conformità
Potresti dover limitare l'elaborazione dei job Dataflow a una regione geografica specifica per soddisfare le esigenze di sicurezza e conformità del tuo progetto.
Località dei dati
Puoi ridurre al minimo la latenza di rete e i costi di trasporto di rete eseguendo un job Dataflow dalla stessa regione delle relative origini, dei relativi sink, delle località dei file di staging e delle località dei file temporanei. Se utilizzi origini, sink, località dei file di staging o località dei file temporanei che si trovano al di fuori della regione del job, i dati potrebbero essere inviati tra le regioni.
Durante l'esecuzione di una pipeline, i dati utente vengono gestiti solo dal pool di worker Dataflow e lo spostamento dei dati è limitato ai percorsi di rete che collegano i worker Dataflow nel pool.
Se hai bisogno di un maggiore controllo sulla località dei messaggi di log della pipeline, puoi procedere nel seguente modo:
- Crea un filtro di esclusione
per il sink del router di log
_Defaultper impedire l'esportazione dei log di Dataflow nel bucket di log_Default. - Crea un bucket di log nella regione di tua scelta.
- Configura un nuovo sink del router di log che esporti i log di Dataflow nel nuovo bucket di log.
Per saperne di più sulla configurazione della registrazione, consulta la panoramica su routing e archiviazione e la panoramica sul routing dei log.
Note sulle origini comuni dei job Dataflow:
- Quando utilizzi un bucket Cloud Storage come origine, ti consigliamo di eseguire le operazioni di lettura nella stessa regione del bucket.
- Gli argomentiPub/Sub, quando vengono pubblicati nell'endpoint Pub/Sub globale, vengono archiviati nella regione più vicina Google Cloud . Tuttavia, puoi modificare la policy di archiviazione degli argomenti in una regione specifica o in un insieme di regioni. Allo stesso modo, gli argomenti Pub/Sub Lite supportano solo l'archiviazione a livello di zona.
Resilienza e separazione geografica
Potresti voler isolare le normali operazioni di Dataflow da interruzioni che potrebbero verificarsi in altre regioni geografiche. In alternativa, potresti dover pianificare siti alternativi per la continuità operativa in caso di disastro a livello regionale.
Nei piani di disaster recovery e di continuità aziendale, ti consigliamo di includere i dettagli delle origini e dei sink utilizzati con i job Dataflow. Il Google Cloud team di vendita può aiutarti a soddisfare i tuoi requisiti.
Posizionamento regionale
Per impostazione predefinita, la regione selezionata configura il pool di worker Dataflow in modo da utilizzare tutte le zone disponibili all'interno della regione. La selezione della zona viene calcolata per ogni worker al momento della creazione, ottimizzando l'acquisizione delle risorse e l'utilizzo delle prenotazioni inutilizzate reservations.
Il posizionamento regionale offre vantaggi quali:
- Maggiore disponibilità delle risorse: i job Dataflow sono più resilienti agli errori di disponibilità delle risorse a livello di zona, perché i worker possono continuare a essere creati in altre zone con disponibilità residua.
- Maggiore affidabilità: in caso di errore a livello di zona, i job Dataflow possono continuare a essere eseguiti, perché i worker vengono ricreati in altre zone.
Si applicano le seguenti limitazioni:
- Il posizionamento regionale è supportato solo per i job che utilizzano Streaming Engine o Dataflow Shuffle. I job che hanno disattivato Streaming Engine o Dataflow Shuffle non possono utilizzare il posizionamento regionale.
- Il posizionamento regionale si applica solo alle VM e non alle risorse di backend.
- Le VM non vengono replicate in più zone. Se una VM non è più disponibile, ad esempio, i relativi elementi di lavoro vengono considerati persi e vengono rielaborati da un'altra VM.
- Se Compute Engine non ha capacità nella regione configurata, il servizio Dataflow non può creare altre VM.
- Se Compute Engine non ha capacità in una o più zone della regione configurata, il servizio Dataflow potrebbe non riuscire ad avviare un job.
Visualizzare le zone delle risorse del job
I job Dataflow dipendono dalle risorse interne. Alcune di queste risorse di backend del job sono a livello di zona. Se una singola zona non funziona e una risorsa di zona necessaria per il job Dataflow si trova in quella zona, il job potrebbe non riuscire.
Per capire se un job non è riuscito a causa di un'interruzione a livello di zona, esamina le zone di servizio utilizzate dalle risorse di backend del job. Questa funzionalità è disponibile solo per i job di Streaming Engine.
Per visualizzare le zone di servizio nella Google Cloud console, utilizza il campo Zone di servizio nel Informazioni sul job riquadro.
Per utilizzare l'API per esaminare le zone di servizio, utilizza il
ServiceResourcescampo.
I valori in questo campo vengono aggiornati per tutta la durata del job, perché le risorse utilizzate dal job cambiano durante l'esecuzione.
Posizionamento automatico della zona
Per i job non supportati per il posizionamento regionale, la zona migliore all'interno della regione viene selezionata automaticamente in base alla capacità della zona disponibile al momento della richiesta di creazione del job. La selezione automatica della zona contribuisce a garantire che i worker del job vengano eseguiti nella zona migliore per il job.
Poiché il job è configurato per essere eseguito in una singola zona, l'operazione potrebbe non riuscire
con un
errore di disponibilità delle risorse di zona
se non sono disponibili risorse di Compute Engine sufficienti.
Se la capacità è esaurita in una regione, potresti visualizzare un
ZONE_RESOURCE_POOL_EXHAUSTED
errore. Puoi implementare un ciclo di tentativi per avviare il job quando le risorse sono disponibili.
Inoltre, quando una zona non è disponibile, anche il backend di streaming può diventare non disponibile, il che potrebbe comportare la perdita di dati.
Specificare una regione
Per specificare una regione per il job, imposta l'opzione --region su una delle
regioni supportate.
L'opzione --region sostituisce la regione predefinita impostata nel server di metadati, nel client locale o nelle variabili di ambiente.
L'interfaccia a riga di comando di Dataflow
supporta anche l'opzione --region per specificare le regioni.
Sostituire la regione o la zona del worker
Per impostazione predefinita, quando invii un job con l'opzione --region,
i worker vengono assegnati automaticamente alle
zone della regione o alla
singola zona migliore all'interno della regione, a seconda del tipo di prestazione.
Nei casi in cui vuoi assicurarti che i worker del job Dataflow vengano eseguiti rigorosamente in una zona specifica, puoi specificare la zona utilizzando la seguente opzione della pipeline. Questo pattern di utilizzo è raro per i job Dataflow.
Questa opzione controlla solo la zona utilizzata per i worker Dataflow. Non si applica alle risorse di backend. Le risorse di backend potrebbero essere create in qualsiasi zona all'interno della regione del job.
Java
--workerZone
Python
--worker_zone
Vai
--worker_zone
In tutti gli altri casi, non è consigliabile sostituire la località del worker. La tabella degli scenari comuni contiene consigli sull'utilizzo per queste situazioni.
Poiché il job è configurato per essere eseguito in una singola zona, l'operazione potrebbe non riuscire con un errore di disponibilità delle risorse di zona se non sono disponibili risorse di Compute Engine sufficienti.
Puoi eseguire il comando gcloud compute regions list per visualizzare un elenco delle regioni e delle zone disponibili per il deployment dei worker.
Scenari comuni
La seguente tabella contiene consigli sull'utilizzo per gli scenari comuni.
| Scenario | Suggerimento |
|---|---|
| Voglio utilizzare una regione supportata e non ho preferenze di zona all'interno della regione. In questo caso, la zona migliore viene selezionata automaticamente in base alla capacità disponibile. | Utilizza --region per specificare una regione del job.
In questo modo, Dataflow gestisce il job ed elabora i dati
all'interno della regione specificata. |
| Devo eseguire l'elaborazione dei worker in una zona specifica di una regione. | Specifica sia --region sia --workerZone o
--worker_zone.Utilizza |