Quote per le richieste

Il servizio Dataflow gestisce completamente le risorse in Google Cloud in base al singolo 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 la gestione temporanea dei file temporanei e di I/O. Tuttavia, se la tua pipeline interagisce con le tecnologie di archiviazione dei dati di Google Cloud come BigQuery e Pub/Sub, devi gestire le risorse e la quota per quei servizi.

Dataflow utilizza una posizione fornita dall'utente in Cloud Storage specificamente per i file di gestione temporanea. Questa località è sotto il tuo controllo e devi assicurarti che la sua durata venga mantenuta finché è in corso la lettura di un job. Puoi riutilizzare la stessa località temporanea per più esecuzioni di job, poiché la memorizzazione nella cache integrata dell'SDK può velocizzare l'inizio dei job.

Job

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

Il servizio Dataflow è attualmente limitato all'elaborazione di richieste di job JSON di massimo 20 MB. Le dimensioni della richiesta del job sono legate specificamente alla rappresentazione JSON della pipeline; una pipeline più grande indica una richiesta più grande.

Per stimare le dimensioni della richiesta JSON della pipeline, eseguila con questa opzione:

Java

--dataflowJobFile=<path to output file>

Python

--dataflow_job_file=<path to output file>

Go

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; la dimensione effettiva sarà leggermente maggiore a causa di alcune informazioni aggiuntive incluse nella richiesta.

Per maggiori informazioni, consulta la pagina di risoluzione dei problemi per "Entità richiesta 413 troppo grande" / "Le dimensioni della rappresentazione JSON serializzata della pipeline superano il limite consentito".

Inoltre, le dimensioni del grafico del job non devono superare i 10 MB. Per ulteriori informazioni, consulta la pagina di risoluzione dei problemi per "Il grafico del job è troppo grande. Riprova con un grafico più piccolo dei job o dividi il job in due o più job più piccoli.".

Worker

Il servizio Dataflow attualmente consente un massimo di 1000 istanze di Compute Engine per job. Per i job batch, il tipo di macchina predefinito è n1-standard-1. Per i job di elaborazione in modalità flusso, il tipo di macchina predefinito per i job abilitati per Streaming Engine è n1-standard-2, mentre il tipo di macchina predefinito per i job non Streaming Engine è n1-standard-4. Quando utilizzi i tipi di macchina predefinita, il servizio Dataflow può quindi allocare fino a 4000 core per job. Se hai bisogno di più core per il job, puoi selezionare un tipo di macchina più grande.

Non tentare di gestire o interagire in altro modo direttamente con il tuo gruppo di istanze gestite di Compute Engine; se ne occuperà il servizio Dataflow. La modifica manuale di eventuali risorse di Compute Engine associate al job Dataflow è un'operazione non supportata.

Puoi utilizzare qualsiasi famiglia di tipi di macchine Compute Engine disponibile o qualsiasi tipo di macchina personalizzata. Per risultati ottimali, utilizza n1 tipi di macchina. I tipi di macchine con core condivisi, come i worker delle serie f1 e g1, non sono supportati dall'accordo sul livello del servizio di Dataflow.

Per allocare memoria aggiuntiva per thread di worker, utilizza un tipo di macchina personalizzata con memoria estesa. Ad esempio, custom-2-15360-ext è un tipo di macchina n1 con 2 CPU e 15 GB di memoria. Dataflow considera il numero di CPU in una macchina per determinare il numero di thread worker per VM worker. Se la tua pipeline elabora attività che richiedono molta memoria, un tipo di macchina personalizzata con memoria estesa può fornire più memoria per thread di lavoro. Per saperne di più, consulta Creazione di un'istanza VM personalizzata.

Dataflow fattura in base al numero di vCPU e GB di memoria nei worker. La fatturazione è indipendente dalla famiglia dei tipo di macchina. Puoi specificare un tipo di macchina per la tua pipeline impostando l'apposito parametro di esecuzione al momento della creazione della pipeline.

Java

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

Python

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

Go

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

Quota per le risorse

Il servizio Dataflow verifica che il progetto Google Cloud abbia la quota di risorse di Compute Engine richiesta 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 di macchine virtuali Compute Engine come gruppo di istanze gestite, devi assicurarti che il progetto soddisfi alcuni requisiti di quota aggiuntivi. In particolare, il tuo progetto avrà bisogno di uno dei seguenti tipi di quota per ogni job di Dataflow simultaneo che vuoi eseguire:

  • Un gruppo di istanze per job
  • Un gruppo di istanze gestite per job
  • Un 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à automatica orizzontale 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 la parte rimanente 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 delle risorse nel tuo progetto. Sei responsabile di effettuare eventuali richieste necessarie per la quota di risorse aggiuntiva, per la quale puoi utilizzare la console Google Cloud.

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 un indirizzo IP pubblico conta anche nella quota di indirizzi IP esterni.

Se le VM worker non hanno bisogno dell'accesso alla rete internet pubblica, valuta l'utilizzo di solo indirizzi IP interni, che non vengono conteggiati nella quota esterna. Per ulteriori informazioni sulla configurazione degli indirizzi IP, consulta le seguenti risorse:

Lavoratori inattivi

Se i worker per un determinato job non mostrano 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 riuscire ad avviarsi o a progredire. La mancanza di avanzamento potrebbe quindi causare un errore del job. Per scoprire di più, vedi:

Risorse del disco permanente

Il servizio Dataflow è limitato a 15 dischi permanenti per istanza worker quando viene eseguito un job di inserimento di flussi. Ogni disco permanente è locale rispetto a una singola macchina virtuale Compute Engine. Il job potrebbe non avere più worker che dischi permanenti; un rapporto di 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, la dimensione predefinita di ciascun disco permanente è 250 GB in modalità batch e 400 GB in modalità flusso.

Località

Per impostazione predefinita, il servizio Dataflow esegue il deployment delle risorse Compute Engine nella zona us-central1-f della regione us-central1. Puoi eseguire l'override di questa impostazione specifying il parametro --region. 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 non specificare la zona. Ciò consente al servizio Dataflow di 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 ulteriori informazioni, consulta la documentazione relativa alle regioni Dataflow.