ALTER SNAPSHOT POLICY

Modifie les propriétés d’une politique d’instantané. Les modifications suivantes sont prises en charge :

  • Renommer la politique.

  • Ajouter ou mettre à jour le commentaire pour la politique.

  • Modifier les paramètres de planification et d’expiration de la politique. La planification détermine la fréquence à laquelle Snowflake effectue automatiquement une sauvegarde et ajoute l’instantané résultant à l’ensemble d’instantanés régis par la politique. La période d’expiration détermine la durée de conservation de chaque instantané avant que Snowflake ne le supprime automatiquement de l’ensemble d’instantanés associé.

  • Désactivez les propriétés de la politique afin qu’elles reviennent à leurs valeurs par défaut.

Voir aussi :

CREATE SNAPSHOT POLICY, DROP SNAPSHOT POLICY, SHOW SNAPSHOT POLICIES

Syntaxe

ALTER SNAPSHOT POLICY <name> RENAME TO <new_name>

ALTER SNAPSHOT POLICY <name> SET
  [ COMMENT = '<string_literal>' ]
  [ SCHEDULE = '{ <num> MINUTE | USING CRON <expr> <time_zone> }' ]
  [ EXPIRE_AFTER_DAYS = <days_integer> ]

ALTER SNAPSHOT POLICY <name> UNSET { COMMENT | SCHEDULE | EXPIRE_AFTER_DAYS }
Copy

Paramètres

name

Spécifie l’identificateur de la politique d’instantané.

Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus d’informations, voir Exigences relatives à l’identificateur.

RENAME TO new_name

Spécifie le nouvel identificateur de la politique d’instantané ; doit être unique pour votre compte.

Pour plus d’informations, voir Exigences relatives à l’identificateur.

SET...

Spécifie une ou plusieurs propriétés à définir pour la politique d’instantané (séparées par des espaces, des virgules ou de nouvelles lignes) :

COMMENT = 'string_literal'

Spécifie un commentaire pour la politique d’instantané.

SCHEDULE = '{ num MINUTE | USING CRON expr time_zone }'

Spécifie la planification de création des instantanés d’un objet.

Note

La planification minimale des instantanés est de 60 minutes.

Chaque politique doit inclure une clause SCHEDULE, une clauseEXPIRE_AFTER_DAYS, ou les deux.

  • USING CRON expr time_zone

    Spécifie une expression cron et un fuseau horaire pour le moment où un instantané d’un objet est créé. Prend en charge un sous-ensemble de la syntaxe standard de l’utilitaire cron.

    Pour obtenir une liste des fuseaux horaires, voir la liste des fuseaux horaires de la base de données tz (dans Wikipédia).

    L’expression cron comprend les champs suivants :

    # __________ minute (0-59)
    # | ________ hour (0-23)
    # | | ______ day of month (1-31, or L)
    # | | | ____ month (1-12, JAN-DEC)
    # | | | | __ day of week (0-6, SUN-SAT, or L)
    # | | | | |
    # | | | | |
      * * * * *
    

    Les caractères spéciaux suivants sont acceptés :

    *

    Caractère générique. Spécifie toute occurrence du champ.

    L

    Signifie « dernier ». Lorsqu’il est utilisé dans le champ du jour de la semaine, il vous permet de spécifier des constructions telles que « le dernier vendredi » (« 5L ») d’un mois donné. Dans le champ du mois, il spécifie le dernier jour du mois.

    /n

    Indique l’instance n d’une unité de temps donnée. Chaque quanta de temps est calculé indépendamment. Par exemple, si 4/3 est spécifié dans le champ du mois, l’instantané est planifié pour avril, juillet et octobre, (c’est-à-dire tous les 3 mois, à partir du 4e mois de l’année). Le même calendrier est maintenu les années suivantes. En d’autres termes, l’exécution de l’instantané n’est pas prévue en janvier (3 mois après l’exécution d’octobre).

    Note

    • L’expression cron est actuellement évaluée par rapport au fuseau horaire spécifié. La modification de la valeur du paramètre TIMEZONE pour le compte (ou la définition de la valeur au niveau de l’utilisateur ou de la session) ne modifie pas le fuseau horaire de l’instantané.

    • L’expression cron définit toutes les heures d’exécution valides de l’instantané. Snowflake tente de créer un instantané en fonction de cette planification ; toutefois, tout moment d’exécution valide est ignoré si une exécution précédente n’a pas été terminée avant le début du moment d’exécution valide suivant.

    • Lorsqu’un jour de mois et un jour de semaine spécifiques sont inclus dans l’expression cron, l’instantané est planifié les jours satisfaisant le jour du mois ou le jour de la semaine. Par exemple, SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC' planifie un instantané à 0AM (minuit) entre le 10e et le 20e jour du mois ainsi que le mardi ou le jeudi en dehors de ces dates.

  • num MINUTE

    Spécifie un intervalle (en minutes) de temps d’attente entre les instantanés. Accepte uniquement les entiers positifs.

    Prend également en charge la syntaxe num M.

    Pour éviter toute ambiguïté, un intervalle de base est défini dans les circonstances suivantes :

    • Lorsque l’objet est créé (à l’aide de CREATE SNAPSHOT SET … WITH SNAPSHOT POLICY).

    • Lorsqu’un intervalle différent est défini (avec ALTER SNAPSHOT SET … APPLY SNAPSHOT POLICY or ALTER SNAPSHOT POLICY … SET SCHEDULE).

    L’intervalle de base démarre le compteur d’intervalle à partir de l’heure actuelle. Par exemple, si une valeur INTERVAL de 10 est définie et l’instantané planifié est activé à 9:03 AM, l’instantané suivant est créé à 9:13 AM, 9:23 AM, et ainsi de suite. Notez que nous faisons de notre mieux pour assurer une précision absolue, mais nous garantissons uniquement qu’un instantané ne s’exécute pas avant l’intervalle défini (par exemple, dans cet exemple, l’instantané pourrait d’abord être exécutée à 9:14 AM, mais ne fonctionnera certainement pas à 9:12 AM).

EXPIRE_AFTER_DAYS = days_integer

Spécifie le nombre de jours jusqu’à l’expiration de l’instantané. Snowflake supprime automatiquement les instantanés ayant expiré. Si ce paramètre n’est pas spécifié, les instantanés restent dans l’ensemble d’instantanés jusqu’à ce qu’ils en soient supprimés manuellement.

Note

Si la politique possède un verrou de conservation, vous pouvez augmenter la valeur EXPIRE_AFTER_DAYS, mais vous ne pouvez pas réduire cette valeur.

Chaque politique doit inclure une clause SCHEDULE, une clauseEXPIRE_AFTER_DAYS, ou les deux.

UNSET...

Annulez la définition de l’une des propriétés suivantes pour la politique d’instantané. La propriété revient à sa valeur par défaut.

  • COMMENT

  • SCHEDULE

  • EXPIRE_AFTER_DAYS

Note

Vous pouvez annuler la définition de la propriété SCHEDULE, ou de la propriété EXPIRE_AFTER_DAYS, mais pas les deux. Par exemple, vous pouvez conserver la propriété EXPIRE_AFTER_DAYS lorsque vous n’avez pas l’intention de créer de nouveaux instantanés, mais que vous souhaitez que les instantanés existants expirent au bout d’un certain temps.

Exigences en matière de contrôle d’accès

Un rôle utilisé pour exécuter cette opération doit au minimum disposer des privilèges suivants :

Privilège

Remarques

OWNERSHIP

Le rôle utilisé pour modifier une politique d’instantané doit avoir le privilège OWNERSHIP sur la politique de l’instantané.

APPLY SNAPSHOT RETENTION LOCK

Le rôle utilisé pour modifier une politique d’instantané avec un verrou de conservation doit avoir ce privilège sur le compte.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.

Notes sur l’utilisation

Concernant les métadonnées :

Attention

Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.

Exemples

Ajouter un commentaire à la politique d’instantané hourly_snapshot_policy :

ALTER SNAPSHOT POLICY hourly_snapshot_policy
  SET COMMENT = 'hourly snapshot expires in 90 days';
Copy

Modifier la planification pour la politique d’instantané every_two_hours :

ALTER SNAPSHOT POLICY every_two_hours SET SCHEDULE = '120 MINUTE';
Copy

Rétablir la propriété EXPIRE_AFTER_DAYS à sa valeur par défaut :

ALTER SNAPSHOT POLICY sample_snapshot_policy UNSET EXPIRE_AFTER_DAYS;
Copy