CREATE TAG¶
Crée une nouvelle balise ou remplace une balise existante dans le système.
Cette commande prend en charge les variantes suivantes :
CREATE OR ALTER TAG : Crée une balise si elle n’existe pas ou modifie une balise existante.
- Voir aussi :
Syntaxe¶
CREATE [ OR REPLACE ] TAG [ IF NOT EXISTS ] <name>
[ ALLOWED_VALUES '<val_1>' [ , '<val_2>' [ , ... ] ] ]
[ PROPAGATE = { ON_DEPENDENCY_AND_DATA_MOVEMENT | ON_DEPENDENCY | ON_DATA_MOVEMENT }
[ ON_CONFLICT = { '<string>' | ALLOWED_VALUES_SEQUENCE } ] ]
[ COMMENT = '<string_literal>' ]
Important
Le paramètre ALLOWED_VALUES
doit toujours être défini avant tous les autres paramètres, tels que COMMENT
, pour que ALLOWED_VALUES
fonctionne.
Syntaxe des variantes¶
CREATE OR ALTER TAG¶
Crée une nouvelle balise si elle n’existe pas encore, ou transforme une balise existante en balise définie dans l’instruction. Une instruction CREATE OR ALTER TAG suit les règles syntaxiques d’une instruction CREATE TAG et présente les mêmes limitations qu’une instruction ALTER TAG.
Les altérations prises en charge comprennent les modifications des propriétés ALLOWED_VALUES et COMMENT.
Pour plus d’informations, voir Notes sur l’utilisation de CREATE OR ALTER TAG.
CREATE OR ALTER TAG <name>
[ ALLOWED_VALUES '<val_1>' [ , '<val_2>' [ , ... ] ] ]
[ COMMENT = '<string_literal>' ]
Paramètres requis¶
name
Identificateur pour la balise. Affectez la valeur de la chaîne de balises à un objet en utilisant une instruction CREATE <objet> ou une instruction ALTER <objet>.
La valeur de 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 (p. ex. « Mon objet »). Les identificateurs entre guillemets doubles sont également sensibles à la casse.
Pour plus de détails, voir Exigences relatives à l’identificateur.
Paramètres facultatifs¶
ALLOWED_VALUES 'val_1' [ , 'val_2' [ , ... ] ]
Spécifie une liste, séparée par des virgules, des valeurs de chaîne possibles qui peuvent être affectées à la balise lorsque celle-ci est définie sur un objet à l’aide de la commande CREATE <objet> ou ALTER <objet> correspondante.
Pour fonctionner, il doit précéder tous les autres paramètres.
Le nombre maximal de valeurs de balise dans cette liste est de 300.
Si une balise est configurée pour se propager automatiquement aux objets cibles, l’ordre des valeurs dans la liste autorisée peut affecter la manière dont les conflits sont résolus. Pour plus d’informations, voir Conflits liés à la propagation des balises.
Valeur par défaut : NULL (toutes les valeurs de chaîne sont autorisées, y compris une valeur de chaîne vide [c’est-à-dire
' '
]).PROPAGATE = { ON_DEPENDENCY_AND_DATA_MOVEMENT | ON_DEPENDENCY | ON_DATA_MOVEMENT }
Spécifie que la balise sera automatiquement propagée des objets sources aux objets cibles. Vous pouvez configurer la balise pour qu’elle se propage en cas de dépendance de l’objet, de mouvement de données ou des deux.
ON_DEPENDENCY_AND_DATA_MOVEMENT
Propage la balise en cas de dépendance d’un objet ou de mouvement de données.
ON_DEPENDENCY
Propage la balise pour les dépendances d’objets, mais pas pour les mouvements de données.
ON_DATA_MOVEMENT
Propage la balise en cas de mouvement de données, mais pas pour les dépendances d’objets.
ON_CONFLICT = { 'string' | ALLOWED_VALUES_SEQUENCE }
Spécifie ce qui se passe en cas de conflit entre les valeurs des balises propagées.
Si vous ne définissez pas ce paramètre et qu’il y a un conflit, la valeur de la balise est définie sur la chaîne
CONFLICT
.Les valeurs possibles sont les suivantes :
'string'
En cas de conflit, la valeur de la balise est définie sur la chaîne spécifiée.
ALLOWED_VALUES_SEQUENCE
L’ordre des valeurs dans la propriété ALLOWED_VALUES de la balise détermine la valeur utilisée en cas de conflit. Par exemple, supposons que vous avez créé une balise avec l’instruction suivante :
CREATE TAG my_tag ALLOWED_VALUES 'blue', 'red' PROPAGATE = ON_DEPENDENCY ON_CONFLICT = ALLOWED_VALUES_SEQUENCE;
En cas de conflit, la valeur de
my_tag
serablue
car elle précèdered
dans la liste des valeurs autorisées.
Par défaut : définissez la valeur de la balise sur
CONFLICT
.COMMENT = 'string_literal'
Spécifie un commentaire pour la balise.
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 |
Objet |
Remarques |
---|---|---|
CREATE TAG |
Schéma |
|
OWNERSHIP |
Balise |
|
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.
Pour plus de détails sur la DDL de balise et les privilèges, voir Privilèges de contrôle d’accès.
Notes sur l’utilisation de CREATE OR ALTER TAG¶
Toutes les limitations de la commande ALTER TAG s’appliquent.
La définition ou l’annulation de la définition d’une politique de masquage n’est pas prise en charge.
Le paramètre
ALLOWED_VALUES
doit toujours être défini avant tous les autres paramètres, tels queCOMMENT
, pour queALLOWED_VALUES
fonctionne.
Notes sur l’utilisation¶
Snowflake limite le nombre de balises dans un compte à 10 000.
Pour plus d’informations sur la manière dont les balises peuvent être associées aux objets Snowflake, voir Introduction au balisage des objets.
Pour plus d’informations sur l’autorisation de la balise DDL, voir les privilèges requis.
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 clauses
OR REPLACE
etIF NOT EXISTS
s’excluent mutuellement. Elles ne peuvent pas être utilisées dans la même instruction.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.
Exemples¶
Créer une balise avec la clé cost_center
.
CREATE TAG cost_center COMMENT = 'cost_center tag';
Mettez à jour cost_center
pour inclure les nouvelles valeurs autorisées et supprimez le commentaire :
CREATE OR ALTER TAG cost_center ALLOWED_VALUES 'finance', 'engineering', 'sales';