Cette page explique comment résoudre les problèmes liés à la mise à niveau des pipelines de streaming Dataflow à l'aide de fonctionnalités telles qu'une tâche de remplacement parallèle.
Tâches de remplacement parallèles
Suivez les instructions ci-dessous lorsque vous recevez des erreurs lors de l'exécution d'une tâche de remplacement parallèle pour mettre à niveau un pipeline.
Option obligatoire manquante parallel_replace_job_min_parallel_pipelines_duration
Lorsque vous essayez d'exécuter une tâche de remplacement parallèle, elle est refusée et l'erreur suivante s'affiche :
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.
Ce problème se produit lorsque parallel_replace_job_name ou parallel_replace_job_id est défini, mais pas parallel_replace_job_min_parallel_pipelines_duration.
Pour résoudre ce problème, définissez l'option parallel_replace_job_min_parallel_pipelines_duration avec l'option parallel_replace_job_name ou parallel_replace_job_id.
Option obligatoire manquante parallel_replace_job_name ou parallel_replace_job_id
Lorsque vous essayez d'exécuter une tâche de remplacement parallèle, elle est refusée et l'erreur suivante s'affiche :
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.
Ce problème se produit lorsque parallel_replace_job_min_parallel_pipelines_duration est défini, mais pas parallel_replace_job_name ni parallel_replace_job_id.
Pour résoudre ce problème, définissez l'option parallel_replace_job_name ou parallel_replace_job_id avec parallel_replace_job_min_parallel_pipelines_duration.
Valeur de durée non valide pour l'option parallel_replace_job_min_parallel_pipelines_duration
Lorsque vous essayez d'exécuter une tâche de remplacement parallèle, elle est refusée et l'erreur suivante s'affiche :
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.
Ce problème se produit, car la valeur de durée fournie n'est pas valide.
Pour résoudre ce problème, définissez une chaîne de durée valide au <value><unit>
format, par exemple 10s, 1m ou 1h. La durée doit être comprise entre zéro et 31 jours.
Les tâches de remplacement parallèles ne sont compatibles qu'avec Streaming Engine
Lorsque vous essayez d'exécuter une tâche de remplacement parallèle, elle est refusée et l'erreur suivante s'affiche :
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
Ce problème se produit, car Streaming Engine n'est pas activé pour la nouvelle tâche.
Pour résoudre ce problème, activez Streaming Engine et réexécutez la tâche.
Impossible de trouver l'ID de la tâche de remplacement parallèle
Lorsque vous essayez d'exécuter une tâche de remplacement parallèle, elle est refusée et l'erreur suivante s'affiche :
The parallel replace job id JOB_ID was not found.
Ce problème se produit si un ID de tâche non valide est défini ou si la tâche d'origine a été supprimée du système.
Pour résoudre ce problème, assurez-vous qu'un ID de tâche valide et en cours d'exécution est utilisé pour l'option parallel_replace_job_id. Si la tâche d'origine a déjà été arrêtée, supprimez les options de mise à jour de la tâche parallèle et créez une tâche normale.
Impossible de trouver le nom de la tâche de remplacement parallèle
Lorsque vous essayez d'exécuter une tâche de remplacement parallèle, elle est refusée et l'erreur suivante s'affiche :
The parallel replace job name JOB_NAME was not found.
Ce problème se produit si un nom de tâche non valide est défini ou si la tâche d'origine a été supprimée du système.
Pour résoudre ce problème, assurez-vous qu'un nom de tâche valide et en cours d'exécution est utilisé pour l'option parallel_replace_job_name. Si la tâche d'origine a déjà été arrêtée, supprimez les options de mise à jour de la tâche parallèle et créez une tâche normale.
La tâche de remplacement parallèle pointe vers une tâche non active
Lorsque vous essayez d'exécuter une tâche de remplacement parallèle, elle est refusée et l'erreur suivante s'affiche :
The parallel replace job JOB_ID is not in a active state.
Ce problème se produit, car la tâche remplacée n'est pas une tâche active.
Pour résoudre ce problème, assurez-vous que parallel_replace_job_name ou parallel_replace_job_id pointe vers une tâche de streaming valide et en cours d'exécution. Si l'ancienne tâche a déjà été arrêtée, supprimez les options de mise à jour de la tâche parallèle et créez une tâche normale.
La tâche de remplacement parallèle pointe vers un job par lot
Lorsque vous essayez d'exécuter une tâche de remplacement parallèle, elle est refusée et l'erreur suivante s'affiche :
The parallel replace job must be a streaming job.
Ce problème se produit, car la tâche remplacée n'est pas une tâche de streaming.
Pour résoudre ce problème, assurez-vous que parallel_replace_job_name ou parallel_replace_job_id pointe vers une tâche de streaming en cours d'exécution, et non vers un job par lot.
Les options de la tâche de remplacement parallèle pointent vers différentes tâches
Lorsque vous essayez d'exécuter une tâche de remplacement parallèle, elle est refusée et l'erreur suivante s'affiche :
The parallel replace job id JOB_ID must point to a job with name JOB_NAME.
Ce problème se produit, car les options parallel_replace_job_name et parallel_replace_job_id pointent vers différentes tâches.
Pour résoudre ce problème, si vous utilisez les deux options, assurez-vous qu'elles pointent vers la même tâche de streaming en cours d'exécution. Vous pouvez également n'utiliser qu'une seule des options, parallel_replace_job_name ou parallel_replace_job_id.
Durée d'arrêt maximale manquante lorsque l'annulation en cas de délai d'attente de vidange est activée
Lorsque vous essayez d'exécuter une tâche de remplacement parallèle, elle est refusée et l'erreur suivante s'affiche :
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.
Ce problème se produit, car l'option parallel_replace_job_cancel_on_drain_timeout est définie sur true, mais l'option parallel_replace_job_max_stop_duration n'est pas configurée.
Pour résoudre ce problème, définissez l'option parallel_replace_job_max_stop_duration sur une durée valide ou supprimez parallel_replace_job_cancel_on_drain_timeout.
La tâche de remplacement a démarré trop tôt après la tâche précédente
Lorsque vous essayez d'exécuter une tâche de remplacement parallèle avec le même nom de tâche, elle est refusée et l'erreur suivante s'affiche :
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>.
Ce problème se produit lorsque vous mettez à jour une tâche avec le même nom (option 1) et que la nouvelle tâche de remplacement démarre moins de deux minutes après le début de la tâche précédente. Dataflow applique cet intervalle minimal de deux minutes pour éviter les mises à jour parallèles en double qui pourraient se produire en raison de nouvelles tentatives répétées de la bibliothèque cliente ou de RPC obsolètes.
Pour résoudre ce problème, attendez au moins deux minutes après le début de la tâche précédente avant de lancer la mise à jour.