Catégories :

Moniteur d’entrepôt et de ressources DDL

CREATE RESOURCE MONITOR

Crée un nouveau moniteur de ressources. Cette commande ne peut être exécutée que par les administrateurs de compte. Pour plus d’informations sur les moniteurs de ressources, voir Travailler avec des moniteurs de ressources.

Voir aussi :

ALTER RESOURCE MONITOR , DROP RESOURCE MONITOR , SHOW RESOURCE MONITORS , ALTER WAREHOUSE , ALTER ACCOUNT

Syntaxe

CREATE [ OR REPLACE ] RESOURCE MONITOR <name> WITH
                      [ CREDIT_QUOTA = <number> ]
                      [ FREQUENCY = { MONTHLY | DAILY | WEEKLY | YEARLY | NEVER } ]
                      [ START_TIMESTAMP = { <timestamp> | IMMEDIATELY } ]
                      [ END_TIMESTAMP = <timestamp> ]
                      [ TRIGGERS triggerDefinition [ triggerDefinition ... ] ]

Où :

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

Paramètres requis

nom

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 = nb

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 = horodatage | 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.

Par défaut : Aucune valeur (comportement hérité, le moniteur de ressources commençant immédiatement à surveiller les entrepôts)

END_TIMESTAMP = horodatage

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)

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 seuil 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: Envoyez une alerte (à tous les utilisateurs qui ont activé les notifications pour eux-mêmes), mais ne prenez 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.

  • 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 de crédit.

Important

Pour recevoir les notifications générées par les moniteurs de ressources, les administrateurs de compte doivent explicitement activer les notifications dans leurs préférences. De plus, pour recevoir des notifications par e-mail, les administrateurs de compte 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;