CREATE SNAPSHOT SET

Crée un instantané défini pour une table, un schéma ou une base de données. Une fois que l’ensemble d’instantanés existe, vous pouvez ajouter une nouvelle sauvegarde (instantané) à l’ensemble d’instantanés à tout moment en exécutant une commande ALTER SNAPSHOT SET. Snowflake ajoute également automatiquement des instantanés à l’ensemble d’instantanés si vous avez défini une planification dans une politique d’instantanés et si vous avez associé cette politique d’instantanés à l’ensemble d’instantanés.

Chaque ensemble d’instantanés représente un ensemble de sauvegardes pour une table spécifique, ou les objets d’un schéma spécifique, ou les objets d’une base de données spécifique. De cette façon, vous pouvez rendre vos sauvegardes très granulaires ou très complètes. Par ailleurs, les sauvegardes pour chaque table, schéma ou base de données peuvent disposer de leurs propres planifications indépendantes.

Pour connaître les types d’objets inclus dans les instantanés de schéma et les instantanés de base de données, consultez Objets instantanés.

Voir aussi :

ALTER SNAPSHOT SET, DROP SNAPSHOT SET, SHOW SNAPSHOT SETS, CREATE SNAPSHOT POLICY

Syntaxe

CREATE [OR REPLACE] SNAPSHOT SET [IF NOT EXISTS] <name>
   FOR [DYNAMIC] TABLE <table_name>
   [ WITH SNAPSHOT POLICY <policy_name> ]
   [ COMMENT = <string> ]
Copy
CREATE [OR REPLACE] SNAPSHOT SET [IF NOT EXISTS] <name>
  FOR SCHEMA <schema_name>
   [ WITH SNAPSHOT POLICY <policy_name> ]
   [ COMMENT = <string> ]
Copy
CREATE [OR REPLACE] SNAPSHOT SET [IF NOT EXISTS] <name>
  FOR DATABASE <database_name>
   [ WITH SNAPSHOT POLICY <policy_name> ]
   [ COMMENT = <string> ]
Copy

Paramètres requis

name

Identificateur de l’ensemble d’instantanés ; doit être unique pour votre compte.

De plus, l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (par exemple, "My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.

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

FOR [DYNAMIC] TABLE table_name

Spécifie le nom de la table ou de la table dynamique. Dans ce cas, l’ensemble d’instantanés représente les sauvegardes d’une seule table.

FOR SCHEMA schema_name

Spécifie le nom du schéma. Dans ce cas, l’ensemble d’instantanés représente les sauvegardes de l’ensemble des tables et autres objets d’un schéma spécifique.

FOR DATABASE database_name

Spécifie le nom de la base de données. Dans ce cas, l’ensemble d’instantanés représente les sauvegardes de l’ensemble des tables, schémas et autres objets d’une base de données spécifique.

Paramètres facultatifs

OR REPLACE

Si un ensemble d’instantanés portant ce nom existe déjà, supprimez-le et créez-en un nouveau. Si l’ensemble d’instantanés ne peut pas être supprimé en raison de règles de politique d’instantanés relatives aux verrous de conservation, aux conservations légales et aux délais d‘expiration, la commande échoue. Cette clause est incompatible avec IF NOT EXISTS.

IF NOT EXISTS

Crée l’ensemble d’instantanés uniquement s’il n’existe pas d’ensemble d’instantanés portant le même nom. Si un ensemble d’instantanés existe déjà, la commande renvoie un message de réussite, même si elle n’a aucun effet. Cette clause est incompatible avec OR REPLACE.

WITH SNAPSHOT POLICY policy_name

Spécifie le nom de la politique d’instantanés pour l’ensemble. La politique d’instantanés définit les propriétés de l’ensemble d’instantanés, telles que la planification des sauvegardes, la période de conservation de chaque instantané, et le fait d’empêcher la suppression des instantanés avant la fin de la période de conservation.

Si vous omettez ce paramètre dans la commande CREATE SNAPSHOT SET, vous pouvez appliquer une politique ultérieurement à l’aide de la commande ALTER SNAPSHOT SET.

Important

L’application d’une politique d’instantanés avec un verrou de conservation à un ensemble d’instantanés est irréversible. En raison des garanties strictes nécessaires à la conformité réglementaire, après avoir placé un verrou de conservation sur un ensemble d’instantanés, vous ne pouvez plus révoquer ce verrou. Le support Snowflake ne peut pas non plus révoquer un tel verrou de conservation. Réfléchissez bien avant de définir un verrou de conservation sur un ensemble d’instantanés avec une longue période d’expiration, afin d’éviter des frais de stockage inattendus pour les ensembles d’instantanés non supprimables, ainsi que pour les schémas et les bases de données qui les contiennent.

Si une organisation Snowflake est supprimée, l’organisation n’est plus un client Snowflake. Dans ce cas, Snowflake supprime tous les instantanés, y compris ceux avec des verrous de conservation. La suppression d’une organisation Snowflake nécessite l’intervention du support Snowflake. Il ne s’agit pas d’une opération qu’un administrateur peut effectuer par accident.

COMMENT = 'string_literal'

Spécifie un commentaire pour l’ensemble d’instantanés.

Par défaut : aucune valeur

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

CREATE SNAPSHOT SET

Le rôle utilisé pour créer un ensemble d’instantanés doit disposer du privilège accordé sur le schéma dans lequel l’ensemble d’instantanés est créé. La création effective de l’ensemble d’instantanés nécessite également le privilège approprié sur l’objet qui est le sujet de l’ensemble d’instantanés : SELECT pour un instantané de tables, ou USAGE pour un instantané de schémas ou un instantané de bases de données.

SELECT

Le rôle utilisé pour créer un ensemble d’instantanés pour une table doit disposer du privilège SELECT sur cette table.

USAGE

Le rôle utilisé pour créer un ensemble d’instantanés pour un schéma ou une base de données doit disposer du privilège USAGE sur ce schéma ou cette base de données.

APPLY SNAPSHOT RETENTION LOCK

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

Ces privilèges sont requis sur le rôle principal actuellement actif, et non sur un rôle secondaire.

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.

Important

Si la politique d’instantanés est associée à un verrou de conservation et qu’il existe des instantanés non expirés dans l’ensemble d’instantanés, vous ne pouvez pas supprimer l’ensemble d’instantanés. Dans ce cas, vous devez attendre que tous les instantanés de l’ensemble expirent. Cette restriction s’applique même aux rôles privilégiés tels que ACCOUNTADMIN, ainsi qu’au support Snowflake. C’est la raison pour laquelle vous devez faire preuve de prudence lorsque vous spécifiez un verrou de conservation et une longue période d’expiration dans une politique d’instantanés.

Exemples

Créer un ensemble d’instantanés nommé t1_snapshots pour la table t1 :

CREATE SNAPSHOT SET t1_snapshots
  FOR TABLE t1;
Copy

Créer un ensemble d’instantanés t1_snapshots pour la table t1 avec une politique d’instantanés :

CREATE SNAPSHOT SET t1_snapshots
  FOR TABLE t1
  WITH SNAPSHOT POLICY hour_snapshot_policy;
Copy

Créer un ensemble d’instantanés s1_snapshots pour le schéma s1 avec une politique d’instantanés :

CREATE SNAPSHOT SET s1_snapshots
  FOR SCHEMA s1
  WITH SNAPSHOT POLICY hour_snapshot_policy;
Copy

Créer un ensemble d’instantanés d1_snapshots pour la base de données d1 avec une politique d’instantanés :

CREATE SNAPSHOT SET d1_snapshots
  FOR DATABASE d1
  WITH SNAPSHOT POLICY hour_snapshot_policy;
Copy