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 ou de l'interface de ligne de commande de Dataflow. 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 utilisateur de surveillance de Cloud 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).

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 tâche et vous assurer que les ressources Google Cloud associées à votre projet sont fermé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
.