CREATE RESOURCE MONITOR¶
Crée un nouveau moniteur de ressources. Cette commande ne peut être exécutée que par les administrateurs de compte.
- Voir aussi :
ALTER RESOURCE MONITOR, DROP RESOURCE MONITOR, SHOW RESOURCE MONITORS, ALTER WAREHOUSE, ALTER ACCOUNT
Syntaxe¶
CREATE [ OR REPLACE ] RESOURCE MONITOR [ IF NOT EXISTS ] <name> WITH
[ CREDIT_QUOTA = <number> ]
[ FREQUENCY = { MONTHLY | DAILY | WEEKLY | YEARLY | NEVER } ]
[ START_TIMESTAMP = { <timestamp> | IMMEDIATELY } ]
[ END_TIMESTAMP = <timestamp> ]
[ NOTIFY_USERS = ( <user_name> [ , <user_name> , ... ] ) ]
[ TRIGGERS triggerDefinition [ triggerDefinition ... ] ]
Où :
triggerDefinition ::= ON <threshold> PERCENT DO { SUSPEND | SUSPEND_IMMEDIATE | NOTIFY }
Paramètres requis¶
name
Identificateur du moniteur de ressources ; doit être unique pour votre compte.
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.
"My object"
). Les identificateurs entre guillemets doubles sont également sensibles à la casse.Pour plus de détails, voir Exigences relatives à l’identificateur.
Paramètres facultatifs¶
CREDIT_QUOTA = num
Nombre de crédits alloués au moniteur de ressources par intervalle de fréquence. Lorsque l’utilisation totale de tous les entrepôts affectés au moniteur atteint ce nombre pour l’intervalle de fréquence en cours, le moniteur de ressources est considéré comme étant à 100 % du quota.
Si aucune valeur n’est spécifiée pour un moniteur de ressources, le moniteur n’a pas de quota et n’atteindra jamais 100 % d’utilisation dans l’intervalle spécifié.
Par défaut : aucune valeur (c.-à-d. aucun quota de crédit)
FREQUENCY = MONTHLY | DAILY | WEEKLY | YEARLY | NEVER
Intervalle de fréquence auquel l’utilisation du crédit est réinitialisée à
0
.Si vous définissez une fréquence pour un moniteur de ressources, vous devez également définir
START_TIMESTAMP
.Si vous spécifiez
NEVER
pour la fréquence, l’utilisation du crédit pour l’entrepôt ne sera pas réinitialisée.Par défaut : pas de valeur (comportement hérité, par lequel le quota de crédit est réinitialisé au début de chaque mois civil)
START_TIMESTAMP = timestamp | IMMEDIATELY
Date et heure auxquelles le moniteur de ressources commence à surveiller l’utilisation des crédits pour les entrepôts attribués.
Si vous définissez un horodatage pour un moniteur de ressources, vous devez également définir
FREQUENCY
.Si vous spécifiez
IMMEDIATELY
pour l’horodatage de début, l’horodatage actuel est utilisé.Si vous spécifiez une date sans heure, l’heure actuelle est utilisée.
Si vous définissez une heure sans spécifier de fuseau horaire, UTC est utilisé comme fuseau horaire par défaut.
Par défaut : aucune valeur (comportement hérité, le moniteur de ressources commençant immédiatement à surveiller les entrepôts)
END_TIMESTAMP = timestamp
Date et heure auxquelles le moniteur de ressources suspend les entrepôts attribués.
Par défaut : aucune valeur (c.-à-d. aucune date de suspension de l’entrepôt)
NOTIFY_USERS = ( user_name [ , user_name , ... ] )
Spécifie la liste des utilisateurs qui doivent recevoir des notifications par e-mail sur les moniteurs de ressources. Si l’identificateur de l’utilisateur comprend des espaces ou des caractères spéciaux, ou s’il est sensible à la casse, il doit être placé entre guillemets (par exemple, « Mary Smith »). Voir Exigences relatives à l’identificateur pour plus de détails.
L’identificateur de l’utilisateur,
user_name
, est la valeur de la colonnename
provenant de la sortie de SHOW USERS.Chaque utilisateur répertorié doit avoir une adresse e-mail vérifiée. Pour des instructions sur la vérification des adresses e-mail dans l’interface Web, voir :
Pour l”Classic Console : Vérification de votre adresse e-mail dans la console classique.
Pour Snowsight : Vérification de votre adresse e-mail.
Les notifications par e-mail pour les utilisateurs non administrateurs ne remplacent pas les notifications par e-mail pour les administrateurs. Tous les administrateurs de comptes qui ont activé les notifications par e-mail continueront à recevoir des notifications par e-mail.
Note
Les limitations suivantes s’appliquent aux utilisateurs non-administrateurs :
Les utilisateurs non-administrateurs reçoivent des notifications par e-mail, mais ne peuvent pas voir les notifications dans l”Classic Console.
Les utilisateurs non-administrateurs ne peuvent pas créer de moniteurs de ressources.
Les notifications sont limitées aux moniteurs de ressources des entrepôts individuels ; les utilisateurs non-administrateurs ne peuvent pas recevoir de notifications concernant les moniteurs de ressources au niveau du compte.
Les utilisateurs non-administrateurs ne peuvent pas recevoir des notifications des moniteurs de ressources au niveau du compte.
Les utilisateurs non administrateurs ne peuvent pas désigner d’autres utilisateurs à notifier.
TRIGGERS ...
(aka actions)Spécifie un ou plusieurs déclencheurs pour le moniteur de ressources. Chaque définition de déclenchement est constituée des éléments suivants :
ON threshold PERCENT
Valeur numérique exprimée en pourcentage du quota de crédit pour le moniteur de ressources ; les valeurs supérieures à
100
sont acceptées. Une fois que l’utilisation atteint ce seuil pour l’intervalle de fréquence en cours, le déclencheur se déclenche.DO SUSPEND | SUSPEND_IMMEDIATE | NOTIFY
Spécifie l’action effectuée par le déclencheur lorsque le seuil est atteint :
SUSPEND
: suspendre tous les entrepôts attribués tout en permettant aux requêtes en cours d’exécution de se terminer. Aucune nouvelle requête ne peut être exécutée par les entrepôts tant que le quota de crédit du moniteur de ressources n’a pas été augmenté. En outre, cette action envoie une notification à tous les utilisateurs qui ont activé les notifications pour eux-mêmes.SUSPEND_IMMEDIATE
: suspendre immédiatement tous les entrepôts attribués et annuler toutes les requêtes ou instructions en cours d’exécution en utilisant les entrepôts. En outre, cette action envoie une notification à tous les utilisateurs qui ont activé les notifications pour eux-mêmes.NOTIFY
: envoyer une notification (à tous les administrateurs de comptes dont les notifications sont activées), mais ne prendre aucune autre mesure.
Par défaut : aucune valeur (c’est-à-dire que le moniteur de ressources n’effectue aucune action)
Notes sur l’utilisation¶
Les déclencheurs sont facultatifs ; cependant, au moins un déclencheur doit être ajouté à un moniteur de ressources avant qu’il ne puisse effectuer une action.
Chaque moniteur de ressources accepte jusqu’à un maximum de 5 déclencheurs d’action
NOTIFY
.Après la création d’un moniteur de ressources, celui-ci doit être affecté à un entrepôt ou à un compte avant de pouvoir exécuter toute action de suivi :
Pour affecter un moniteur de ressources à un entrepôt, utiliser ALTER WAREHOUSE (ou CREATE WAREHOUSE si vous créez l’entrepôt).
Pour affecter un moniteur de ressources au niveau du compte, utilisez ALTER ACCOUNT. Le paramètre NOTIFY_USERS doit être nul.
Pour afficher tous les moniteurs de ressources créés dans votre compte et leur affectation, utilisez la commande SHOW RESOURCE MONITORS. La sortie de la commande affiche
NULL
dans la colonnelevel
pour les moniteurs de ressources qui ne sont pas affectés au compte ni à aucun entrepôt et, par conséquent, ne surveillent aucune utilisation du crédit.Si les paramètres
frequency
etstart_timestamp
sont définis sur un moniteur de ressources, le jour de la réinitialisation de l’utilisation du crédit est calculé en fonction de ces paramètres. L’heure à laquelle l’utilisation du crédit revient à0
est 12:00 AM UTC indépendamment de l’heure spécifiée dansstart_timestamp
.Si vous spécifiez un
end_timestamp
, la surveillance se termine à la date et à l’heure spécifiées et tous les entrepôts affectés sont suspendus à cette date et à cette heure, même si le quota de crédit n’a pas été atteint.Lorsque cela se produit, une notification est envoyée indiquant que le moniteur de ressources a atteint un pourcentage de son quota et a déclenché une action de suspension immédiate. Le pourcentage du quota reflète le nombre de crédits utilisés dans l’intervalle actuel jusqu’à la date de fin et peut ne pas correspondre au seuil que vous avez spécifié.
Si la liste de notification contient des utilisateurs qui ne sont pas administrateurs, les remarques suivantes s’appliquent :
Si un utilisateur n’a pas d’adresse e-mail vérifiée, l’instruction SQL échoue.
Si un utilisateur figurant dans la liste de notification modifie son adresse e-mail et ne vérifie pas la nouvelle adresse e-mail, la notification échoue silencieusement.
La liste des notifications est limitée à un nombre maximum de 5 utilisateurs non-administrateurs.
Les administrateurs de compte peuvent voir la liste des notifications des utilisateurs non-administrateurs dans la sortie de SHOW RESOURCE MONITORS dans la colonne
notify_user
.
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.
Important
Pour recevoir les notifications générées par les moniteurs de ressources, les administrateurs de compte et les utilisateurs non-administrateurs de la liste de notifications doivent explicitement activer les notifications dans leurs préférences. De plus, pour recevoir des notifications par e-mail, les utilisateurs doivent avoir une adresse e-mail vérifiée dans leurs préférences. Les préférences ne peuvent être définies que dans l’interface Web de Snowflake. Pour plus d’informations, voir Activation de la réception de notifications.
Exemples¶
Créer un moniteur de ressources nommé limiter
avec trois déclencheurs :
CREATE OR REPLACE RESOURCE MONITOR limiter WITH CREDIT_QUOTA = 5000 TRIGGERS ON 75 PERCENT DO NOTIFY ON 100 PERCENT DO SUSPEND ON 110 PERCENT DO SUSPEND_IMMEDIATE;
Créez un moniteur de ressources pour envoyer des notifications à trois utilisateurs lorsque 75 % du quota de crédit est atteint. Dans cet exemple, le user_name
de deux des utilisateurs comprend un espace et doit être placé entre guillemets :
CREATE OR REPLACE RESOURCE MONITOR limiter WITH CREDIT_QUOTA = 5000 NOTIFY_USERS = (JDOE, "Jane Smith", "John Doe") TRIGGERS ON 75 PERCENT DO NOTIFY ON 100 PERCENT DO SUSPEND ON 110 PERCENT DO SUSPEND_IMMEDIATE;