CREATE WAREHOUSE¶
Cria um novo warehouse virtual no sistema.
A criação inicial de um warehouse virtual pode demorar para fornecer os recursos de computação, a menos que o warehouse seja criado inicialmente em um estado SUSPENDED
.
- Consulte também:
ALTER WAREHOUSE , DESCRIBE WAREHOUSE , DROP WAREHOUSE , SHOW WAREHOUSES
Sintaxe¶
CREATE [ OR REPLACE ] WAREHOUSE [ IF NOT EXISTS ] <name>
[ [ WITH ] objectProperties ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ objectParams ]
Onde:
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>
Parâmetros obrigatórios¶
name
Identificador para o warehouse virtual; deve ser único para sua conta.
Além disso, o identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo,
"My object"
). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.Para obter mais detalhes, consulte Requisitos para identificadores.
Propriedades opcionais (objectProperties
)¶
WAREHOUSE_TYPE = { STANDARD | 'SNOWPARK-OPTIMIZED' }
Especifica o tipo de warehouse.
- Valores válidos:
STANDARD
,'STANDARD'
'SNOWPARK-OPTIMIZED'
- Padrão:
STANDARD
Nota
Para usar um valor que contenha um hífen (
'SNOWPARK-OPTIMIZED'
), você deve incluir o valor entre aspas simples, como mostrado.WAREHOUSE_SIZE = { XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE | X5LARGE | X6LARGE }
Especifica o tamanho do warehouse virtual. O tamanho determina a quantidade de recursos de computação em cada cluster no warehouse e, portanto, o número de créditos consumidos enquanto o warehouse está em funcionamento.
- Valores válidos:
Valores suportados
Sinônimos
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'
- Padrão:
XSMALL
Nota
Os tamanhos X5LARGE e X6LARGE não oferecem suporte aos warehouses otimizados para Snowpark. O tamanho padrão dos warehouses otimizados para Snowpark é MEDIUM.
Para usar um valor que contenha um hífen (por exemplo,
'2X-LARGE'
), você deve incluir o valor entre aspas simples, como mostrado.Tamanhos de warehouses maiores 5X-Large e 6X-Large estão geralmente disponíveis em todas as regiões da Amazon Web Services (AWS) e do Microsoft Azure.
Warehouses maiores estão em versão prévia em regiões governamentais dos US (requer suporte de FIPS em ARM).
RESOURCE_CONSTRAINT = { MEMORY_1X | MEMORY_1X_x86 | MEMORY_16X | MEMORY_16X_x86 | MEMORY_64X | MEMORY_64X_x86 }
Especifica a memória e a arquitetura de CPU para warehouses otimizados para Snowpark. A tabela a seguir inclui os valores válidos para a propriedade, memória disponível, arquitetura de CPU e o tamanho mínimo do warehouse necessário para a configuração
resource_constraint
:- Valores válidos:
Valor
Memória (até)
Arquitetura de CPU
Tamanho mínimo de warehouse necessário
Tamanho máximo de warehouse
MEMORY_1X
16 GB
Padrão
XSMALL
X4LARGE
MEMORY_1X_x86
16 GB
x86
XSMALL
X4LARGE
MEMORY_16X
256 GB
Padrão
MEDIUM
X6LARGE
MEMORY_16X_x86
256 GB
x86
MEDIUM
X4LARGE
MEMORY_64X
1 TB [1]
Padrão
LARGE
X4LARGE
MEMORY_64X_x86
1 TB [1]
x86
LARGE
X4LARGE
- Valor padrão:
MEMORY_16X
Esta propriedade só pode ser definida se
WAREHOUSE_TYPE
for'SNOWPARK-OPTIMIZED'
.MAX_CLUSTER_COUNT = num
Especifica o número máximo de clusters para um warehouse multicluster. Para um warehouse monocluster, este valor é sempre
1
.- Valores válidos:
1
a10
Observe que especificar um valor maior que
1
indica que o warehouse é um warehouse multicluster; entretanto, o valor só pode ser definido para um valor maior no Snowflake Enterprise Edition (ou superior).Para obter mais informações, consulte Warehouses multicluster.
- Padrão:
1
(warehouse monocluster)
Dica
Para o Snowflake Enterprise Edition (ou superior), recomendamos sempre definir o valor como maior que
1
para ajudar a manter a alta disponibilidade e o ótimo desempenho de um warehouse multicluster. Isso também ajuda a garantir a continuidade no improvável caso de falha de um cluster.MIN_CLUSTER_COUNT = num
Especifica o número mínimo de clusters para um warehouse multicluster (só se aplica a warehouses multicluster).
- Valores válidos:
1
a10
No entanto, observe que
MIN_CLUSTER_COUNT
deve ser igual ou menor queMAX_CLUSTER_COUNT
:Se ambos os parâmetros forem iguais, o warehouse funciona no modo maximizado.
Se
MIN_CLUSTER_COUNT
for menor queMAX_CLUSTER_COUNT
, o warehouse funcionará no modo Dimensionamento automático.
Para obter mais informações, consulte Warehouses multicluster.
- Padrão:
1
SCALING_POLICY = { STANDARD | ECONOMY }
Especifica a política para iniciar e fechar automaticamente os clusters em um warehouse multicluster funcionando em modo Dimensionamento automático.
- Valores válidos:
STANDARD
: minimiza a fila de espera ao iniciar clusters.ECONOMY
: conserva os créditos, favorecendo o funcionamento de clusters totalmente carregados.
Para uma descrição mais detalhada, consulte Como definir a política de escalonamento para um warehouse multicluster.
- Padrão:
STANDARD
AUTO_SUSPEND = { num | NULL }
Especifica o número de segundos de inatividade após os quais um warehouse é automaticamente suspenso.
- Valores válidos:
Qualquer número inteiro maior ou igual a
0
, ouNULL
:O processo em segundo plano que suspende um warehouse é executado aproximadamente a cada 30 segundos e, portanto, a configuração dessa propriedade não se destina a permitir o controle preciso sobre a suspensão do warehouse.
Definir um valor menor que 30, ou um valor que não seja múltiplo de 30, é permitido, mas pode não resultar no comportamento esperado devido ao intervalo de pesquisa de 30 segundos para suspensão do warehouse.
A definição de um valor
0
ouNULL
significa que o warehouse nunca é suspenso.
- Padrão:
600
(o warehouse é suspenso automaticamente após 10 minutos de inatividade)
Importante
A configuração
AUTO_SUSPEND
como0
ouNULL
não é recomendada, a menos que suas cargas de trabalho de consulta exijam um warehouse em funcionamento contínuo. Note que isso pode resultar em um consumo significativo de créditos (e encargos relacionados), especialmente em warehouses maiores.AUTO_RESUME = { TRUE | FALSE }
Especifica se deve retomar automaticamente um warehouse quando uma instrução SQL (por exemplo, consulta) é enviada a ele.
- Valores válidos:
TRUE
: o warehouse é retomado quando uma nova consulta é enviada.FALSE
: o warehouse só é retomado quando retomado explicitamente usando ALTER WAREHOUSE ou através da interface da web do Snowflake.
- Padrão:
TRUE
(o warehouse é retomado automaticamente quando uma instrução SQL é enviada a ele)
INITIALLY_SUSPENDED = { TRUE | FALSE }
Especifica se o warehouse é criado inicialmente no estado ‘Suspenso’.
- Valores válidos:
TRUE
: o warehouse é criado, mas suspenso.FALSE
: o warehouse começa a funcionar após a sua criação.
- Padrão:
FALSE
RESOURCE_MONITOR = monitor_name
Especifica o nome de um monitor de recursos que é explicitamente atribuído ao warehouse. Quando um monitor de recursos é explicitamente atribuído a um warehouse, o monitor controla os créditos mensais usados pelo warehouse (e todos os outros warehouses aos quais o monitor é atribuído).
- Valores válidos:
Qualquer monitor de recursos existente.
Para obter mais detalhes, consulte Como trabalhar com monitores de recursos.
- Padrão:
Sem valor (sem monitor de recursos atribuído ao warehouse)
Dica
Para ver todos os monitores de recursos e seus identificadores, use o comando SHOW RESOURCE MONITORS.
COMMENT = 'string_literal'
Especifica um comentário para o warehouse.
TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )
Especifica o nome da tag e o valor da cadeia de caracteres dela.
O valor de tag é sempre uma cadeia de caracteres, e o número máximo de caracteres do valor da tag é 256.
Para obter informações sobre como especificar tags em uma instrução, consulte Cotas de tags para objetos e colunas.
Propriedades do Query Acceleration¶
Este recurso exige Enterprise Edition (ou superior). Para se informar sobre a possibilidade de upgrade, entre em contato com o suporte Snowflake.
ENABLE_QUERY_ACCELERATION = { TRUE | FALSE }
Especifica se deve habilitar o Query Acceleration Service para consultas que dependem deste warehouse para computar os recursos.
- Valores válidos:
TRUE
habilita o Query AccelerationFALSE
Desabilita o Query Acceleration
- Padrão:
FALSE
: Query Acceleration está desativado
QUERY_ACCELERATION_MAX_SCALE_FACTOR = num
Especifica o fator de escala máximo para emprestar recursos de computação para aceleração da consulta. O fator de escala é utilizado como multiplicador baseado no tamanho do warehouse.
Definir o QUERY_ACCELERATION_MAX_SCALE_FACTOR como 0 elimina o limite e permite que as consultas peguem emprestado tantos recursos quantos forem necessários e disponíveis para atender à consulta.
Independentemente do valor QUERY_ACCELERATION_MAX_SCALE_FACTOR, a quantidade de recursos de computação disponíveis para aceleração da consulta é limitada pelos recursos disponíveis no serviço e pelo número de outras solicitações simultâneas. Para obter mais detalhes, consulte Ajuste do fator de escala.
- Valores válidos:
0
a100
- Padrão:
8
Parâmetros opcionais (objectParams
)¶
MAX_CONCURRENCY_LEVEL = num
Parâmetro de objeto que especifica o nível de concorrência para instruções SQL (ou seja, consultas e DML) executadas por um cluster do warehouse.
Para uma descrição detalhada deste parâmetro, consulte MAX_CONCURRENCY_LEVEL.
STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = num
Parâmetro do objeto que especifica a hora, em segundos, uma instrução SQL (consulta, DDL, DML etc.) pode ser colocada em fila em um warehouse antes de ser cancelada pelo sistema.
Para uma descrição detalhada deste parâmetro, consulte STATEMENT_QUEUED_TIMEOUT_IN_SECONDS.
STATEMENT_TIMEOUT_IN_SECONDS = num
Parâmetro de objeto que especifica a hora, em segundos, após a qual uma instrução SQL em execução (consulta, DDL, DML etc.) é cancelada pelo sistema.
Para uma descrição detalhada deste parâmetro, consulte STATEMENT_TIMEOUT_IN_SECONDS.
Requisitos de controle de acesso¶
Uma função usada para executar este comando SQL deve ter os seguintes privilégios no mínimo:
Privilégio |
Objeto |
Notas |
---|---|---|
CREATE WAREHOUSE |
Conta |
Only the SYSADMIN role, or a higher role, has this privilege by default. The privilege can be granted to additional roles as needed. |
Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.
Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.
Notas de uso¶
A criação de um warehouse virtual o define automaticamente como o warehouse em uso para a sessão atual (equivalente a usar o comando USE WAREHOUSE para o warehouse).
Para alterar o warehouse em uso na sessão atual, execute uma instrução explícita USE WAREHOUSE após a instrução CREATE WAREHOUSE. Por exemplo, crie um warehouse
my_wh
mas continue a usar o warehouse atual, nãomy_wh
, para executar instruções adicionais:SET current_wh_name = (SELECT CURRENT_WAREHOUSE()); CREATE OR REPLACE WAREHOUSE my_wh WAREHOUSE_SIZE = 'XSMALL'; USE WAREHOUSE IDENTIFIER($current_wh_name);
Em relação aos metadados:
Atenção
Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.
Usar
OR REPLACE
é o equivalente a usar DROP WAREHOUSE no warehouse existente e depois criar um novo warehouse com o mesmo nome.Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação.
Qualquer consulta sendo executada sobre o warehouse removido é abortada.
A criação e retomada inicial de um warehouse virtual otimizado para Snowpark pode levar mais tempo do que os warehouses padrão.
Os warehouses otimizados para Snowpark não são suportados em tamanhos de warehouse
XSMALL
,SMALL
,X5LARGE
ouX6LARGE
.
Faturamento e preços¶
A tabela a seguir mostra os créditos Snowflake cobrados por hora para warehouses otimizados do Snowpark.
Créditos por hora |
||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Restrição de recursos |
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 |
Exemplos¶
Criar um warehouse X-Large:
CREATE OR REPLACE WAREHOUSE my_wh WITH WAREHOUSE_SIZE='X-LARGE';
Criar um warehouse Large em estado suspenso:
CREATE OR REPLACE WAREHOUSE my_wh WAREHOUSE_SIZE=LARGE INITIALLY_SUSPENDED=TRUE;
Crie um warehouse otimizado para Snowpark X-Large nomeado so_warehouse
com 256 GB de memória para cargas de trabalho Snowpark que exijam Python x86:
CREATE WAREHOUSE so_warehouse WITH
WAREHOUSE_TYPE = 'SNOWPARK-OPTIMIZED'
WAREHOUSE_SIZE = xlarge
RESOURCE_CONSTRAINT = 'MEMORY_16X_x86';