CREATE SNAPSHOT¶
Note
Cette opération n’est actuellement pas couverte par le niveau de service défini dans Politique de support et accord de niveau de service de Snowflake.
Crée ou remplace un instantané d’un volume nommé à partir de l’instance de service spécifiée. L’instantané est créé dans le schéma actuel.
- Voir aussi :
ALTER SNAPSHOT, DESCRIBE SNAPSHOT, DROP SNAPSHOT , SHOW SNAPSHOTS
Syntaxe¶
CREATE [ OR REPLACE ] SNAPSHOT [ IF NOT EXISTS ] <name>
FROM SERVICE <service_name>
VOLUME "<volume_name>"
INSTANCE <instance_id>
[ COMMENT = '<string_literal>']
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
Paramètres requis¶
name
Chaîne qui spécifie l’identificateur (c’est-à-dire le nom) de l’instantané ; elle doit être unique pour le schéma dans lequel l’instantané est créé.
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.
FROM SERVICE service_name
Spécifie le nom du service.
VOLUME "volume_name"
Spécifie le nom du volume associé au service. Les instantanés ne peuvent être pris que pour les volumes de stockage de blocs (et non pour les volumes locaux, en mémoire ou en zone de préparation).
Les noms de volume sont sensibles à la casse. Par conséquent, il convient de toujours utiliser des guillemets doubles pour coïncider avec le nom correspondant dans la spécification de service.
INSTANCE instance_id
Index de l’instance de service. L’index de l’instance de service commence à 0 et la plage est
[0, ..., MAX_INSTANCES - 1]
. Vous pouvez appeler la fonction SYSTEM$GET_SERVICE_STATUS — Obsolète pour obtenir les informations pertinentes.
Paramètres facultatifs¶
COMMENT = 'string_literal'
Spécifie un commentaire pour le service.
Par défaut : aucune valeur
TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )
Spécifie le nom de la balise et la valeur de la chaîne de la balise.
La valeur de la balise est toujours une chaîne de caractères et le nombre maximum de caractères pour la valeur de la balise est 256.
Pour plus d’informations sur la spécification des balises dans une instruction, voir Quotas de balises pour les objets et les colonnes.
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 |
Objet |
Remarques |
---|---|---|
CREATE SNAPSHOT |
Schéma |
|
OPERATE |
Service |
Le privilège USAGE relatif à la base de données et au schéma parents est exigé pour effectuer des opérations sur tout objet d’un schéma.
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.
Les instructions CREATE OR REPLACE <objet> sont atomiques. En d’autres termes, lorsqu’un objet est remplacé, l’ancien objet est supprimé et le nouvel objet est créé dans une seule transaction.
Snowflake supprime les services de tâches environ 10 minutes après la fin de leur exécution. Pour préserver le contenu d’un volume de stockage en bloc utilisé par le service de tâches, vous devez créer un instantané avant que Snowflake ne supprime la tâche. Par exemple, vous pouvez utiliser une procédure stockée pour exécuter d’abord un service de tâches et créer un instantané immédiatement après.
Un schéma ne peut pas contenir d’instantanés portant le même nom. Lors de la création d’un instantané, si un instantané portant le même nom existe déjà dans le schéma, une erreur est renvoyée et l’instantané n’est pas créé, sauf si le mot-clé facultatif
OR REPLACE
est inclus dans la commande, auquel cas Snowflake supprime l’instantané existant et crée un nouvel instantané.Important
Un instantané supprimé à l’aide de la commande DROP SNAPSHOT ou CREATE OR REPLACE SNAPSHOT ne peut pas être restauré.
Exemples¶
Si vous créez un service avec deux instances (le nombre de conteneurs n’a pas d’importance) avec un volume nommé « data », vous créerez un instantané du volume associé à la première instance à l’aide du SQL suivant :
CREATE SNAPSHOT snapshot_0
FROM SERVICE example_service
VOLUME "data"
INSTANCE 0
COMMENT='new snapshot';
Pour créer un instantané du volume associé à la deuxième instance de service, vous devez spécifier INSTANCE 1
dans le SQL précédent.