Como trabalhar com warehouses¶
Todas as tarefas de warehouses podem ser executadas a partir da interface da web do Snowflake ou usando os comandos DDL para warehouses.
Neste tópico:
Como criar um warehouse¶
Um warehouse pode ser criado através da interface da web ou usando SQL:
- Classic Console
- SQL
Execute um comando CREATE WAREHOUSE.
Ao criar um warehouse, você pode especificar se o warehouse é criado inicialmente no estado “Iniciado” (ou seja, em funcionamento) ou “Suspenso”. Se você escolher “Iniciado”, o warehouse começa a consumir créditos quando todos os recursos computados são provisionados para o warehouse.
Nota
Se você optar por criar um warehouse no estado “Iniciado”, o warehouse pode levar algum tempo para ficar totalmente disponível, pois o Snowflake fornecerá todos os recursos computacionais para o warehouse.
Início/retomada de um warehouse¶
Um warehouse pode ser iniciado a qualquer momento, inclusive na criação inicial. Quando um warehouse é criado, retomar seu funcionamento é o mesmo que iniciá-lo.
Um warehouse suspenso (ou seja, inativo) pode ser retomado através da interface da web ou usando SQL:
- Classic Console
- SQL
Execute um comando ALTER WAREHOUSE com a palavra-chave
RESUME
.
Iniciar um warehouse normalmente leva apenas alguns segundos; contudo, em alguns raros casos, pode levar mais tempo à medida que o Snowflake fornece os recursos computacionais para o warehouse.
Warehouses consomem créditos enquanto funcionam:
Um warehouse começa a consumir créditos quando todos os recursos computacionais são provisionados para o warehouse.
Em um raro caso, quando alguns dos recursos computados não conseguem provisionar, o warehouse só consome créditos para os recursos computados provisionados.
Quando os recursos computacionais restantes são provisionados com sucesso, o warehouse começa a consumir créditos para todos os recursos computacionais solicitados.
Enquanto o início ou a retomada de um warehouse muitas vezes leva apenas alguns segundos, em alguns casos, pode levar mais tempo porque o Snowflake fornece os recursos computacionais para o warehouse.
O Snowflake não começa a executar instruções SQL enviadas a um warehouse até que todos os recursos computados para o warehouse sejam provisionados com sucesso, a menos que qualquer um dos recursos deixe de provisionar:
Se qualquer um dos recursos computados para o warehouse deixar de provisionar durante a inicialização, o Snowflake tentará reparar os recursos falhados.
Durante o processo de reparo, o warehouse começa a processar instruções SQL quando 50% ou mais dos recursos computacionais solicitados forem provisionados com sucesso.
Os créditos são faturados por segundo enquanto o warehouse está funcionando, com um mínimo de 1 minuto a cada vez que o warehouse é retomado; entretanto, o consumo de crédito é relatado em incrementos de 60 minutos (ou seja, de hora em hora).
Nota
Um warehouse deve ser iniciado/executado para processar instruções SQL enviadas em uma sessão; entretanto, o warehouse também deve ser especificado como o warehouse atual para a sessão. Para obter mais informações, consulte Como usar um warehouse neste tópico.
Como suspender um warehouse¶
Um warehouse em andamento (ou seja, “Iniciado”) pode ser suspenso a qualquer momento, mesmo durante a execução de instruções SQL. A suspensão de um warehouse impede que ele consuma créditos quando todos os recursos computacionais tiverem sido encerrados.
Um warehouse pode ser suspenso através da interface da web ou usando SQL:
- Classic Console
- SQL
Execute um comando ALTER WAREHOUSE com a palavra-chave
SUSPEND
.
Ao suspender um warehouse, o Snowflake desliga imediatamente todos os recursos de computação ociosos do warehouse, mas permite que quaisquer recursos de computação que estejam executando instruções continuem até que as instruções sejam concluídas, momento em que os recursos são desligados e o status do warehouse muda para “Suspenso”. Os recursos computacionais à espera de serem desligados são considerados estar em modo “quiesce” (fechado para novas sessões).
Redimensionamento de um warehouse¶
Um warehouse pode ser redimensionado para cima ou para baixo a qualquer momento, inclusive enquanto estiver em funcionamento e processando instruções.
Um warehouse pode ser redimensionado através da interface da web ou usando SQL:
- Classic Console
- SQL
Execute um comando ALTER WAREHOUSE com
SET WAREHOUSE_SIZE = ...
.
Redimensionar um warehouse para um tamanho maior é útil quando as operações que estão sendo realizadas pelo warehouse se beneficiarão de mais recursos computacionais, inclusive:
Melhorar o desempenho de consultas grandes e complexas em relação a grandes conjuntos de dados.
Melhorar o desempenho durante o carregamento e descarregamento de quantidades significativas de dados.
Efeitos do redimensionamento de um warehouse em funcionamento¶
O redimensionamento de um warehouse em funcionamento adiciona ou remove recursos de computação em cada cluster no warehouse. Todas as regras de uso e crédito associadas ao início ou suspensão de um warehouse se aplicam ao redimensionamento de um warehouse iniciado, como por exemplo:
Os recursos de computação adicionados a um warehouse começam a usar créditos quando são provisionados; no entanto, os recursos de computação adicionais não começam a executar instruções até que todos eles sejam provisionados, a menos que alguns dos recursos deixem de provisionar.
Recursos computacionais somente são removidos de um warehouse quando eles não estiverem mais sendo utilizados para executar quaisquer instruções atuais.
O redimensionamento de um warehouse não tem nenhum impacto sobre as instruções que estão sendo executadas atualmente pelo warehouse. Ao redimensionar para um tamanho maior, os novos recursos computacionais, uma vez totalmente provisionados, são utilizados apenas para executar instruções que já estão na fila do warehouse, bem como todas as instruções futuras enviadas ao warehouse.
Dica
Para verificar se os recursos de computação adicionais para seu warehouse foram totalmente provisionados, adicione o parâmetro WAIT_FOR_COMPLETION
ao comando ALTER WAREHOUSE. Você também pode usar SHOW WAREHOUSES para verificar seu state
.
Efeitos do redimensionamento de um warehouse suspenso¶
O redimensionamento de um warehouse suspenso não fornece nenhum novo recurso de computação para o warehouse. Ele simplesmente instrui o Snowflake a fornecer os recursos adicionais de computação quando o warehouse for retomado novamente, momento em que se aplicam todas as regras de uso e crédito associadas ao início de um warehouse.
Como usar um warehouse¶
Para executar uma consulta ou instrução DML no Snowflake, um warehouse deve estar em funcionamento e deve ser especificado como o warehouse atual para a sessão em que a consulta/instrução é enviada.
Uma sessão do Snowflake só pode ter um warehouse atual de cada vez. O warehouse atual para uma sessão pode ser especificado ou alterado a qualquer momento através do comando USE WAREHOUSE.
Quando um warehouse em funcionamento tiver sido definido como o warehouse atual para uma sessão, as consultas e instruções DML enviadas dentro da sessão serão processadas pelo warehouse. Nas páginas History e Worksheets
no Classic Console, você pode visualizar o warehouse usado para processar cada consulta/instrução.