Fenêtres de maintenance pour AWS Glue Streaming - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Fenêtres de maintenance pour AWS Glue Streaming

AWS Glue effectue périodiquement des activités de maintenance. Au cours de ces fenêtres de maintenance, AWS Glue devra redémarrer vos tâches de streaming. Vous pouvez contrôler le moment où les tâches sont redémarrées en spécifiant des fenêtres de maintenance. Dans cette section, nous expliquons où vous pouvez configurer la fenêtre de maintenance et les comportements spécifiques à prendre en compte.

Configuration d’une fenêtre de maintenance

Vous pouvez configurer une fenêtre de maintenance à l’aide d’AWS Glue Studio ou d’API.

Configuration d’une fenêtre de maintenance dans AWS Glue Studio

Vous pouvez spécifier une fenêtre de maintenance sur la page Détails de la tâche de votre tâche AWS Glue Streaming. Vous pouvez spécifier le jour et l’heure en GMT. AWS Glue redémarrera votre tâche dans le délai imparti.

Spécification d’une fenêtre de maintenance dans AWS Glue Studio

Configuration d’une fenêtre de maintenance dans l’API

Vous pouvez également configurer la fenêtre de maintenance dans l’API de création de tâche. Voici un exemple de configuration des fenêtres de maintenance via l’API.

aws glue create-job —name jobName —role roleArnForTheJob —command Name=gluestreaming,ScriptLocation=s3-path-to-the-script --maintenance-window="Sun:10"

Voici un exemple de commande :

aws glue create-job —name testMaintenance —role arn:aws:iam::012345678901:role/Glue_DefaultRole —command Name=gluestreaming,ScriptLocation=s3://glue-example-test/example.py —maintenance-window="Sun:10

Comportement des fenêtres de maintenance

AWS Glue passe par une série d’étapes pour décider à quel moment il convient de redémarrer une tâche :

  1. Lorsqu’une nouvelle tâche de streaming est lancée, AWS Glue vérifie d’abord si un délai d’expiration est associé à l’exécution de la tâche. Un délai d’attente vous permet de configurer l’heure de fin de la tâche. Si le délai d’expiration est inférieur à sept jours, la tâche ne sera pas redémarrée.

  2. Si le délai d’attente est supérieur à sept jours, AWS Glue vérifie si la fenêtre de maintenance est configurée pour la tâche. Si c’est le cas, cette fenêtre est sélectionnée et la fenêtre est affectée à l’exécution de la tâche. AWS Glue redémarrera la tâche dans les trois heures suivant la période de maintenance spécifiée. Par exemple, si vous configurez la fenêtre de maintenance pour le lundi à 10h00 GMT, vos tâches seront redémarrées entre 10h00 GMT et 13h00 GMT.

  3. Si la fenêtre de maintenance n’est pas configurée, AWS Glue définit automatiquement l’heure de redémarrage sur sept jours après le début de l’exécution de la tâche. Par exemple, si vous avez lancé votre tâche le 01/07/2024 à 00h00 GMT et que vous n’avez pas spécifié de fenêtres de maintenance, votre tâche sera configurée pour redémarrer le 08/07/2024 à 00h00 GMT.

    Note

    Si vous exécutez déjà des tâches de streaming, cette modification aura un impact sur vous à compter du 1er juillet 2024. Vous aurez jusqu’au 30 juin pour configurer vos fenêtres de maintenance. Après le 1er juillet, toutes les tâches de streaming que vous lancez seront redémarrées conformément à cette documentation. Si vous avez besoin d’une assistance supplémentaire, vous pouvez contacter AWS Support.

  4. Parfois, il se peut qu’AWS Glue ne puisse pas redémarrer la tâche, en particulier lorsque le microlot en cours n’est pas traité. Dans ces cas, la tâche ne sera pas interrompue. Dans ces cas, AWS Glue redémarrera la tâche au bout de 14 jours, et dans ce cas, la fenêtre de maintenance n’est pas respectée.

Surveillance des tâches

Vous pouvez surveiller les tâches sur la page Surveillance d’AWS Glue Studio.

Pour connaître l’heure prévue du prochain redémarrage des tâches de streaming, affichez la colonne du tableau des exécutions de tâches sur la page Surveillance.

  1. Cliquez sur l’icône d’engrenage en haut à droite du tableau.

    Spécification d’une fenêtre de maintenance dans AWS Glue Studio
  2. Faites défiler la page vers le bas et activez la colonne Heure de redémarrage prévue. Les options UTC et Heure locale sont disponibles.

    Spécification d’une fenêtre de maintenance dans AWS Glue Studio
  3. Vous pouvez ensuite afficher les colonnes du tableau.

    Spécification d’une fenêtre de maintenance dans AWS Glue Studio

La tâche d’origine aura le statut « EXPIRÉ » et la nouvelle instance de tâche aura le statut « EN COURS ». La nouvelle exécution de tâche qui a été redémarrée aura un ID d’exécution sous forme de concaténation de l’ID d’exécution de tâche initial et du préfixe « restart_ » représentant le nombre de redémarrages. Par exemple, si l’ID d’exécution initial de la tâche est jr_1234, l’exécution de la tâche redémarrée aura l’ID jr1234_restart_1 pour le premier redémarrage. Le deuxième redémarrage sera jr1234_restart_2 pour le deuxième redémarrage, et ainsi de suite.

Votre nouvelle tentative ne sera pas affectée en raison des redémarrages. Si une exécution échoue et qu’une nouvelle exécution est lancée en raison d’une nouvelle tentative automatique, le compteur de redémarrage recommencera à 1. Par exemple, si une exécution échoue à jr_1234_attempt_3_restart_5, une nouvelle tentative automatique lancera une nouvelle exécution avec un ID : jr_id1_attempt_4, et lorsque cette tentative est redémarrée après sept jours, le nouvel ID d’exécution sera jr_id1_attempt_4_restart_1.

Gestion des pertes de données

Lors des redémarrages de maintenance, AWS Glue Streaming suit un processus qui garantit l’intégrité des données et la cohérence entre l’exécution de la tâche précédente et l’exécution de la tâche redémarrée. Notez qu’AWS Glue ne garantit pas l’intégrité et la cohérence des données entre les redémarrages des tâches. Nous recommandons de prendre en compte l’architecture pour gérer les données dupliquées dans les tâches de streaming.

  1. Détection des conditions de redémarrage de maintenance : AWS Glue Streaming surveille les conditions qui indiquent quand un redémarrage pour maintenance doit être déclenché, par exemple lorsqu’une fenêtre de maintenance est atteinte après 7 jours ou qu’un redémarrage brutal est nécessaire après 14 jours.

  2. Invocation d’une résiliation progressive : lorsque les conditions de redémarrage de maintenance sont remplies, AWS Glue Streaming lance un processus de résiliation progressive pour la tâche en cours d’exécution. Ce processus englobe les étapes suivantes :

    1. Arrêt de l’ingestion de nouvelles données : la tâche de streaming arrête de consommer les nouvelles données provenant des sources d’entrée (par exemple, les rubriques Kafka, les flux Kinesis ou les fichiers).

    2. Traitement des données en attente : la tâche continue de traiter toutes les données déjà présentes dans ses mémoires tampons ou ses files d’attente internes.

    3. Validation des décalages et des points de contrôle : la tâche valide les derniers décalages ou points de contrôle vers des systèmes externes (par exemple, Kafka, Kinesis ou Amazon S3) afin de garantir que la tâche redémarrée puisse reprendre là où la tâche précédente s’était arrêtée.

  3. Redémarrage de la tâche : une fois le processus de résiliation progressive terminé, AWS Glue Streaming redémarre la tâche en utilisant l’état préservé et les points de contrôle. La tâche redémarrée reprend le traitement à partir du dernier décalage ou point de contrôle validé, garantissant ainsi qu’aucune donnée n’est perdue ou dupliquée.

  4. Reprise du traitement des données : la tâche redémarrée reprend le traitement des données à partir du point où la tâche précédente s’était arrêtée. Elle continue à ingérer les nouvelles données provenant des sources d’entrée, à partir du dernier décalage ou point de contrôle validé, et traite les données conformément à la logique ETL définie.