Les checkpoints système et les savepoints constituent les ensembles d'états. Cette rubrique explique comment gérer les ensembles d'états de vos jobs : création, consultation, suppression et restauration d'un job à partir d'un état spécifique.
Informations générales
|
Concept |
Détails |
|
Checkpoint système (Correspond au Checkpoint dans Apache Flink) |
Le système Flink gère entièrement le cycle de vie. Vous pouvez configurer l'checkpointing interval, le Checkpointing Timeout Time et le min interval between checkpoints, ainsi que consulter leur statut de génération. La création ou la suppression manuelle de checkpoints système est impossible. Par défaut, un job conserve un checkpoint système dans son ensemble d'états pour permettre sa récupération. Pour plus d'informations sur la configuration des paramètres, consultez Configurer les informations de déploiement du job. |
|
Savepoint (Correspond au Savepoint dans Apache Flink) |
L'utilisateur gère intégralement le cycle de vie selon les modalités suivantes :
Remarque
Même en cas de génération ou de nettoyage planifié, vous maîtrisez le cycle de vie en définissant les règles appliquées par le système. |
Le tableau suivant détaille les opérations applicables aux checkpoints système et aux savepoints, leurs cas d'usage ainsi que les liens vers la documentation associée.
|
Actions |
Cas d'usage |
Documentation |
|
Créer manuellement un savepoint |
Cette option convient lorsque vous devez créer un savepoint à un instant précis (pendant l'exécution ou l'arrêt du job) pour restaurer le job ultérieurement. Important
|
|
|
Configurer la création automatique planifiée de savepoints |
Pour automatiser la création de savepoints selon une planification, définissez un intervalle de création. Le système génère alors les savepoints pour le job en cours d'exécution conformément à cette règle, ce qui dispense de toute intervention manuelle. |
|
|
Consulter la vue d'ensemble de la génération des états |
Cette vue permet d'examiner l'historique de génération des checkpoints système et des savepoints. Ces informations facilitent l'évaluation rapide du statut de persistance de l'état du job. |
|
|
Restaurer un job à partir d'un savepoint spécifié (y compris depuis un autre job) |
Pour restaurer un job depuis un savepoint particulier, sélectionnez-le au moment du démarrage. Remarque
Le partage de savepoints entre jobs est possible, sous réserve de compatibilité des états. Cette fonctionnalité s'avère utile pour les tests A/B. |
Restaurer un job à partir d'un savepoint spécifié (y compris depuis un autre job) |
|
Configurer des règles de nettoyage automatique des savepoints |
Plutôt que de supprimer les savepoints manuellement, configurez des règles automatiques basées sur le nombre de savepoints à conserver ou sur leur durée de rétention maximale. Une fois la règle enregistrée, le système nettoie automatiquement les savepoints du job en cours d'exécution selon ces critères. Remarque
|
Configurer des règles de nettoyage automatique des savepoints |
|
Supprimer manuellement un savepoint spécifique |
Les savepoints créés manuellement ne sont pas supprimés automatiquement à l'arrêt du job. Supprimez régulièrement les savepoints obsolètes afin d'éviter une consommation inutile d'Object Storage Service (OSS) et les coûts associés. |
|
|
Configurer les paramètres liés à l'état |
Définissez notamment le système de stockage d'état pour les flux, le TTL d'état pour les jobs SQL, ou encore le stockage sur disque local des données temporaires générées lors de la création de savepoints. |
Créer manuellement un savepoint
La création manuelle d'un savepoint n'est possible que pour un job dont l'état est RUNNING.
-
Accédez à la page de création de savepoint du job cible.
Connectez-vous à la console Realtime Compute for Apache Flink.
Dans la colonne Actions de l'espace de travail cible, cliquez sur Console.
Sur la page , cliquez sur le nom du job cible.
Dans l'angle supérieur droit de la page, cliquez sur Create Savepoint.
-
Sélectionnez un format de savepoint et saisissez une description.
Les formats disponibles sont le format natif et le format canonique. Le format natif offre une génération plus rapide et une empreinte de stockage réduite, mais il n'est pas compatible entre les différentes versions de Flink. Le format canonique nécessite plus de temps et d'espace de stockage, mais il permet la migration des jobs entre versions distinctes de Flink.
Cliquez sur Create.
Configurer la création automatique planifiée de savepoints
-
Accédez à la page State.
Connectez-vous à la console Realtime Compute for Apache Flink.
Dans la colonne Actions de l'espace de travail cible, cliquez sur Console.
Sur la page , cliquez sur le nom du job cible.
Cliquez sur State.
-
Dans l'onglet Configuration, activez le commutateur Savepoint automatically generated at regular intervals et définissez la planification.
Cliquez sur Quick Setting pour choisir un intervalle prédéfini, ou saisissez manuellement une expression cron. Pour une saisie manuelle, cliquez sur chaque champ afin d'en modifier la valeur. Le tableau ci-dessous présente les valeurs valides et les caractères spéciaux pris en charge pour les cinq champs d'une expression cron.
Champ
Obligatoire
Plage de valeurs
Caractères spéciaux
Minute
Oui
[0, 59]
* , - /
Heure
Oui
[0, 23]
* , - /
Jour du mois
Oui
[1, 31]
* , - /
Mois
Oui
[1, 12] ou [JAN, DEC]
* , - /
Jour de la semaine
Oui
[1, 7] ou [MON, SUN].
RemarqueAvec le format numérique [1, 7], 1 correspond au lundi et 7 au dimanche.
* , - /
RemarqueL'intervalle minimal est de 10 minutes. Si vous spécifiez un intervalle inférieur, le système applique automatiquement une valeur de 10 minutes.
Chaque champ admet un ensemble de caractères spéciaux ayant une signification précise, comme le décrit le tableau suivant.
Caractère spécial
Description
Exemple
*Toutes les valeurs possibles.
Dans le champ Mois,
*signifie chaque mois. Dans le champ Jour de la semaine,*correspond à tous les jours de la semaine.,Une liste de valeurs énumérées.
Dans le champ Minute,
5,20déclenche la tâche à 5 et 20 minutes après l'heure pleine.-Une plage de valeurs.
Dans le champ Minute,
5-20déclenche la tâche chaque minute de la minute 5 à la minute 20./Un incrément pour une valeur numérique.
Dans le champ Minute,
0/15déclenche la tâche toutes les 15 minutes, à partir de la minute 0.3/20déclenche la tâche toutes les 20 minutes, à partir de la minute 3.Le tableau suivant fournit des exemples d'expressions cron.
Exemple
Description
15 10 * * *S'exécute quotidiennement à 10 h 15.
0 12 * * *S'exécute quotidiennement à 12 h 00 (midi).
0 10,14,16 * * *S'exécute quotidiennement à 10 h 00, 14 h 00 et 16 h 00.
0/30 9-17 * * *S'exécute toutes les 30 minutes entre 9 h 00 et 17 h 00 chaque jour.
* 14 * * *S'exécute chaque minute de 14 h 00 à 14 h 59 quotidiennement.
0-5 14 * * *S'exécute chaque minute de 14 h 00 à 14 h 05 quotidiennement.
0/5 14 * * *S'exécute toutes les 5 minutes de 14 h 00 à 14 h 55 quotidiennement.
0/5 14,18 * * *S'exécute toutes les 5 minutes durant l'heure de 14 h (de 14 h 00 à 14 h 55) et celle de 18 h (de 18 h 00 à 18 h 55) chaque jour.
0 12 * * WEDS'exécute à 12 h 00 (midi) tous les mercredis.
15 10 15 * *S'exécute à 10 h 15 le 15 de chaque mois.
10,44 14 * 3 WEDS'exécute à 14 h 10 et 14 h 44 chaque mercredi du mois de mars.
ImportantDéfinition des champs : L'expression comporte cinq champs :
Minute Hour Day-of-month Month Day-of-week.-
Union du jour et de la semaine : Si le troisième champ (Day-of-month) et le cinquième champ (Day-of-week) sont tous deux renseignés, ils sont combinés par une condition OR.
Par exemple,
0 12 1 * 5signifie que la tâche s'exécute à 12 h 00 le 1er du mois ou chaque vendredi. Cela ne signifie pas que la tâche s'exécute uniquement lorsque le 1er du mois tombe un vendredi. Le point d'interrogation (?**) n'est pas pris en charge : N'utilisez pas le caractère
?, car le système signalera une erreur ou ne reconnaîtra pas l'expression. Pour ignorer un champ, utilisez impérativement*.**
Consulter la vue d'ensemble des états
-
Accédez à la page State.
Connectez-vous à la console Realtime Compute for Flink.
Dans la colonne Actions de l'espace de travail cible, cliquez sur Console.
Sur la page , cliquez sur le nom du déploiement cible.
Cliquez sur State.
-
Dans l'onglet Overview, consultez les informations suivantes.
Catégorie
Informations
Checkpoint système
Affiche les détails du dernier checkpoint système réussi et du dernier échec, notamment l'ID, l'heure de fin, la durée et la taille totale de stockage.
Savepoint
Affiche les détails du dernier savepoint réussi et du dernier échec, y compris l'ID du savepoint, l'heure de fin, la durée ou l'heure de l'échec.
Restaurer un job à partir du savepoint d'un autre job
Seuls les jobs dont l'état est CANCELLED peuvent être restaurés depuis un savepoint spécifique. Si votre job est RUNNING, arrêtez-le au préalable.
-
Accédez à la page State.
Connectez-vous à la console Realtime Compute for Apache Flink.
Dans la colonne Actions de l'espace de travail cible, cliquez sur Console.
Sur la page , cliquez sur le nom du déploiement cible.
Cliquez sur State.
Dans l'onglet History, localisez le savepoint cible dans la liste Savepoints.
Dans la colonne Actions du savepoint cible, choisissez .
-
Dans la boîte de dialogue de configuration Start Job, définissez les paramètres de démarrage du job.
Pour plus d'informations, consultez Démarrer un job.
Configurer des règles de nettoyage automatique des savepoints
-
Accédez à la page State.
Connectez-vous à la console Realtime Compute.
Dans la colonne Actions de l'espace de travail cible, cliquez sur Console.
Sur la page , cliquez sur le nom du déploiement cible.
Cliquez sur State.
-
Dans l'onglet Configuration, activez le commutateur Scheduled automatic cleaning of savepoint et configurez les règles de nettoyage.
Vous pouvez définir le Number of historical snapshots saved ainsi que la Maximum Retention Period for Historical Savepoints. Lorsqu'un job Flink est en cours d'exécution, le nettoyage des savepoints se déclenche dès que l'une de ces conditions est remplie.
Cliquez sur Save Changes.
Supprimer un savepoint
-
Accédez à la page State.
Connectez-vous à la console Realtime Compute.
Dans la colonne Actions de l'espace de travail cible, cliquez sur Console.
Sur la page , cliquez sur le nom du déploiement cible.
Cliquez sur State.
Dans l'onglet History, localisez le savepoint cible dans la liste Savepoints.
Dans la colonne Actions du savepoint cible, choisissez .
Cliquez sur OK.
Définir les paramètres d'état
-
Accédez à la page Deployments du déploiement cible.
Connectez-vous à la console Realtime Compute for Apache Flink.
Dans la colonne Actions de l'espace de travail cible, cliquez sur Console.
Sur la page , cliquez sur le nom du déploiement cible.
Dans l'onglet Configuration, cliquez sur Edit à droite de la section Parameters.
-
Dans la section Other Configuration, ajoutez le code suivant et cliquez sur Save.
state.backend.incremental: true table.exec.state.ttl: 129600000Pour plus d'informations sur les paramètres Flink de base et avancés, consultez Configurer GeminiStateBackend.
Documents connexes
Pour les questions fréquentes concernant les checkpoints système ou les savepoints dans Realtime Compute for Apache Flink, consultez Checkpoints système ou savepoints.
Pour connaître l'impact des modifications SQL sur la compatibilité, consultez Modifications SQL et compatibilité.