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.
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. O valor mais alto que você pode especificar depende do tamanho do warehouse. Para saber o limite superior do número de clusters para cada tamanho de warehouse, consulte Limite superior do número de clusters para um warehouse multicluster (neste tópico).
Número mínimo de clusters, igual ou menor que o máximo.
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.
Limite superior do número de clusters para um warehouse multicluster¶
O número máximo de clusters para um warehouse multicluster depende do tamanho do warehouse. Warehouses maiores têm limites mais baixos para o número de clusters. A tabela a seguir mostra o número máximo de clusters para cada tamanho de warehouse:
Tamanho do warehouse |
Contagem máxima permitida de clusters |
Contagem máxima padrão de clusters |
---|---|---|
XSMALL |
300 |
10 |
SMALL |
300 |
10 |
MEDIUM |
300 |
10 |
LARGE |
160 |
10 |
XLARGE |
80 |
10 |
2XLARGE |
40 |
10 |
3XLARGE |
20 |
10 |
4XLARGE |
10 |
10 |
5XLARGE |
10 |
10 |
6XLARGE |
10 |
10 |
Nota
Atualmente, a Snowsight permite a atualização de MAX_CLUSTER_COUNT para um máximo de 10 clusters. Para especificar um MAX_CLUSTER_COUNT maior que 10, use o comando CREATE WAREHOUSE ou ALTER WAREHOUSE no SQL.
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).
Para criar um warehouse com vários clusters, consulte Criação de um warehouse multicluster (neste tópico).
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.
Dica
Ao determinar o número máximo e mínimo de clusters a serem usados em um warehouse multicluster, inicie com o modo Dimensionamento automático e comece com um número 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).
Dica
Se você usar o Query Acceleration Service (QAS) para um warehouse multicluster, considere ajustar o fator de escala do QAS mais alto do que para um warehouse de cluster único. Isso ajuda a aplicar as otimizações do QAS em todos os clusters do warehouse. Para obter mais informações, consulte Ajuste do fator de escala.
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 Padrão de tamanho Medium (Médio) 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 Padrão de tamanho Medium (Médio) com 3 clusters funciona em modo 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 Padrão de tamanho Medium (Médio) com 3 clusters funciona em modo 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 em Snowsight ou usando o SQL:
- Snowsight:
Clique em Admin » Warehouses » + Warehouse
Expanda o Advanced Options.
Marque a caixa de seleção Multi-cluster Warehouse.
No campo Max Clusters, selecione um valor maior que 1.
Nota
Atualmente, o valor mais alto que você pode escolher na Snowsight é 10. Os tamanhos máximos mostrados em Limite superior do número de clusters para um warehouse multicluster aplicam-se somente aos comandos CREATE WAREHOUSE e ALTER WAREHOUSE no SQL.
No campo Min Clusters, opcionalmente, selecione um valor maior que 1.
Insira outras informações para o warehouse, conforme necessário, e clique em Create Warehouse.
- SQL:
Execute um comando CREATE WAREHOUSE.
MAX_CLUSTER_COUNT
definido como um valor maior que1
. Para saber o valor mais alto que você pode especificar, dependendo do tamanho do warehouse, consulte Limite superior do número de clusters para um warehouse multicluster (neste tópico).
MIN_CLUSTER_COUNT
(opcionalmente) definido como um valor maior que1
.
Para ver informações sobre os warehouses multicluster que você criar:
- Snowsight:
Clique em Admin » Warehouses.
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. Você pode classificar pela coluna Clusters em ordem decrescente para listar os warehouses multiclusters na parte superior.
- Classic Console:
- SQL:
Execute um comando SHOW WAREHOUSES.
A saída inclui três colunas (
min_cluster_count
,max_cluster_count
,started_clusters
) que exibem as mesmas informações fornecidas na coluna Clusters na interface da web.Dica
Se a saída do SHOW WAREHOUSES for difícil de ler porque inclui muitas colunas, você pode segui-la com outra consulta que inclua apenas as colunas desejadas, juntamente com outras cláusulas para filtragem e classificação. Use uma consulta como a seguinte e ajuste-a para atender às suas necessidades. Os nomes das colunas estão entre aspas porque diferenciam maiúsculas de minúsculas na saída de SHOW WAREHOUSES.
-- Must do the SHOW first to produce the full result set. SHOW WAREHOUSES; -- result_scan() helps to customize a report using the result set from the previous query. SELECT "name", "state", "size", "max_cluster_count", "started_clusters", "type" FROM TABLE(result_scan(-1)) WHERE "state" IN ('STARTED','SUSPENDED') ORDER BY "type" DESC, "name";
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 em execução no modo Dimensionamento automático, o Snowflake oferece políticas de dimensionamento. O Snowflake usa as políticas de dimensionamento para determinar como ajustar a capacidade do seu warehouse multicluster, iniciando ou desativando clusters individuais enquanto o warehouse está em execução. Você pode especificar uma política de dimensionamento para fazer com que o Snowflake priorize a capacidade de resposta e a taxa de transferência das consultas nesse warehouse ou para minimizar os custos desse warehouse.
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, então 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 |
Um novo cluster começa… |
Um cluster inativo ou com carga leve é desativado… |
---|---|---|---|
Standard (padrão) |
Evita/minimiza a fila de espera priorizando a inicialização de clusters adicionais sobre a conservação de créditos. |
Quando uma consulta é enfileirada, ou se o Snowflake estima que os clusters em execução no momento não têm recursos suficientes para lidar com consultas adicionais, o Snowflake aumenta o número de clusters no warehouse. Para warehouses com um MAX_CLUSTER_COUNT de 10 ou menos, o Snowflake inicia um cluster adicional. Para warehouses com um MAX_CLUSTER_COUNT maior que 10, o Snowflake inicia vários clusters de uma vez para acomodar aumentos rápidos na carga de trabalho. |
Após um período prolongado de baixa carga, o Snowflake desativa um ou mais clusters menos carregados quando as consultas em execução neles terminam. Quando a contagem de clusters é superior a 10, o Snowflake pode desativar vários clusters ao mesmo tempo. Quando a contagem de clusters é de 10 ou menos, o Snowflake desliga os clusters ociosos, um de cada vez. |
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 um período prolongado de baixa carga, o Snowflake desativa um ou mais clusters menos carregados quando as consultas em execução neles terminam. Quando a contagem de clusters é superior a 10, o Snowflake pode desativar vários clusters ao mesmo tempo. Quando a contagem de clusters é de 10 ou menos, o Snowflake desliga os clusters ociosos, um de cada vez. |
Nota
Uma terceira política de dimensionamento, Legada, era fornecida anteriormente para compatibilidade com versões anteriores. A política legada foi removida. Todos os warehouses que estavam usando a política Legado agora usam a política Padrão.
Você pode definir a política de dimensionamento para um warehouse multicluster quando ele for criado ou a qualquer momento depois, seja na Snowsight ou usando o SQL:
- Snowsight:
Quando você seleciona Multi-cluster Warehouse em Advanced Options na caixa de diálogo New Warehouse, pode selecionar a política de dimensionamento na lista suspensa Scaling Policy.
Para um warehouse multicluster existente, clique em Admin » Warehouses. Em seguida, selecione Edit no menu More (…).
No campo Scaling Policy, selecione o valor desejado na lista suspensa.
Dica
A lista suspensa Scaling Policy só é exibida quando o warehouse selecionado é um warehouse multicluster e o valor máximo de clusters é maior do que o valor mínimo de clusters.
- 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:
CREATE WAREHOUSE mywh WITH MAX_CLUSTER_COUNT = 2, SCALING_POLICY = 'STANDARD'; 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 máximo e mínimo de clusters de um warehouse a qualquer momento, mesmo quando ele estiver em execução e executando instruções. Você pode ajustar os clusters máximo e mínimo para um warehouse na Snowsight ou usando o SQL:
- Snowsight:
Clique em Admin » Warehouses.
Clique no nome do warehouse para visualizar suas propriedades e o histórico de atividades. Selecione Edit no menu More (…). Você também pode desmarcar a caixa de seleção Multi-cluster Warehouse para redefinir as configurações de cluster máximo e mínimo para 1, alterando o warehouse para um de cluster único.
- Classic Console:
- SQL:
Execute um comando ALTER WAREHOUSE.
Nota
Atualmente, a Snowsight permite a atualização de MAX_CLUSTER_COUNT para um máximo de 10 clusters. Para aumentar MAX_CLUSTER_COUNT para mais de 10, use o comando ALTER WAREHOUSE no SQL.
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:
- Snowsight:
Clique em Admin » Warehouses e selecione o nome do warehouse.
Dessa forma, você pode monitorar um warehouse com detalhes precisos, como a visualização de consultas que estão em execução ou enfileiradas no momento.
Você também pode clicar em Monitoring » Query History. Essa página permite que você visualize a atividade em vários warehouses da sua conta. Para ver a atividade de só um warehouse, selecione Warehouse no menu suspenso Filters. Em seguida, selecione o nome do warehouse na lista.
- Classic Console:
Quando você monitora um warehouse multicluster, pode ver todas as consultas que o warehouse processou. Para cada consulta, você pode ver detalhes como o tempo que levou, quantos bytes foram escaneados e quantas linhas foram retornadas. Você também pode ver o cluster usado para executar cada instrução que o warehouse processou. Para escolher os detalhes a serem exibidos, selecione itens como Cluster Number, Duration, Rows e assim por diante no menu suspenso Columns.