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.
Syntaxe¶
CREATE [OR REPLACE] SNAPSHOT SET [IF NOT EXISTS] <name>
FOR [DYNAMIC] TABLE <table_name>
[ WITH SNAPSHOT POLICY <policy_name> ]
[ COMMENT = <string> ]
CREATE [OR REPLACE] SNAPSHOT SET [IF NOT EXISTS] <name>
FOR SCHEMA <schema_name>
[ WITH SNAPSHOT POLICY <policy_name> ]
[ COMMENT = <string> ]
CREATE [OR REPLACE] SNAPSHOT SET [IF NOT EXISTS] <name>
FOR DATABASE <database_name>
[ WITH SNAPSHOT POLICY <policy_name> ]
[ COMMENT = <string> ]
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;
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;
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;
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;