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 ]
Copy

Onde:

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>
Copy
objectParams ::=
  MAX_CONCURRENCY_LEVEL = <num>
  STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = <num>
  STATEMENT_TIMEOUT_IN_SECONDS = <num>
Copy

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 XSMALL, SMALL, 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.

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 a 10

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 a 10

No entanto, observe que MIN_CLUSTER_COUNT deve ser igual ou menor que MAX_CLUSTER_COUNT:

  • Se ambos os parâmetros forem iguais, o warehouse funciona no modo maximizado.

  • Se MIN_CLUSTER_COUNT for menor que MAX_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, ou NULL:

  • É permitido definir um valor menor que 60, mas isso pode não resultar no comportamento desejado/esperado porque o processo em segundo plano que suspende um warehouse é executado aproximadamente a cada 60 segundo e, portanto, não se destina a permitir o controle exato da suspensão do warehouse.

  • A definição de um valor 0 ou NULL 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 como 0 ou NULL 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 mais detalhes sobre como especificar tags em uma instrução, consulte Cotas de tags para objetos e colunas.

Propriedades do Query Acceleration

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 Acceleration

  • FALSE 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 a 100

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 ativo/atual para a sessão atual (equivalente a usar o comando USE WAREHOUSE para o warehouse).

  • 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 ou X6LARGE.

Exemplos

Criar um warehouse X-Large:

CREATE OR REPLACE WAREHOUSE my_wh WITH WAREHOUSE_SIZE='X-LARGE';
Copy

Criar um warehouse Large em estado suspenso:

CREATE OR REPLACE WAREHOUSE my_wh WAREHOUSE_SIZE=LARGE INITIALLY_SUSPENDED=TRUE;
Copy