Catégories :

Moniteur d’entrepôt et de ressources DDL

ALTER WAREHOUSE

Suspend ou reprend un entrepôt virtuel, ou annule toutes les requêtes (et autres instructions SQL) pour un entrepôt. Peut également être utilisé pour renommer ou définir/désactiver les propriétés d’un entrepôt.

Voir aussi :

CREATE WAREHOUSE , SHOW WAREHOUSES

Syntaxe

ALTER WAREHOUSE [ IF EXISTS ] [ <name> ] { SUSPEND | RESUME [ IF SUSPENDED ] }

ALTER WAREHOUSE [ IF EXISTS ] [ <name> ] ABORT ALL QUERIES

ALTER WAREHOUSE [ IF EXISTS ] <name> RENAME TO <new_name>

ALTER WAREHOUSE [ IF EXISTS ] <name> SET [ objectProperties ]
                                         [ objectParams ]

ALTER WAREHOUSE [ IF EXISTS ] <name> UNSET { <property_name> | <param_name> } [ , ... ]

Où :

objectProperties ::=
  WAREHOUSE_SIZE = XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE
  MAX_CLUSTER_COUNT = <num>
  MIN_CLUSTER_COUNT = <num>
  SCALING_POLICY = STANDARD | ECONOMY
  AUTO_SUSPEND = <num>
  AUTO_RESUME = TRUE | FALSE
  RESOURCE_MONITOR = <monitor_name>
  COMMENT = '<string_literal>'
objectParams ::=
  MAX_CONCURRENCY_LEVEL = <num>
  STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = <num>
  STATEMENT_TIMEOUT_IN_SECONDS = <num>

Propriétés/Paramètres

nom

Spécifie l’identifiant de l’entrepôt à modifier. Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus de détails, voir Exigences relatives à l’identificateur.

Note

Un identifiant d’entrepôt est requis ou facultatif selon ce qui suit :

  • Lors de la reprise ou de la suspension d’un entrepôt ou de l’annulation des requêtes d’un entrepôt, si un entrepôt est actuellement utilisé pour la session, l’identifiant peut être omis.

  • Lors du renommage d’un entrepôt ou de toute autre opération sur un entrepôt, l’identifiant doit être spécifié.

SUSPEND | RESUME [ IF SUSPENDED ]

Spécifie l’action à effectuer sur l’entrepôt :

  • SUSPEND supprime tous les nœuds de calcul d’un entrepôt et place l’entrepôt dans un état “Suspendu”.

  • RESUME [ IF SUSPENDED ] amène un entrepôt suspendu à un état “En cours” utilisable en configurant des serveurs.

    La clause IF SUSPENDED facultative spécifie si la commande ALTER WAREHOUSE se termine avec succès lors de la reprise d’un entrepôt déjà en cours d’exécution :

    • Si omise, la commande échoue et renvoie une erreur si l’entrepôt est déjà en cours d’exécution.

    • Si elle est spécifiée, la commande est exécutée avec succès, que l’entrepôt soit en cours d’exécution ou non.

ABORT ALL QUERIES

Annule toutes les requêtes en cours d’exécution ou en file d’attente sur l’entrepôt.

RENAME TO nouveau_nom

Indique un nouvel identifiant de l’entrepôt ; il doit être unique pour votre compte.

Pour plus de détails, voir Exigences relatives à l’identificateur.

SET ...

Spécifie un (ou plusieurs) paramètre(s)/propriété(s) à définir pour l’entrepôt (séparés par des espaces, des virgules ou de nouvelles lignes).

WAREHOUSE_SIZE = constante_chaîne

Spécifie la taille de l’entrepôt virtuel. La taille détermine le nombre de serveurs dans chaque cluster de l’entrepôt et, par conséquent, le nombre de crédits consommés pendant le fonctionnement de l’entrepôt.

Valeurs valides
  • XSMALL , 'X-SMALL'

  • SMALL

  • MEDIUM

  • LARGE

  • XLARGE , 'X-LARGE'

  • XXLARGE , X2LARGE , '2X-LARGE'

  • XXXLARGE , X3LARGE , '3X-LARGE'

  • X4LARGE , '4X-LARGE'

Par défaut

XLARGE

Note

Pour utiliser une valeur contenant un trait d’union (par exemple '2X-LARGE'), vous devez la mettre entre guillemets simples, comme indiqué.

MAX_CLUSTER_COUNT = nb

Spécifie le nombre maximum de clusters de serveurs pour l’entrepôt.

Valeurs valides

1 jusqu’à 10

Notez que spécifier une valeur supérieure à 1 indique que l’entrepôt est un entrepôt multi-clusters ; cependant, la valeur ne peut être définie que sur une valeur supérieure dans Snowflake Enterprise Edition (ou supérieure).

Pour plus d’informations, voir Entrepôts multi-clusters.

Par défaut

1 (entrepôt à un seul cluster)

Astuce

Pour Snowflake Enterprise Edition (ou une version supérieure), nous recommandons de toujours régler la valeur supérieure à 1 pour aider à maintenir la haute disponibilité et la performance optimale de l’entrepôt. Cela permet également d’assurer la continuité dans l’éventualité peu probable d’une défaillance de cluster.

MIN_CLUSTER_COUNT = nb

Spécifie le nombre minimum de clusters de serveurs pour l’entrepôt (s’applique uniquement aux entrepôts à plusieurs clusters).

Valeurs valides

1 jusqu’à 10

Notez, cependant, que MIN_CLUSTER_COUNT doit être égal ou inférieur à MAX_CLUSTER_COUNT :

  • Si les deux paramètres sont égaux, l’entrepôt fonctionne en mode maximisé.

  • Si MIN_CLUSTER_COUNT est inférieur à MAX_CLUSTER_COUNT, l’entrepôt fonctionne en mode Mise à l’échelle automatique.

Pour plus d’informations, voir Entrepôts multi-clusters.

Par défaut

1

SCALING_POLICY = STANDARD | ECONOMY

Paramètre d’objet qui spécifie la politique de démarrage et d’arrêt automatiques des clusters dans un entrepôt multi-clusters fonctionnant en mode « Mise à l’échelle automatique ».

Pour une description détaillée de ce paramètre, voir Définition de la politique de mise à l’échelle d’un entrepôt multi-clusters.

AUTO_SUSPEND = nb | NULL

Indique le nombre de secondes d’inactivité après lesquelles un entrepôt est automatiquement suspendu.

Valeurs valides

Tout nombre supérieur à 59 ou NULL :

  • Le réglage d’une valeur inférieure à 59 n’a aucun effet, car le temps minimum qu’un entrepôt peut passer avant qu’il ne soit suspendu est de 1 minute.

  • La définition d’une valeur NULL signifie que l’entrepôt n’est jamais suspendu.

Par défaut

600 (l’entrepôt est automatiquement suspendu après 10 minutes d’inactivité)

Important

Définir la valeur AUTO_SUSPEND sur NULL est non recommandé, à moins que vos charges de travail de requête nécessitent un entrepôt en cours d’exécution. Notez que cela peut entraîner une consommation importante de crédit (et des charges correspondantes), en particulier pour les grands entrepôts.

Pour plus de détails, voir Remarques sur les entrepôts virtuels.

AUTO_RESUME = TRUE | FALSE

Indique s’il faut reprendre automatiquement un entrepôt lorsqu’une instruction SQL lui est soumise (par exemple, une requête). Si FALSE, l’entrepôt ne redémarre que lorsqu’il est explicitement repris en utilisant ALTER WAREHOUSE ou via l’interface Web de Snowflake.

Valeurs valides
  • TRUE: l’entrepôt reprend lorsqu’une nouvelle requête est soumise.

  • FALSE: l’entrepôt ne reprend que lorsqu’il est explicitement repris en utilisant ALTER WAREHOUSE ou via l’interface Web de Snowflake.

Par défaut

TRUE (l’entrepôt reprend automatiquement lorsqu’une instruction SQL lui est soumise)

INITIALLY_SUSPENDED = TRUE | FALSE

Non applicable lors de la modification d’un entrepôt

RESOURCE MONITOR = nom_rm

Indique l’identificateur d’un moniteur de ressources explicitement affecté à l’entrepôt. Lorsqu’un moniteur de ressources est explicitement affecté à un entrepôt, il contrôle les crédits mensuels utilisés par l’entrepôt (et tous les autres entrepôts auxquels le moniteur est affecté).

Valeurs valides

Tout moniteur de ressources existant.

Pour plus de détails, voir Travailler avec des moniteurs de ressources.

Par défaut

Aucune valeur (aucun moniteur de ressources affecté à l’entrepôt)

Astuce

Pour afficher tous les moniteurs de ressources et leurs identificateurs, utilisez la commande SHOW RESOURCE MONITORS.

COMMENT = 'litéral_chaine'

Ajoute un commentaire ou remplace un commentaire existant pour l’entrepôt.

MAX_CONCURRENCY_LEVEL = nb

Paramètre d’objet qui spécifie le niveau de simultanéité des instructions SQL (requêtes et DML) exécutées par un cluster d’entrepôts. Lorsque le niveau est atteint :

  • Pour un entrepôt à un seul cluster ou un entrepôt à plusieurs clusters (en mode maximisé), des instructions supplémentaires sont mises en file d’attente jusqu’à ce que des ressources soient disponibles.

  • Pour un entrepôt multi-clusters (en mode « Mise à l’échelle automatique »), des clusters supplémentaires sont démarrés.

Ce paramètre peut être utilisé conjointement avec le paramètre STATEMENT_QUEUED_TIMEOUT_IN_SECONDS pour s’assurer qu’un entrepôt n’est jamais en attente.

Pour une description détaillée de ce paramètre, voir MAX_CONCURRENCY_LEVEL.

STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = nb

Paramètre objet qui spécifie le temps, en secondes, pendant lequel une instruction SQL (requête, DDL, DML, etc.) peut être mise en file d’attente sur un entrepôt avant qu’elle soit annulée par le système.

Ce paramètre peut être utilisé conjointement avec le paramètre MAX_CONCURRENCY_LEVEL pour s’assurer qu’un entrepôt n’est jamais en attente.

Pour une description détaillée de ce paramètre, voir STATEMENT_QUEUED_TIMEOUT_IN_SECONDS.

STATEMENT_TIMEOUT_IN_SECONDS = nb

Paramètre objet qui spécifie le temps, en secondes, au bout duquel une instruction SQL en cours d’exécution (requête, DDL, DML, etc.) est annulée par le système.

Pour une description détaillée de ce paramètre, voir STATEMENT_TIMEOUT_IN_SECONDS.

UNSET ...

Spécifie une (ou plusieurs) propriété(s) et/ou paramètres à désactiver pour la base de données, qui les réinitialise aux valeurs par défaut :

  • nom_propriété

  • nom_param

Vous pouvez réinitialiser plusieurs propriétés/paramètres avec une seule instruction ALTER ; cependant, chaque propriété/paramètre doit être séparé(e) par une virgule. De plus, lorsque vous réinitialisez une propriété/un paramètre, vous ne spécifiez que le nom ; aucune valeur n’est requise.

Note

UNSET peut être utilisé pour annuler toutes les propriétés et tous les paramètres d’un entrepôt, excepté WAREHOUSE_SIZE, qui ne peut être modifié qu’avec SET.

Notes sur l’utilisation

  • Un entrepôt n’a pas besoin d’être suspendu pour définir ou modifier ses propriétés, y compris sa taille.

  • Lorsque la taille de l’entrepôt est modifiée, la modification n’a aucune incidence sur les instructions, y compris les requêtes, qui sont en cours d’exécution. Une fois les instructions terminées, la nouvelle taille est utilisée pour toutes les instructions suivantes.

  • La suspension d’un entrepôt n’annule pas les requêtes en cours de traitement par l’entrepôt au moment où il est suspendu. Au lieu de cela, l’entrepôt termine les requêtes, puis éteint les serveurs utilisés pour les traiter. Pendant cette période, l’entrepôt et ses serveurs sont en mode suspension. Lorsque tous les serveurs sont éteints, le statut de l’entrepôt devient « Suspendu ».

Exemples

Renommer l’entrepôt wh1 en wh2 :

ALTER WAREHOUSE IF EXISTS wh1 RENAME TO wh2;

Reprenez un entrepôt nommé my_wh puis modifiez la taille de l’entrepôt pendant qu’il est en cours d’exécution :

ALTER WAREHOUSE my_wh RESUME;

ALTER WAREHOUSE my_wh SET warehouse_size=MEDIUM;