Warehouses multicluster¶
Warehouses multicluster permitem que você escalone recursos computacionais para gerenciar seus usuários e as necessidades de simultaneidade de consultas conforme elas mudam, por exemplo durante o horário de pico e fora do expediente.
Neste tópico:
O que é um warehouse multicluster?¶
Por padrão, um warehouse virtual consiste em um único cluster de recursos computacionais disponíveis ao warehouse para a execução de consultas. À medida que as consultas são enviadas a um warehouse, ele aloca recursos para cada consulta e começa a executar as consultas. Se não houver recursos suficientes para executar todas as consultas enviadas ao warehouse, o Snowflake enfileira as consultas adicionais até que os recursos necessários se tornem disponíveis.
Com warehouses multicluster, o Snowflake oferece suporte para a alocação, estática ou dinâmica, de clusters adicionais para tornar disponível um maior pool de recursos computacionais. Um warehouse multicluster é definido especificando as seguintes propriedades:
Número máximo de clusters, maior que 1 (até 10).
Número mínimo de clusters, igual ou inferior ao máximo (até 10).
Além disso, warehouses multicluster oferecem suporte para todas as mesmas propriedades e ações que os warehouses de um só cluster, inclusive:
Especificação do tamanho do warehouse.
Redimensionamento de um warehouse a qualquer momento.
Autossuspensão de um warehouse em funcionamento devido a inatividade; observe que isso não se aplica a clusters individuais, mas sim a todo o warehouse multicluster.
Retomada automática de um warehouse suspenso quando novas consultas são enviadas.
Maximizado vs. dimensionamento automático¶
Você pode escolher executar um warehouse multicluster em qualquer uma das seguintes modalidades:
- Maximizado:
Esse modo é ativado especificando o mesmo valor para o número máximo e mínimo de clusters (note que o valor especificado deve ser maior que 1). Nesse modo, quando o warehouse é iniciado, o Snowflake inicia todos os clusters para que o máximo de recursos esteja disponível enquanto o warehouse está em funcionamento.
Esse modo é eficaz para controlar estaticamente os recursos computacionais disponíveis, particularmente se você tiver um grande número de sessões e/ou consultas de usuários simultâneas e os números não flutuarem significativamente.
- Dimensionamento automático:
Esse modo é ativado especificando valores diferentes para o número máximo e mínimo de clusters. Neste modo, o Snowflake inicia e interrompe os clusters conforme necessário para gerenciar dinamicamente a carga no warehouse:
Conforme o número de sessões e/ou consultas simultâneas de usuários para o warehouse aumenta, e as consultas começam a fazer fila devido à insuficiência de recursos, o Snowflake inicia automaticamente clusters adicionais, até o número máximo definido para o warehouse.
Da mesma forma, à medida que a carga no warehouse diminui, o Snowflake encerra automaticamente os clusters para reduzir o número de clusters em funcionamento e, correspondentemente, o número de créditos usados pelo warehouse.
Para ajudar a controlar o uso de créditos no modo de dimensionamento automático, o Snowflake fornece uma propriedade SCALING_POLICY que determina a política de escalonamento a ser usada ao iniciar ou encerrar automaticamente clusters adicionais. Para obter mais informações, consulte Como definir a política de escalonamento para um warehouse multicluster (neste tópico).
Dica
Para criar um warehouse com vários clusters, consulte Criação de um warehouse multicluster (neste tópico).
Observe o seguinte:
Para warehouses com vários clusters, o número máximo de clusters no campo Maximum Clusters (interface da web) ou para a propriedade MAX_CLUSTER_COUNT (SQL) deve ser maior que 1.
Para warehouses de cluster único, o número máximo e mínimo de clusters devem ambos ser iguais a 1.
Para o modo de dimensionamento automático, o número máximo de clusters deve ser maior que o número mínimo de clusters.
Para o modo maximizado, o número máximo de clusters deve ser igual ao número mínimo de clusters.
Ao determinar o número máximo e mínimo de clusters a serem usados para um warehouse com multicluster, comece com o modo de dimensionamento automático e comece pequeno (por exemplo, máximo = 2 ou 3, mínimo = 1). À medida que você acompanha como a carga de seu warehouse flutua com o tempo, você pode aumentar o número máximo e mínimo de clusters até determinar os números que oferecem o melhor suporte para os limites superior e inferior de seus usuários/consultas simultâneos.
Tamanho multicluster e uso de crédito¶
A quantidade de recursos computacionais em cada cluster é determinada pelo tamanho do warehouse:
O número total de clusters para o warehouse multicluster é calculado multiplicando o tamanho do warehouse pelo número máximo de clusters. Isso também indica o número máximo de créditos consumidos pelo warehouse por hora completa de uso (isto é, se todos os clusters funcionarem durante a hora).
Por exemplo, o número máximo de créditos consumidos por hora por um warehouse multicluster de tamanho Medium com 3 clusters é de 12 créditos.
Se um warehouse multicluster for redimensionado, o novo tamanho se aplica a todos os clusters para o warehouse, incluindo os clusters que estão atualmente em funcionamento e quaisquer clusters que são iniciados após o warehouse multicluster ser redimensionado.
O número real de créditos consumidos por hora depende do número de clusters funcionando durante cada hora em que o warehouse está funcionando. Para obter mais detalhes, consulte Exemplos de uso de crédito multicluster (neste tópico).
Benefícios de warehouses multicluster¶
Com um warehouse padrão de um único cliente, se sua carga de usuário/consulta aumentar ao ponto de exigir mais recursos computacionais:
Você deve aumentar o tamanho do warehouse ou iniciar warehouses adicionais e redirecionar explicitamente os usuários/consultas adicionais para esses warehouses.
Então, quando os recursos não são mais necessários, para conservar créditos, você deverá reduzir manualmente o tamanho do warehouse maior ou suspender os warehouses adicionais.
Em contraste, um warehouse multicluster permite a conexão de um número maior de usuários ao mesmo tamanho de warehouse. Além disso:
No modo de dimensionamento automático, um warehouse multicluster elimina a necessidade de redimensionar o warehouse ou iniciar e parar warehouses adicionais para lidar com cargas de trabalho flutuantes. O Snowflake inicia e interrompe automaticamente os clusters adicionais conforme necessário.
No modo Maximizado, é possível controlar a capacidade do warehouse multicluster aumentando ou diminuindo o número de clusters conforme necessário.
Dica
Warehouses multicluster melhores para escalonar recursos para melhorar o uso simultâneo de usuários/consultas. Eles não são tão benéficos para melhorar o desempenho de consultas lentas ou carregamento de dados. Para esses tipos de operações, o redimensionamento do warehouse oferece mais benefícios.
Exemplos de uso de crédito multicluster¶
Os quatro exemplos a seguir ilustram o uso de crédito para um warehouse multicluster. Consulte Uso de crédito do warehouse virtual para ver o número de créditos faturados por hora completa por tamanho de warehouse.
Nota
Por uma questão de simplicidade, todos esses exemplos mostram o uso de crédito em incrementos de 1 hora, 30 minutos e 15 minutos. Em um cenário real, com a cobrança por segundo, o uso de crédito real conteria quantidades fracionárias, com base no número de segundos que cada cluster funciona.
Exemplo 1: Maximizado (2 horas)¶
Neste exemplo, um warehouse de tamanho Medium com 3 clusters funciona em modo Maximizado durante 2 horas:
Cluster 1 |
Cluster 2 |
Cluster 3 |
Créditos totais |
|
1ª hora |
4 |
4 |
4 |
12 |
2ª hora |
4 |
4 |
4 |
12 |
Créditos totais |
8 |
8 |
8 |
24 |
Exemplo 2: dimensionamento automático (2 horas)¶
Neste exemplo, um warehouse de tamanho Medium com 3 clusters funciona em modo de dimensionamento automático durante 2 horas:
O Cluster 1 funciona continuamente.
O Cluster 2 funciona continuamente apenas durante a 2ª hora.
O Cluster 3 funciona por 30 minutos durante a 2ª hora.
Cluster 1 |
Cluster 2 |
Cluster 3 |
Créditos totais |
|
1ª hora |
4 |
0 |
0 |
4 |
2ª hora |
4 |
4 |
2 |
10 |
Créditos totais |
8 |
4 |
2 |
14 |
Exemplo 3: dimensionamento automático (3 horas)¶
Neste exemplo, um warehouse de tamanho Medium com 3 clusters funciona em modo de dimensionamento automático durante 3 horas:
O Cluster 1 funciona continuamente.
O Cluster 2 funciona continuamente durante toda a 2ª hora e 30 minutos na 3ª hora.
O Cluster 3 funciona por 30 minutos na 3ª hora.
Cluster 1 |
Cluster 2 |
Cluster 3 |
Créditos totais |
|
1ª hora |
4 |
0 |
0 |
4 |
2ª hora |
4 |
4 |
0 |
8 |
3ª hora |
4 |
2 |
2 |
8 |
Créditos totais |
12 |
6 |
2 |
20 |
Exemplo 4: dimensionamento automático (3 horas) com redimensionamento¶
Neste exemplo, o mesmo warehouse do exemplo 3 funciona em modo de dimensionamento automático durante 3 horas com um redimensionamento de Medium para Large:
O Cluster 1 funciona continuamente.
O Cluster 2 funciona continuamente durante a 2ª e 3ª horas.
O warehouse é redimensionado de Medium para Large em 1:30 hora.
O Cluster 3 funciona por 15 minutos na 3ª hora.
Cluster 1 |
Cluster 2 |
Cluster 3 |
Créditos totais |
|
1ª hora |
4 |
0 |
0 |
4 |
2ª hora |
4+2 |
4+2 |
0 |
12 |
3ª hora |
8 |
8 |
2 |
18 |
Créditos totais |
18 |
14 |
2 |
34 |
Criação de um warehouse multicluster¶
Você pode criar um warehouse multicluster através da interface da web ou usando SQL:
- Interface da web:
Clique em Warehouses » Create:
No campo Maximum Clusters, selecione um valor maior que 1.
No campo Minimum Clusters, opcionalmente, selecione um valor maior que 1.
Insira outras informações para o warehouse, conforme necessário, e clique em Finish.
- SQL:
Execute um comando CREATE WAREHOUSE.
MAX_CLUSTER_COUNT
definido como um valor maior que1
.
MIN_CLUSTER_COUNT
(opcionalmente) definido como um valor maior que1
.
Para ver informações sobre os warehouses multicluster que você criar:
- Classic Console:
A coluna Clusters exibe os clusters mínimo e máximo para cada warehouse, assim como o número de clusters que estão atualmente em funcionamento se o warehouse foi iniciado.
- SQL:
Execute um comando SHOW WAREHOUSES.
A saída inclui três colunas (
min_cluster_count
,max_cluster_count
,started_clusters_column
) que exibem as mesmas informações fornecidas na coluna Clusters na interface da web.
Todas as outras tarefas para warehouses com vários clientes (exceto as tarefas restantes descritas neste tópico) são idênticas às tarefas de warehouses de um só cluster.
Como definir a política de escalonamento para um warehouse multicluster¶
Para ajudar a controlar os créditos consumidos por um warehouse multicluster funcionando em modo de dimensionamento automático, o Snowflake fornece políticas de escalonamento que são usadas para determinar quando iniciar ou encerrar um cluster.
A política de escalonamento para um warehouse multicluster só se aplica se ele estiver funcionando em modo de dimensionamento automático. No modo Maximizado, todos os clusters funcionam simultaneamente, de modo que não há necessidade de iniciar ou encerrar clusters individuais.
O Snowflake oferece suporte para as seguintes políticas de escalonamento:
Política |
Descrição |
O warehouse começa… |
O warehouse é encerrado… |
---|---|---|---|
Standard (padrão) |
Evita/minimiza a fila de espera priorizando a inicialização de clusters adicionais sobre a conservação de créditos. |
O primeiro cluster começa imediatamente quando uma consulta é enfileirada ou o sistema detecta que há mais uma consulta do que os clusters atualmente em funcionamento podem executar. Cada cluster sucessivo espera para começar 20 segundos após o anterior ter começado. Por exemplo, se seu warehouse estiver configurado com no máximo 10 clusters, pode demorar um total de 200 segundos ou mais para iniciar todos os 10 clusters. |
Após 2 a 3 verificações consecutivas bem-sucedidas (realizadas em intervalos de 1 minutos), que determinam se a carga no cluster menos carregado poderia ser redistribuída aos outros clusters sem rodar o cluster novamente. |
Economia |
Conserva os créditos priorizando a manutenção de clusters em funcionamento totalmente carregados sobre a inicialização de clusters adicionais, o que pode fazer com que as consultas sejam enfileiradas e levem mais tempo para ser concluídas. |
Somente se o sistema estimar que há carga de consulta suficiente para manter o cluster ocupado por pelo menos 6 minutos. |
Após 5 a 6 verificações consecutivas bem-sucedidas (realizadas em intervalos de 1 minutos), que determinam se a carga no cluster menos carregado poderia ser redistribuída aos outros clusters sem rodar o cluster novamente. |
Nota
Uma terceira política de escalonamento, Legado, foi fornecer para permitir compatibilidade com versões anteriores. Em contraste com as outras políticas, ela usou uma abordagem estática baseada no período de tempo em que um warehouse fica ativo/inativo.
A Legado foi tornada obsoleta/removida. Todos os warehouses que estavam usando a política Legado agora usam a política Padrão.
A política de escalonamento de um warehouse multicluster pode ser definida quando ele é criado ou em qualquer momento posterior, seja através da interface da web ou usando SQL:
- Classic Console:
Clique em:
No campo Scaling Policy, selecione o valor desejado na lista suspensa.
- SQL:
Execute um comando CREATE WAREHOUSE ou ALTER WAREHOUSE com
SCALING_POLICY
definido para o valor desejado.
Por exemplo, em SQL:
ALTER WAREHOUSE mywh SET SCALING_POLICY = 'ECONOMY';
Como aumentar ou diminuir os clusters para um warehouse multicluster¶
Você pode aumentar ou diminuir o número de clusters para um warehouse a qualquer momento, mesmo enquanto ele estiver funcionando e executando instruções. Os clusters podem ser aumentados ou diminuídos para um warehouse através da interface da web ou usando SQL:
- Classic Console:
- SQL:
Execute um comando ALTER WAREHOUSE.
O efeito de mudar os clusters máximo e mínimo para um warehouse em funcionamento depende de se ele está funcionando no modo Maximizado ou de dimensionamento automático:
Maximizado:
- ↑ máx e mín:
O número especificado de clusters começa imediatamente.
- ↓ máx e mín:
O número especificado de clusters são encerrados quando terminam de executar as instruções e o período de autossuspensão acaba.
Dimensionamento automático:
- ↑ máx:
Se
new_max_clusters > running_clusters
, não haverá mudanças até que sejam necessários clusters adicionais.- ↓ máx:
Se
new_max_clusters < running_clusters
, os clusters em excesso são encerrados quando terminam de executar instruções e as condições da política de escalonamento são cumpridas.- ↑ mín:
Se
new_min_clusters > running_clusters
, clusters adicionais imediatamente começaram a cumprir o mínimo.- ↓ mín:
Se
new_min_clusters < running_clusters
, os clusters em excesso são encerrados quando terminam de executar instruções e as condições da política de escalonamento são cumpridas.
Monitoramento de warehouses multicluster¶
Você pode monitorar o uso de warehouses multicluster através da interface da web: