Utilisation des entrepôts

Toutes les tâches d’entrepôt peuvent être effectuées depuis l’interface Web de Snowflake ou à l’aide des commandes DDL pour entrepôt.

Dans ce chapitre :

Création d’un entrepôt

Un entrepôt peut être créé via l’interface Web ou en utilisant SQL :

Interface Web

Cliquez sur Warehouses Warehouses tab » Create.

SQL

Exécutez une commande CREATE WAREHOUSE.

Lorsque vous créez un entrepôt, vous pouvez spécifier si l’entrepôt est créé initialement à l’état « Démarré » (c’est-à-dire en cours exécution) ou « Suspendu ». Si vous choisissez « Démarré », l’entrepôt commence à consommer des crédits dès que toutes les ressources de calcul sont mises en service pour l’entrepôt.

Note

Si vous choisissez de créer un entrepôt à l’état « Démarré », l’entrepôt peut prendre un certain temps avant d’être entièrement disponible, car Snowflake met en service toutes les ressources de calcul pour l’entrepôt.

Démarrage/reprise d’un entrepôt

Un entrepôt peut être démarré à tout moment, y compris lors de la création initiale. Une fois qu’un entrepôt est créé, la reprise d’un magasin est la même chose que le démarrage d’un magasin.

Un entrepôt suspendu (c’est-à-dire inactif) peut être repris via l’interface Web ou en utilisant SQL :

Interface Web

Cliquez sur Warehouses Warehouses tab » <nom_entrepôt_suspendu> » Resume

SQL

Exécutez une commande ALTER WAREHOUSE avec le mot-clé RESUME.

Le démarrage d’un entrepôt ne prend généralement que quelques secondes. Cependant, dans de rares cas, cela peut prendre plus de temps car Snowflake met en service les ressources de calcul qui fournissent les ressources de calcul de l’entrepôt.

Les entrepôts consomment des crédits en cours d’exécution :

  • Un entrepôt commence à consommer des crédits une fois que toutes les ressources de calcul sont provisionnées pour l’entrepôt.

    • Dans de rares cas, lorsque certaines des ressources de calcul ne parviennent pas à être provisionnées, l’entrepôt consomme uniquement des crédits pour les ressources de calcul provisionnées.

    • Une fois que les ressources de calcul restantes ont été provisionnées, l’entrepôt commence à consommer des crédits pour toutes les ressources de calcul demandées.

  • Bien que le démarrage ou la reprise d’un entrepôt ne prenne souvent que quelques secondes, dans certains cas, cela peut prendre plus de temps, car Snowflake met en service les ressources de calcul qui fournissent les ressources de calcul de l’entrepôt.

  • Snowflake n’exécute pas les instructions SQL soumises à un entrepôt tant que toutes les ressources de calcul de l’entrepôt n’ont pas été mises en service avec succès, à moins que l’une des ressources ne puisse pas être mise en service :

    • Si l’une des ressources de calcul de l’entrepôt n’arrive pas à être mise en service durant le démarrage, Snowflake tente de réparer les ressources échouées.

    • Pendant le processus de réparation, l’entrepôt commence à traiter les instructions SQL une fois que 50% ou plus des ressources de calcul demandées ont été mises en service avec succès.

Les crédits sont facturés à la seconde pendant le fonctionnement de l’entrepôt, avec un minimum d’une minute chaque fois que l’entrepôt reprend. Toutefois, la consommation de crédit est indiquée par tranches de 60 minutes (c.-à-d. par heure).

Note

Un entrepôt doit être lancé/exécuté pour traiter des instructions SQL soumises dans une session. Toutefois, l’entrepôt doit également être spécifié comme l’entrepôt actuel pour la session. Pour plus d’informations, voir Utilisation d’un entrepôt dans ce chapitre.

Suspension d’un entrepôt

Un entrepôt en cours d’exécution (c-à-d. « Démarré ») peut être suspendu à tout moment, même pendant l’exécution des instructions SQL. En suspendant un entrepôt, cet entrepôt arrête de consommer des crédits une fois toutes les ressources de calcul arrêtées.

Un entrepôt peut être suspendu via l’interface Web ou en utilisant SQL :

Interface Web

Cliquez sur Warehouses Warehouses tab » <nom_entrepôt_démarré> » Suspend

SQL

Exécutez une commande ALTER WAREHOUSE avec le mot-clé SUSPEND.

Lorsque vous suspendez un entrepôt, Snowflake ferme immédiatement toutes les ressources de calcul inactives de l’entrepôt, mais permet à toutes les ressources de calcul qui exécutent des instructions de continuer jusqu’à ce que les instructions aient abouti, moment auquel les ressources sont éteintes et le statut de l’entrepôt passe à « Suspendu ». Les ressources de calcul en attente d’arrêt sont considérées comme étant en mode « repos ».

Redimensionnement d’un entrepôt

Les dimensions d’un entrepôt peuvent être augmentées ou diminuées à tout moment, y compris pendant l’exécution et le traitement d’instructions.

Un entrepôt peut être redimensionné via l’interface Web ou en utilisant SQL :

Interface Web

Cliquez sur Warehouses Warehouses tab » <nom_entrepôt> » Configure

SQL

Exécutez une commande ALTER WAREHOUSE avec SET WAREHOUSE_SIZE = ....

Le redimensionnement d’un entrepôt vers une taille plus grande est utile si les opérations effectuées par l’entrepôt pourront bénéficier de ressources de calcul supplémentaires et :

  • Améliorer les performances des grandes requêtes complexes par rapport à de grands jeux de données.

  • Améliorer les performances lors du chargement et du déchargement de grandes quantités de données.

Conséquences du redimensionnement d’un entrepôt en cours d’exécution

Le redimensionnement d’un entrepôt en cours d’exécution ajoute ou supprime des ressources de calcul à l’ensemble des ressources de calcul de l’entrepôt. Toutes les règles d’utilisation et de crédit associées au démarrage ou à la suspension d’un entrepôt s’appliquent au redimensionnement d’un entrepôt démarré, par exemple :

  • Les ressources de calcul ajoutées à un entrepôt commencent à utiliser des crédits lorsqu’elles sont mises en service. Cependant, les ressources de calcul supplémentaires ne commencent pas à exécuter des instructions tant qu’elles ne sont pas toutes mises en service, à moins que certaines des ressources n’arrivent pas à être mises en route.

  • Les ressources de calcul ne sont retirées d’un entrepôt que lorsqu’elles ne sont plus utilisées pour exécuter les instructions actuelles.

Redimensionner un entrepôt n’a aucune conséquence sur les instructions actuellement exécutées par l’entrepôt. En cas de redimensionnement vers une taille supérieure, les nouvelles ressources de calcul, une fois entièrement provisionnées, ne sont utilisées que pour exécuter les instructions qui sont déjà dans la file d’attente de l’entrepôt, ainsi que toutes les instructions futures soumises à l’entrepôt.

Astuce

Pour vérifier que les ressources de calcul supplémentaires de votre entrepôt ont été entièrement provisionnées, ajoutez le paramètre WAIT_FOR_COMPLETION à la commande ALTER WAREHOUSE. Vous pouvez également utiliser SHOW WAREHOUSES pour vérifier son state.

Effets du redimensionnement d’un entrepôt suspendu

Redimensionner un entrepôt suspendu ne met pas en marche de nouvelles ressources de calcul pour l’entrepôt. Cela demande simplement à Snowflake de mettre en service les ressources de calcul supplémentaires lors de la prochaine reprise de l’entrepôt, après quoi toutes les règles d’utilisation et de crédit associées au démarrage d’un entrepôt s’appliquent.

Utilisation d’un entrepôt

Pour exécuter une requête ou une instruction DML dans Snowflake, un entrepôt doit être en cours d’exécution et il doit être spécifié comme l’entrepôt actuel pour la session dans laquelle la requête/l’instruction est soumise.

Une session Snowflake ne peut avoir qu’un seul entrepôt actuel à la fois. L’entrepôt actuel d’une session peut être spécifié ou modifié à tout moment via la commande USE WAREHOUSE.

Une fois qu’un entrepôt en cours d’exécution a été défini comme étant l’entrepôt actuel pour une session, les requêtes et instructions DML soumises au cours de la session sont traitées par l’entrepôt. Dans les pages History History tab et Worksheets Worksheet tab de l’interface Web Snowflake, vous pouvez voir l’entrepôt utilisé pour traiter chaque requête/instruction.