CREATE WAREHOUSE¶
Crée un nouvel entrepôt virtuel dans le système.
La création initiale d’un entrepôt virtuel pourrait prendre un certain temps pour approvisionner les ressources de calcul, à moins que l’entrepôt soit créé initialement dans un état SUSPENDED
.
Cette commande prend en charge les variantes suivantes :
CREATE OR ALTER WAREHOUSE : crée un nouvel entrepôt s’il n’existe pas ou modifie un entrepôt existant.
- Voir aussi :
ALTER WAREHOUSE , DESCRIBE WAREHOUSE , DROP WAREHOUSE , SHOW WAREHOUSES
Syntaxe¶
CREATE [ OR REPLACE ] WAREHOUSE [ IF NOT EXISTS ] <name>
[ [ WITH ] objectProperties ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ objectParams ]
Où :
objectProperties ::= WAREHOUSE_TYPE = { STANDARD | 'SNOWPARK-OPTIMIZED' } WAREHOUSE_SIZE = { XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE | X5LARGE | X6LARGE } RESOURCE_CONSTRAINT = { MEMORY_1X | MEMORY_1X_x86 | MEMORY_16X | MEMORY_16X_x86 | MEMORY_64X | MEMORY_64X_x86 } MAX_CLUSTER_COUNT = <num> MIN_CLUSTER_COUNT = <num> SCALING_POLICY = { STANDARD | ECONOMY } AUTO_SUSPEND = { <num> | NULL } AUTO_RESUME = { TRUE | FALSE } INITIALLY_SUSPENDED = { TRUE | FALSE } RESOURCE_MONITOR = <monitor_name> COMMENT = '<string_literal>' ENABLE_QUERY_ACCELERATION = { TRUE | FALSE } QUERY_ACCELERATION_MAX_SCALE_FACTOR = <num>objectParams ::= MAX_CONCURRENCY_LEVEL = <num> STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = <num> STATEMENT_TIMEOUT_IN_SECONDS = <num>
Syntaxe des variantes¶
CREATE OR ALTER WAREHOUSE¶
Crée un nouvel entrepôt s’il n’existe pas encore, ou modifie un entrepôt existant en entrepôt défini dans l’instruction. Une instruction CREATE OR ALTER WAREHOUSE suit les règles syntaxiques d’une instruction CREATE WAREHOUSE et présente les mêmes limitations qu’une instruction ALTER WAREHOUSE.
Les modifications suivantes sont prises en charge lors de la modification d’un entrepôt :
Modification des propriétés et des paramètres de l’entrepôt. Par exemple, WAREHOUSE_TYPE, AUTO_RESUME ou MAX_CLUSTER_COUNT.
Pour plus d’informations, voir Notes sur l’utilisation de CREATE OR ALTER WAREHOUSE.
CREATE OR ALTER WAREHOUSE <name>
[ [ WITH ] objectProperties ]
[ objectParams ]
objectProperties ::=
WAREHOUSE_TYPE = { STANDARD | 'SNOWPARK-OPTIMIZED' }
WAREHOUSE_SIZE = { XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE | X5LARGE | X6LARGE }
MAX_CLUSTER_COUNT = <num>
MIN_CLUSTER_COUNT = <num>
SCALING_POLICY = { STANDARD | ECONOMY }
AUTO_SUSPEND = { <num> | NULL }
AUTO_RESUME = { TRUE | FALSE }
INITIALLY_SUSPENDED = { TRUE | FALSE }
RESOURCE_MONITOR = <monitor_name>
COMMENT = '<string_literal>'
ENABLE_QUERY_ACCELERATION = { TRUE | FALSE }
QUERY_ACCELERATION_MAX_SCALE_FACTOR = <num>
objectParams ::=
MAX_CONCURRENCY_LEVEL = <num>
STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = <num>
STATEMENT_TIMEOUT_IN_SECONDS = <num>
Paramètres requis¶
name
Identificateur de l’entrepôt virtuel ; doit être unique pour votre compte.
De plus, 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 (par exemple,
"My object"
). Les identificateurs entre guillemets doubles sont également sensibles à la casse.Pour plus de détails, voir Exigences relatives à l’identificateur.
Propriétés facultatives (objectProperties
)¶
WAREHOUSE_TYPE = { STANDARD | 'SNOWPARK-OPTIMIZED' }
Spécifie le type d’entrepôt.
- Valeurs valides:
STANDARD
,'STANDARD'
'SNOWPARK-OPTIMIZED'
- Par défaut:
STANDARD
Note
Pour utiliser une valeur contenant un trait d’union (
'SNOWPARK-OPTIMIZED'
), vous devez la mettre entre guillemets simples, comme indiqué.WAREHOUSE_SIZE = { XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE | X5LARGE | X6LARGE }
Spécifie la taille de l’entrepôt virtuel. La taille détermine le nombre de ressources de calcul 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:
Valeurs prises en charge
Synonymes
XSMALL
'X-SMALL'
SMALL
MEDIUM
LARGE
XLARGE
'X-LARGE'
XXLARGE
X2LARGE
,'2X-LARGE'
XXXLARGE
X3LARGE
,'3X-LARGE'
X4LARGE
'4X-LARGE'
X5LARGE
'5X-LARGE'
X6LARGE
'6X-LARGE'
- Par défaut:
XSMALL
Note
Les tailles X5LARGE et X6LARGE ne prennent pas en charge les entrepôts optimisés pour Snowpark. La taille par défaut des entrepôts optimisés pour Snowpark est MEDIUM.
Pour utiliser une valeur contenant un trait d’union (par exemple,
'2X-LARGE'
), vous devez la mettre entre guillemets simples, comme indiqué.Les entrepôts de tailles supérieures 5X-Large et 6X-Large sont généralement disponibles dans toutes les régions Amazon Web Services (AWS) et Microsoft Azure.
Des entrepôts de tailles supérieures sont disponibles en avant-première dans les régions US (nécessite la prise en charge FIPS sur ARM).
RESOURCE_CONSTRAINT = { MEMORY_1X | MEMORY_1X_x86 | MEMORY_16X | MEMORY_16X_x86 | MEMORY_64X | MEMORY_64X_x86 }
Spécifie la mémoire et l’architecture CPU pour Entrepôts optimisés pour Snowpark. La table suivante inclut les valeurs valides pour la propriété, la mémoire disponible, l’architecture CPU et la taille minimale de l’entrepôt requise pour le paramètre
resource_constraint
:- Valeurs valides:
Valeur
Mémoire (jusqu’à)
Architecture CPU
Taille minimale d’entrepôt requise
Taille maximale d’entrepôt
MEMORY_1X
16 GB
Standard
XSMALL
X4LARGE
MEMORY_1X_x86
16 GB
x86
XSMALL
X4LARGE
MEMORY_16X
256 GB
Standard
MEDIUM
X6LARGE
MEMORY_16X_x86
256 GB
x86
MEDIUM
X4LARGE
MEMORY_64X
1 TB
Standard
LARGE
X4LARGE
MEMORY_64X_x86
1 TB
x86
LARGE
X4LARGE
- Valeur par défaut:
MEMORY_16X
Cette propriété ne peut être définie que si le
WAREHOUSE_TYPE
est'SNOWPARK-OPTIMIZED'
.MAX_CLUSTER_COUNT = num
Spécifie le nombre maximum de clusters pour un entrepôt multi-clusters. Pour un entrepôt à un seul cluster, cette valeur est toujours
1
.- Valeurs valides:
De
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 multi-clusters. Cela permet également d’assurer la continuité dans l’éventualité peu probable d’une défaillance de cluster.MIN_CLUSTER_COUNT = num
Spécifie le nombre minimum de clusters pour un entrepôt multi-clusters (s’applique uniquement aux entrepôts multi-clusters).
- Valeurs valides:
De
1
jusqu’à10
Cependant, notez 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 }
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 ».
- Valeurs valides:
STANDARD
: minimise les files d’attente en démarrant des clusters.ECONOMY
: conserve les crédits en préférant garder les clusters en cours d’exécution entièrement chargés.
Pour une description plus détaillée, voir Définition de la politique de mise à l’échelle d’un entrepôt multi-clusters .
- Par défaut:
STANDARD
AUTO_SUSPEND = { num | NULL }
Indique le nombre de secondes d’inactivité après lesquelles un entrepôt est automatiquement suspendu.
- Valeurs valides:
Tout nombre entier
0
ou supérieur, ouNULL
:Le processus en arrière-plan qui suspend un entrepôt s’exécute environ toutes les 30 secondes. Par conséquent, le paramètre de cette propriété n’est pas destiné à permettre un contrôle précis de la suspension d’entrepôt.
La définition d’une valeur inférieure à 30 ou d’une valeur qui n’est pas un multiple de 30 est autorisée, mais il se peut qu’elle n’entraîne pas le comportement prévu en raison de l’intervalle d’interrogation de 30 secondes pour la suspension d’entrepôt.
La définition d’une valeur
0
ouNULL
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
sur0
ouNULL
n’est pas recommandé à moins que vos charges de travail de requête nécessitent un entrepôt en cours d’exécution continue. Notez que cela peut entraîner une consommation importante de crédit (et des frais correspondants), en particulier pour les grands entrepôts.AUTO_RESUME = { TRUE | FALSE }
Indique s’il faut reprendre automatiquement un entrepôt lorsqu’une instruction (par exemple, une requête) SQL lui est soumise.
- 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 }
Indique si l’entrepôt est initialement créé à l’état « Suspendu ».
- Valeurs valides:
TRUE
: l’entrepôt est créé, mais suspendu.FALSE
: l’entrepôt commence à être exécuté après sa création.
- Par défaut:
FALSE
RESOURCE_MONITOR = monitor_name
Spécifie le nom 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 Utilisation de 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 = 'string_literal'
Spécifie un commentaire pour l’entrepôt.
TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )
Spécifie le nom de la balise et la valeur de la chaîne de la balise.
La valeur de la balise est toujours une chaîne de caractères et le nombre maximum de caractères pour la valeur de la balise est 256.
Pour plus d’informations sur la spécification des balises dans une instruction, voir Quotas de balises pour les objets et les colonnes.
Propriétés de Query Acceleration¶
Cette fonctionnalité nécessite Enterprise Edition (ou une édition supérieure). Pour en savoir plus sur la mise à niveau, veuillez contacter le support Snowflake.
ENABLE_QUERY_ACCELERATION = { TRUE | FALSE }
Indique s’il faut activer le service d’accélération des requêtes pour les requêtes qui dépendent de cet entrepôt pour les ressources de calcul.
- Valeurs valides:
TRUE
active Query AccelerationFALSE
désactive Query Acceleration
- Par défaut:
FALSE
: Query Acceleration est désactivé
QUERY_ACCELERATION_MAX_SCALE_FACTOR = num
Spécifie le facteur d’échelle maximum pour la location de ressources informatiques pour l’accélération des requêtes. Le facteur d’échelle est utilisé comme un multiplicateur basé sur la taille de l’entrepôt.
En définissant la valeur QUERY_ACCELERATION_MAX_SCALE_FACTOR à 0, on élimine la limite et on permet aux requêtes de louer autant de ressources que nécessaire et autant de ressources que disponibles pour traiter la requête.
Quelle que soit la valeur de QUERY_ACCELERATION_MAX_SCALE_FACTOR, la quantité de ressources informatiques disponibles pour l’accélération des requêtes est limitée par les ressources disponibles dans le service et le nombre d’autres requêtes simultanées. Pour plus de détails, reportez-vous à Ajustement du facteur d’échelle.
- Valeurs valides:
De
0
jusqu’à100
- Par défaut:
8
Paramètres facultatifs (objectParams
)¶
MAX_CONCURRENCY_LEVEL = num
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.
Pour une description détaillée de ce paramètre, voir MAX_CONCURRENCY_LEVEL.
STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = num
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.
Pour une description détaillée de ce paramètre, voir STATEMENT_QUEUED_TIMEOUT_IN_SECONDS.
STATEMENT_TIMEOUT_IN_SECONDS = num
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.
Exigences en matière de contrôle d’accès¶
Un rôle utilisé pour exécuter cette opération doit au minimum disposer des privilèges suivants :
Privilège |
Objet |
Remarques |
---|---|---|
CREATE WAREHOUSE |
Compte |
Only the SYSADMIN role, or a higher role, has this privilege by default. The privilege can be granted to additional roles as needed. |
OWNERSHIP |
Entrepôt |
Obligatoire pour exécuter une instruction CREATE OR ALTER WAREHOUSE pour un entrepôt existant. OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.
Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.
Notes générales sur l’utilisation¶
La création d’un entrepôt virtuel le définit automatiquement comme l’entrepôt utilisé pour la session en cours (équivalent à l’utilisation de la commande USE WAREHOUSE pour l’entrepôt).
Pour modifier l’entrepôt utilisé pour la session en cours, exécutez une instruction USE WAREHOUSE explicite après l’instruction CREATE WAREHOUSE. Par exemple, créez l’entrepôt
my_wh
, mais continuez à utiliser l’entrepôt actuel, et nonmy_wh
, pour exécuter des instructions supplémentaires :SET current_wh_name = (SELECT CURRENT_WAREHOUSE()); CREATE OR REPLACE WAREHOUSE my_wh WAREHOUSE_SIZE = 'XSMALL'; USE WAREHOUSE IDENTIFIER($current_wh_name);
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.
Utiliser
OR REPLACE
équivaut à utiliser DROP WAREHOUSE sur l’entrepôt existant, puis à créer un nouvel entrepôt avec le même nom.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.
Toutes les requêtes exécutées sur l’entrepôt détruit sont interrompues.
La création initiale et la reprise d’un entrepôt virtuel optimisé pour Snowpark peuvent prendre plus de temps que les entrepôts standard.
Les entrepôts optimisés pour Snowpark ne sont pas pris en charge pour les tailles d’entrepôts
XSMALL
,SMALL
,X5LARGE
ouX6LARGE
.
Notes sur l’utilisation de CREATE OR ALTER WAREHOUSE¶
Disponible pour tous les comptes.
Limitations
Toutes les limitations de la commande ALTER WAREHOUSE s’appliquent.
La propriété INITIALLY_SUSPENDED ne peut pas être modifiée (SET ou UNSET).
Paramètres et propriétés de l’entrepôt
L’absence d’une propriété ou d’un paramètre précédemment défini dans la définition de l’entrepôt modifiée entraîne sa désactivation.
La désactivation de la valeur explicite d’un paramètre entraîne sa définition sur la valeur par défaut du paramètre.
Gouvernance des données
L’activation ou la désactivation d’une balise ou d’une politique sur un entrepôt à l’aide d’une instruction CREATE OR ALTER WAREHOUSE n’est pas prise en charge.
Les politiques ou balises existantes ne peuvent pas être modifiées par une instruction CREATE OR ALTER WAREHOUSE et restent inchangées.
Facturation et tarification¶
La table suivante indique les crédits Snowflake facturés par heure pour les entrepôts optimisés pour Snowpark.
Crédits par heure |
||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Contraintes de ressources |
XS |
S |
M |
L |
XL |
2XL |
3XL |
4XL |
5XL |
6XL |
MEMORY_1X |
1,00 |
2,00 |
4,00 |
8,00 |
16,00 |
32,00 |
64,00 |
128,00 |
||
MEMORY_1X_X86 |
1,10 |
2,20 |
4,40 |
8,80 |
17,60 |
35,20 |
70,40 |
140,80 |
||
MEMORY_16X |
6,00 |
12,00 |
24,00 |
48,00 |
96,00 |
192,00 |
384,00 |
768,00 |
||
MEMORY_16X_X86 |
6,25 |
12,50 |
25,00 |
50,00 |
100,00 |
200,00 |
||||
MEMORY_64X |
15,00 |
30,00 |
60,00 |
120,00 |
240,00 |
|||||
MEMORY_64X_x86 |
16,00 |
32,00 |
64,00 |
128,00 |
256,00 |
Exemples¶
Exemples de base¶
Créer un entrepôt X-Large :
CREATE OR REPLACE WAREHOUSE my_wh WITH WAREHOUSE_SIZE='X-LARGE';
Créer un grand entrepôt dans un état suspendu :
CREATE OR REPLACE WAREHOUSE my_wh WAREHOUSE_SIZE=LARGE INITIALLY_SUSPENDED=TRUE;
Créez un entrepôt optimisé pour le Snowpark de très grande taille nommé so_warehouse
avec 256 GB mémoire pour les charges de travail Snowpark qui nécessitent Python x86 :
CREATE WAREHOUSE so_warehouse WITH
WAREHOUSE_TYPE = 'SNOWPARK-OPTIMIZED'
WAREHOUSE_SIZE = xlarge
RESOURCE_CONSTRAINT = 'MEMORY_16X_x86';
Exemples CREATE OR ALTER WAREHOUSE¶
Créer un entrepôt simple¶
CREATE OR ALTER WAREHOUSE so_warehouse
WAREHOUSE_TYPE = 'SNOWPARK_OPTIMIZED'
WAREHOUSE_SIZE = 'X-LARGE'
RESOURCE_CONSTRAINT = 'MEMORY_16X_X86'
AUTO_RESUME = TRUE
COMMENT = 'Snowpark warehouse for ingestion';
CREATE OR ALTER WAREHOUSE so_warehouse
WAREHOUSE_TYPE = 'SNOWPARK_OPTIMIZED'
WAREHOUSE_SIZE = 'X-LARGE'
RESOURCE_CONSTRAINT = 'MEMORY_16X_X86'
AUTO_RESUME = FALSE
COMMENT = 'Snowpark warehouse for ingestion (disabled for auto-resume)';