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 ... ] ]
Copy

Où :

triggerDefinition ::=
    ON <threshold> PERCENT DO { SUSPEND | SUSPEND_IMMEDIATE | NOTIFY }
Copy

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 colonne name 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 :

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 colonne level 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 et start_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 dans start_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;
Copy

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;
Copy