Questa pagina spiega come risolvere i problemi relativi all'upgrade delle pipeline di streaming di Dataflow utilizzando funzionalità come un job di sostituzione parallela.
Job di sostituzione parallela
Segui queste indicazioni quando ricevi errori durante l'esecuzione di un job di sostituzione parallela per eseguire l'upgrade di una pipeline.
Opzione obbligatoria parallel_replace_job_min_parallel_pipelines_duration mancante
Quando provi a eseguire un job di sostituzione parallela, il job viene rifiutato e viene generato il seguente errore:
The parallel replace job requires you to set the parallel_replace_job_min_parallel_pipelines_duration field. Set the field and try your request again.
Questo problema si verifica quando parallel_replace_job_name o parallel_replace_job_id è impostato, ma parallel_replace_job_min_parallel_pipelines_duration non lo è.
Per risolvere il problema, imposta l'opzione parallel_replace_job_min_parallel_pipelines_duration insieme all'opzione parallel_replace_job_name o parallel_replace_job_id.
Manca una delle opzioni obbligatorie parallel_replace_job_name o parallel_replace_job_id
Quando provi a eseguire un job di sostituzione parallela, il job viene rifiutato e viene generato il seguente errore:
The parallel replace job requires you to set either the parallel_replace_job_id field or the parallel_replace_job_name field. Set one of these fields, then try your request again.
Questo problema si verifica quando parallel_replace_job_min_parallel_pipelines_duration è impostato, ma non parallel_replace_job_name né parallel_replace_job_id.
Per risolvere il problema, imposta l'opzione parallel_replace_job_name o parallel_replace_job_id insieme a parallel_replace_job_min_parallel_pipelines_duration.
Valore di durata non valido per l'opzione parallel_replace_job_min_parallel_pipelines_duration
Quando provi a eseguire un job di sostituzione parallela, il job viene rifiutato e viene generato il seguente errore:
An invalid duration string VALUE is set for `parallel_replace_job_min_parallel_pipelines_duration`. Set a valid duration string, such as 10s, 1m, or 1h. but not longer than 31 days.
Questo problema si verifica perché il valore di durata fornito non è valido.
Per risolvere il problema, imposta una stringa di durata valida nel <value><unit>
formato, ad esempio 10s, 1m o 1h. La durata deve essere compresa tra zero e 31 giorni.
I job di sostituzione parallela sono supportati solo per Streaming Engine
Quando provi a eseguire un job di sostituzione parallela, il job viene rifiutato e viene generato il seguente errore:
Parallel replace job is only supported for Streaming Engine. To enable Streaming Engine follow the instructions at https://cloud.google.com/dataflow/docs/streaming-engine#use
Questo problema si verifica perché Streaming Engine non è abilitato per il nuovo job.
Per risolvere il problema, abilita Streaming Engine ed esegui di nuovo il job.
L'ID del job di sostituzione parallela non è stato trovato
Quando provi a eseguire un job di sostituzione parallela, il job viene rifiutato e viene generato il seguente errore:
The parallel replace job id JOB_ID was not found.
Questo problema si verifica se è impostato un ID job non valido o se il job originale è stato eliminato dal sistema.
Per risolvere il problema, assicurati che per l'opzione parallel_replace_job_id venga utilizzato un ID job valido e in esecuzione. Se il job originale è già stato terminato, rimuovi le opzioni di avviso di nuova offerta parallelo e crea un nuovo job normale.
Il nome del job di sostituzione parallela non è stato trovato
Quando provi a eseguire un job di sostituzione parallela, il job viene rifiutato e viene generato il seguente errore:
The parallel replace job name JOB_NAME was not found.
Questo problema si verifica se è impostato un nome job non valido o se il job originale è stato eliminato dal sistema.
Per risolvere il problema, assicurati che per l'opzione parallel_replace_job_name venga utilizzato un nome job valido e in esecuzione. Se il job originale è già stato terminato, rimuovi le opzioni di avviso di nuova offerta parallelo e crea un nuovo job normale.
Il job di sostituzione parallela rimanda a un job non attivo
Quando provi a eseguire un job di sostituzione parallela, il job viene rifiutato e viene generato il seguente errore:
The parallel replace job JOB_ID is not in a active state.
Questo problema si verifica perché il job da sostituire non è un job attivo.
Per risolvere il problema, assicurati che parallel_replace_job_name o parallel_replace_job_id rimandino a un job di streaming valido e in esecuzione. Se il vecchio job è già stato terminato, rimuovi le opzioni di aggiornamento del job parallelo e crea un nuovo job normale.
Il job di sostituzione parallela rimanda a un job batch
Quando provi a eseguire un job di sostituzione parallela, il job viene rifiutato e viene generato il seguente errore:
The parallel replace job must be a streaming job.
Questo problema si verifica perché il job da sostituire non è un job di streaming.
Per risolvere il problema, assicurati che parallel_replace_job_name o parallel_replace_job_id rimandino a un job di streaming in esecuzione, non a un job batch.
Le opzioni del job di sostituzione parallela rimandano a job diversi
Quando provi a eseguire un job di sostituzione parallela, il job viene rifiutato e viene generato il seguente errore:
The parallel replace job id JOB_ID must point to a job with name JOB_NAME.
Questo problema si verifica perché le opzioni parallel_replace_job_name e parallel_replace_job_id rimandano a job diversi.
Per risolvere il problema, se utilizzi entrambe le opzioni, assicurati che rimandino allo stesso job di streaming in esecuzione. In alternativa, utilizza solo una delle opzioni, parallel_replace_job_name o parallel_replace_job_id.
Durata massima di arresto mancante quando è abilitata l'opzione di annullamento in caso di timeout di svuotamento
Quando provi a eseguire un job di sostituzione parallela, il job viene rifiutato e viene generato il seguente errore:
The parallel_replace_job_cancel_on_drain_timeout service option requires you to set the parallel_replace_job_max_stop_duration service option. Set the parallel_replace_job_max_stop_duration field and try your request again.
Questo problema si verifica perché l'opzione parallel_replace_job_cancel_on_drain_timeout è impostata su true, ma l'opzione parallel_replace_job_max_stop_duration non è configurata.
Per risolvere il problema, imposta l'opzione parallel_replace_job_max_stop_duration su una durata valida o rimuovi parallel_replace_job_cancel_on_drain_timeout.
Il job di sostituzione è stato avviato troppo presto dopo il job precedente
Quando provi a eseguire un job di sostituzione parallela utilizzando lo stesso nome job, il job viene rifiutato e viene generato il seguente errore:
The new parallel replace job must start after <var>min_duration</var> from the start of the previous job <var>old_job_id</var>. The current gap has the duration <var>gap_between_job</var>.
Questo problema si verifica quando aggiorni un job utilizzando lo stesso nome job (opzione 1) e il nuovo job di sostituzione viene avviato entro due minuti dall'inizio del job precedente. Dataflow applica questo intervallo minimo di due minuti per impedire aggiornamenti paralleli duplicati che potrebbero verificarsi a causa di ripetuti tentativi della libreria client o RPC obsoleti.
Per risolvere il problema, attendi almeno due minuti dall'inizio del job precedente prima di avviare l'aggiornamento.