Arrêter un pipeline en cours d'exécution

Si vous devez arrêter une tâche Dataflow en cours d'exécution, vous pouvez le faire en exécutant une commande à l'aide de l'Interface de surveillance de Dataflow, de l'Interface de ligne de commande de Dataflow, ou de l'API REST de Dataflow (Installation de Python groupée). Vous pouvez exécuter l'une des deux commandes suivantes pour arrêter la tâche : Cancel (Annuler) ou Drain (Drainer).

Arrêter une tâche à l'aide de l'interface de surveillance de Dataflow

Pour arrêter une tâche, sélectionnez-la dans la liste des tâches de l'interface de surveillance de Dataflow. Dans le panneau supérieur, cliquez sur Stop (Arrêter).

Figure 1 : Page de l'interface de surveillance de Dataflow contenant le bouton "Stop" (Arrêter) dans le panneau supérieur.

La boîte de dialogue Stop Job (Arrêter la tâche) affiche les modalités d'arrêt de la tâche :

Figure 2 : Boîte de dialogue "Stop Job" (Arrêter la tâche) contenant les options "Cancel" (Annuler) et "Drain" (Drainer)
.

Sélectionnez l'option Cancel (Annuler) ou Drain (Drainer) suivant vos besoins, puis cliquez sur le bouton Stop job (Arrêter la tâche).

Arrêter une tâche à l'aide de l'interface de ligne de commande de Dataflow

Pour arrêter une tâche à l'aide de l'interface de ligne de commande de Dataflow, exécutez la commande suivante dans un terminal sur lequel le S Cloud est installé ou dans Cloud Shell :

  gcloud dataflow jobs {cancel|drain} JOB-ID

Arrêter une tâche à l'aide de l'API REST de Dataflow

Pour annuler ou drainer une tâche à l'aide de l'API REST de Dataflow, l'état souhaité peut être transmis dans le champ requestedState de l'instance de tâche via le corps de la requête vers projects.locations.jobs.update ou projects.jobs.update. Pour annuler la tâche, définissez son état sur JOB_STATE_CANCELLED. Pour drainer la tâche, définissez son état sur JOB_STATE_DRAINED.

Annuler

L'option Annuler pour arrêter votre tâche indique au service Dataflow de l'annuler immédiatement. Le service interrompt dès que possible l'ingestion et le traitement des données et commence immédiatement à nettoyer les ressources Google Cloud associées à votre tâche. Cela peut inclure la fermeture des instances de nœuds de calcul Compute Engine et la fermeture des connexions actives aux sources ou récepteurs d'E/S.

Du fait que l'option "Annuler" arrête immédiatement le traitement, vous risquez de perdre toutes les données en cours de transfert, c'est-à-dire les données qui ont été lues mais qui sont toujours en cours de traitement par le pipeline. Les données écrites à partir du pipeline sur un récepteur de sortie avant l'émission de la commande "Annuler" peuvent toujours être accessibles sur le récepteur de sortie.

Si la perte de données n'est pas un problème, utilisez l'option "Annuler" pour arrêter votre pipeline afin de vous assurer que les ressources Google Cloud associées à votre tâche sont arrêtées dès que possible.

Drainer

L'option Drainer pour arrêter une tâche indique au service Dataflow de terminer la tâche dans son état actuel. Votre tâche arrête d'ingérer de nouvelles données à partir de sources d'entrée peu de temps après avoir reçu la requête Drain (généralement sous quelques minutes). Toutefois, le service Dataflow conserve toutes les ressources existantes, telles que les instances de nœuds de calcul, pour terminer le traitement et l'écriture des données mises en mémoire tampon dans le pipeline. Une fois toutes les opérations de traitement et d'écriture en attente terminées, le service Dataflow nettoie les ressources Google Cloud associées à la tâche.

Afin d'éviter les pertes de données lorsque vous désactivez les pipelines, utilisez l'option Drain pour arrêter la tâche.

Effets liés au drainage d'une tâche

Lorsque vous exécutez la commande "Drainer", Dataflow ferme immédiatement toutes les fenêtres en cours et actionne tous les déclencheurs. Le système n'attend pas que les fenêtres temporelles en cours se terminent. Par exemple, si votre pipeline a déjà passé 10 minutes d'une fenêtre de deux heures au moment où vous émettez la commande "Drainer", Dataflow n'attend pas que le reste de la fenêtre se termine. Il ferme la fenêtre immédiatement, avec des résultats partiels.

La vue détaillée des transformations du pipeline vous permet de voir les effets d'une commande "Drain" (drainer) en cours de traitement :

Figure 3 : Vue détaillée d'une étape avec l'opération de drainage en cours. Notez que le filigrane a avancé à sa valeur maximale
.