Quote per le richieste

Il servizio Dataflow gestisce completamente le risorse in Google Cloud base al job. Ciò include l'avvio e l'arresto delle istanze Compute Engine (a volte chiamate workers o VMs) e l'accesso ai bucket Cloud Storage del progetto per l'I/O e lo staging dei file temporanei. Tuttavia, se la pipeline interagisce con Google Cloud tecnologie di archiviazione dei dati come BigQuery e Pub/Sub, devi gestire le risorse e la quota per questi servizi.

Dataflow utilizza una località fornita dall'utente in Cloud Storage appositamente per i file di staging. Questa località è sotto il tuo controllo e devi assicurarti che la sua durata sia mantenuta finché un job legge da essa. Puoi riutilizzare la stessa località di staging per più esecuzioni di job, poiché la memorizzazione nella cache integrata dell'SDK può velocizzare il tempo di avvio dei job.

Job

Puoi eseguire fino a 25 job Dataflow simultanei per progetto; tuttavia, questo limite può essere aumentato contattando l'assistenza. Google Cloud Google Cloud Per scoprire di più, consulta Quote.

Il servizio Dataflow è attualmente limitato all'elaborazione delle richieste di job JSON di dimensioni pari o inferiori a 20 MB. Le dimensioni della richiesta di job sono legate in modo specifico alla rappresentazione JSON della pipeline; una pipeline più grande significa una richiesta più grande.

Per stimare le dimensioni della richiesta JSON della pipeline, esegui la pipeline con la seguente opzione:

Java

--dataflowJobFile=<path to output file>

Python

--dataflow_job_file=<path to output file>

Vai

Al momento, la stima delle dimensioni del payload JSON di un job con un flag non è supportata in Go.

Questo comando scrive una rappresentazione JSON del job in un file. Le dimensioni del file serializzato sono una buona stima delle dimensioni della richiesta; le dimensioni effettive saranno leggermente maggiori a causa di alcune informazioni aggiuntive incluse nella richiesta.

Per saperne di più, consulta la pagina di risoluzione dei problemi per "413 Request Entity Too Large" / "The size of serialized JSON representation of the pipeline exceeds the allowable limit".

Inoltre, le dimensioni del grafico del job non devono superare i 10 MB. Per saperne di più, consulta la pagina di risoluzione dei problemi per "The job graph is too large. Please try again with a smaller job graph, or split your job into two or more smaller jobs.".

Worker

Il servizio Dataflow consente un massimo di 1000 istanze di Compute Engine per job. Per i job batch, il tipo di macchina predefinito è un tipo di macchina con 1 vCPU. Per i job in modalità flusso, il tipo di macchina predefinito per i job con Streaming Engine è un tipo di macchina con 2 vCPU e il tipo di macchina predefinito per i job senza Streaming Engine è un tipo di macchina con 4 vCPU. Se hai bisogno di più core per il job, puoi selezionare un tipo di macchina più grande.

Non tentare di gestire o interagire direttamente con il gruppo di istanze gestite di Compute Engine; il servizio Dataflow si occuperà di tutto. La modifica manuale delle risorse di Compute Engine associate al job Dataflow è un'operazione non supportata.

Puoi utilizzare una qualsiasi delle famiglie di tipo di macchina Compute Engine disponibili, nonché i tipi di macchine personalizzate. Per risultati ottimali, utilizza le famiglie di tipi di macchine moderne, come N4 o N2. I tipi di macchine con core condivisi, come i worker delle serie f1 e g1, non sono supportati ai sensi del contratto di servizio di Dataflow.

Per allocare memoria aggiuntiva per thread di lavoro, utilizza un tipo di macchina personalizzata con memoria estesa. Ad esempio, un tipo di macchina personalizzata con 2 vCPU e 15 GB di memoria può fornire più memoria per thread di lavoro. Dataflow considera il numero di CPU in una macchina per determinare il numero di thread worker per VM worker. Se la pipeline elabora un lavoro che richiede molta memoria, un tipo di macchina personalizzata con memoria estesa può fornire più memoria per thread di lavoro. Per saperne di più, consulta Creare un'istanza VM personalizzata.

La fatturazione di Dataflow si basa sul numero di vCPU e sui GB di memoria nei worker. La fatturazione è indipendente dalla famiglia di tipo di macchina. Puoi specificare un tipo di macchina per la pipeline impostando il parametro di esecuzione appropriato al momento della creazione della pipeline.

Java

Per modificare il tipo di macchina, imposta l'opzione --workerMachineType.

Python

Per modificare il tipo di macchina, imposta l'opzione --worker_machine_type.

Vai

Per modificare il tipo di macchina, imposta l'opzione ‑‑worker_machine_type.

Quota per le risorse

Il servizio Dataflow verifica che il tuo Google Cloud progetto disponga della quota di risorse di Compute Engine necessaria per eseguire il job, sia per avviare il job sia per scalare fino al numero massimo di istanze worker. Il job non verrà avviato se non è disponibile una quota di risorse sufficiente.

Se il job Dataflow esegue il deployment delle macchine virtuali Compute Engine come gruppo di istanze gestite, devi assicurarti che il progetto soddisfi alcuni requisiti di quota aggiuntivi. In particolare, il progetto avrà bisogno di uno dei seguenti tipi di quota per ogni job Dataflow simultaneo che vuoi eseguire:

  • Un singolo gruppo di istanze per job
  • Un singolo gruppo di istanze gestite per job
  • Un singolo modello di istanza per job

Attenzione: la modifica manuale del modello di istanza o del gruppo di istanze gestite del job Dataflow non è consigliata o supportata. Utilizza invece le opzioni di configurazione della pipeline di Dataflow.

La funzionalità di scalabilità orizzontale automatica di Dataflow è limitata dalla quota di Compute Engine disponibile del progetto. Se il job ha una quota sufficiente all'avvio, ma un altro job utilizza il resto della quota disponibile del progetto, il primo job verrà eseguito, ma non sarà in grado di scalare completamente.

Tuttavia, il servizio Dataflow non gestisce gli aumenti di quota per i job che superano le quote di risorse nel progetto. È tua responsabilità effettuare le richieste necessarie per la quota di risorse aggiuntiva, per la quale tu puoi utilizzare la Google Cloud console.

Indirizzi IP

Per impostazione predefinita, Dataflow assegna indirizzi IP pubblici e privati alle VM worker. Un indirizzo IP pubblico soddisfa uno dei criteri per l'accesso a internet, ma viene anche conteggiato nella quota di indirizzi IP esterni.

Se le VM worker non hanno bisogno di accedere alla rete internet pubblica, valuta la possibilità di utilizzare solo indirizzi IP interni, che non vengono conteggiati nella quota esterna. Per saperne di più sulla configurazione degli indirizzi IP, consulta le seguenti risorse:

Worker inattivi

Se i worker di un determinato job non mostrano un'attività sufficiente in un periodo di un'ora, il job non riesce. L'inattività dei worker può essere causata da problemi di gestione delle dipendenze. Ad esempio, se un worker riscontra un problema durante l'installazione delle dipendenze per un'immagine container personalizzata, potrebbe non avviarsi o non fare progressi. La mancanza di progressi potrebbe causare il fallimento del job. Per saperne di più, consulta:

Risorse di Persistent Disk

Il servizio Dataflow è limitato a 15 Persistent Disk per istanza worker durante l'esecuzione di un job in modalità flusso. Ogni disco permanente è locale a una singola macchina virtuale Compute Engine. Il job non può avere più worker di Persistent Disk; un rapporto 1:1 tra worker e dischi è l'allocazione minima delle risorse.

I job che utilizzano Streaming Engine utilizzano dischi di avvio da 30 GB. I job che utilizzano Dataflow Shuffle utilizzano dischi di avvio da 25 GB. Per i job che non utilizzano queste offerte, le dimensioni predefinite di ogni disco permanente sono 250 GB in modalità batch e 400 GB in modalità flusso.

Località

Per impostazione predefinita, il servizio Dataflow esegue il deployment delle risorse di Compute Engine nella zona us-central1-f della regione us-central1. Puoi sostituire questa impostazione specificando il --region parametro. Se devi utilizzare una zona specifica per le risorse, utilizza il parametro --zone quando crei la pipeline. Tuttavia, ti consigliamo di specificare solo la regione e di lasciare la zona non specificata. In questo modo, il servizio Dataflow può selezionare automaticamente la zona migliore all'interno della regione in base alla capacità della zona disponibile al momento della richiesta di creazione del job. Per saperne di più, consulta la documentazione sulle regioni di Dataflow.