Computação adaptativa¶
A computação adaptativa é um serviço de computação focado em fornecer alto desempenho com operações sem esforço. Ela substitui o mecanismo de computação fixo por um mecanismo que reconhece a carga de trabalho e se adapta automaticamente às suas consultas. O sistema decide como alocar recursos para obter o melhor desempenho, eliminando a necessidade de ajustes na infraestrutura.
Ao dimensionar recursos automaticamente e rotear consultas de forma inteligente, a computação adaptativa elimina a complexidade operacional associada ao gerenciamento tradicional de warehouses: dimensionamento manual de clusters, atualizações que causam interrupções e ajustes de desempenho manuais. Ela também incorpora os mais recentes aprimoramentos de hardware e desempenho, permitindo que os warehouses adaptativos executem significativamente mais consultas a um custo semelhante ao de Gen2.
Você acessa a computação adaptativa por meio de warehouses adaptativos. Com um warehouse adaptativo, você não precisa mais gerenciar:
Tamanho do warehouse (XSMALL, SMALL, MEDIUM, etc.).
Configurações de warehouse multicluster.
Configurações do Query Acceleration Service.
Semântica de suspensão e retomada.
O Snowflake cuida de tudo isso automaticamente, para que sua equipe possa se concentrar em trabalhar com os dados em vez de gerenciar a infraestrutura por trás deles.
Todos os trabalhos em todos os warehouses adaptativos de uma conta são encaminhados para um pool compartilhado de recursos computacionais. Esse pool é dedicado à sua conta: ele não é compartilhado com outras contas da sua organização e não é utilizado por outros tipos de warehouse, como o padrão, o interativo ou o otimizado para o Snowpark. Você ainda pode ter vários warehouses adaptativos por conta para agrupar workloads com características de desempenho e custo semelhantes, relatórios e governança.
Os warehouses adaptativos usam um modelo de cobrança baseado em consultas, em que o custo de cada consulta depende de fatores como a quantidade de recursos computacionais e de software que ela utiliza. Você ainda pode analisar os custos no nível do warehouse, pois todas as consultas executadas em um warehouse adaptativo somam-se ao custo total desse warehouse. A visibilidade de custos no nível da consulta não está disponível durante a versão preliminar pública, mas está planejada para disponibilidade geral.
As mesmas ferramentas de gerenciamento de custos estão disponíveis:
Orçamentos e monitores de recursos para governança de custos.
Exibições ACCOUNT_USAGE para observabilidade granular.
Você pode criar novos warehouses adaptativos ou converter warehouses padrão existentes em adaptativos sem tempo de inatividade. A conversão de warehouses existentes permite que você mantenha suas estruturas de chargeback e showback existentes e a segregação de carga de trabalho (análise versus ETL, warehouses baseados em equipe e assim por diante). Por exemplo, a equipe financeira pode usar um warehouse adaptativo e a equipe de engenharia pode usar outro.
Limitações¶
Os warehouses adaptativos exigem a Enterprise Edition (ou superior).
Durante a versão preliminar pública, os warehouses adaptativos estão disponíveis nas seguintes regiões: US West 2 (Oregon), EU West 1 (Ireland) e AP Northeast 1 (Tokyo).
As seguintes conversões ainda não são compatíveis:
Conversão de ou para um warehouse X5Large ou X6Large.
Conversão de ou para um warehouse otimizado para Snowpark ou interativo.
Gerenciando desempenho e taxa de transferência¶
Os warehouses adaptativos expõem duas propriedades principais para controlar o desempenho e a taxa de transferência:
MAX_QUERY_PERFORMANCE_LEVEL
QUERY_THROUGHPUT_MULTIPLIER
MAX_QUERY_PERFORMANCE_LEVEL¶
MAX_QUERY_PERFORMANCE_LEVEL expressa o limite superior de desempenho para qualquer consulta individual. Ele é definido no nível do warehouse e serve como mecanismo para instruir o sistema a «acelerar» ou «desacelerar» a execução da consulta.
A propriedade é expressa em unidades de tamanhos de amostras (XSMALL a X4LARGE). Cada tamanho transmite um nível de desempenho semelhante ou melhor do que o tamanho de warehouse clássico correspondente.
- Tipo:
{ XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE }- Padrão:
XLARGE
Semântica:
Valores maiores fornecem mais capacidade computacional por instrução, melhorando a latência para consultas grandes e complexas, e aumentam o gasto instantâneo potencial para uma única instrução.
Valores menores restringem o gasto por instrução, mas podem deixar consultas grandes mais lentas, ao mesmo tempo que deixam mais capacidade para simultaneidade.
Esse valor não é mapeado para uma configuração de computação subjacente específica. Ele expressa apenas um nível de desempenho: O Snowflake determina os recursos reais necessários para cada consulta.
Comportamento:
A computação adaptativa determina a computação ideal necessária para uma consulta com base no plano de consulta. Se o serviço determinar que as necessidades de computação para um desempenho ideal são maiores que MAX_QUERY_PERFORMANCE_LEVEL, o Snowflake vai limitá-las a MAX_QUERY_PERFORMANCE_LEVEL. Para consultas menores, o Snowflake escolhe a computação para um desempenho ideal abaixo de MAX_QUERY_PERFORMANCE_LEVEL, proporcional às necessidades da consulta.
Recomendação:
Defina MAX_QUERY_PERFORMANCE_LEVEL como o nível de desempenho de consulta mais alto que você considera aceitável para suas consultas maiores. Use orçamentos e monitores de recursos para controlar o gasto total ao longo do tempo.
QUERY_THROUGHPUT_MULTIPLIER¶
QUERY_THROUGHPUT_MULTIPLIER expressa o multiplicador utilizado para calcular a taxa de transferência máxima em qualquer momento. Em vez de especificar uma taxa de transferência máxima absoluta, você especifica um fator de escala de número inteiro acima do mínimo computado pelo sistema.
Para executar instruções N em paralelo no MAX_QUERY_PERFORMANCE_LEVEL, defina o multiplicador como N. Como MAX_QUERY_PERFORMANCE_LEVEL representa o limite superior, essa configuração normalmente é compatível com mais de N consultas executadas em paralelo, pois muitas consultas precisam de menos do que o máximo.
- Tipo:
Número inteiro não negativo
- Padrão:
2
Definir esse valor como 0 significa taxa de transferência ilimitada: o warehouse pode usar toda a capacidade de burst disponível, sem limite.
Semântica:
Quando definido com um valor positivo, a taxa de transferência máxima é calculada como:
Em que MINIMUM é uma capacidade base calculada pelo sistema para o MAX_QUERY_PERFORMANCE_LEVEL definido no warehouse.
Atua como um fator de escala nessa capacidade base computada pelo sistema.
Valores mais altos aumentam a taxa de transferência máxima (mais trabalho simultâneo) e reduzem o enfileiramento, ao custo de um gasto instantâneo potencialmente maior.
Valores mais baixos restringem a taxa de transferência de burst e reduzem o risco de picos repentinos de gastos, mas podem levar a enfileiramentos.
Comportamento:
O Snowflake calcula uma taxa de capacidade base interna para o warehouse com base em MAX_QUERY_PERFORMANCE_LEVEL, histórico de migração (tamanho clássico, número máximo de clusters, fator de escala de QAS) e outros parâmetros de ajuste do sistema.
QUERY_THROUGHPUT_MULTIPLIER multiplica pela capacidade base para determinar o número total de consultas que podem ser executadas simultaneamente. Quando o sistema está abaixo dessa meta, ele permite a execução da consulta. Quando atinge a meta, ele enfileira a consulta.
Recomendação:
Se você observar um tempo de enfileiramento de carga persistente e desejar maior taxa de transferência, aumente QUERY_THROUGHPUT_MULTIPLIER. Se você estiver mais preocupado em limitar os gastos instantâneos, reduza QUERY_THROUGHPUT_MULTIPLIER e confie em orçamentos e monitores de recursos para controles absolutos de custos.
Criar um warehouse adaptativo¶
Você pode criar um warehouse adaptativo usando o Snowsight, o SQL ou o Cortex Code.
Para criar um warehouse adaptativo usando o Snowsight:
Faça login no Snowsight.
No menu de navegação, selecione Compute » Warehouses.
Selecione +Warehouse.
Na lista suspensa Type, selecione Adaptive.
Como opção, selecione Advanced e configure:
Maximum query performance level (padrão: XLarge)
Query throughput multiplier (padrão: 2)
O warehouse é criado e pode ser utilizado normalmente.
Como alternativa ao uso do Snowsight, você pode criar um warehouse adaptativo usando o comando CREATE ADAPTIVE WAREHOUSE.
Isso cria um warehouse adaptativo usando os valores padrão (MAX_QUERY_PERFORMANCE_LEVEL = XLARGE, QUERY_THROUGHPUT_MULTIPLIER = 2). O Snowflake usa valores padrão conservadores e seguros para que você possa começar sem ajustes.
Você também pode especificar propriedades no momento da criação:
Para obter a sintaxe completa, exemplos adicionais e a lista de propriedades opcionais, consulte a seção Referência de SQL.
Você pode solicitar ao Cortex Code que crie um warehouse adaptativo usando linguagem natural. Por exemplo:
O Cortex Code gera e executa o SQL apropriado em seu nome.
Converter um warehouse padrão em um warehouse adaptativo¶
Você pode converter um warehouse padrão em adaptativo usando o Snowsight, o SQL ou o Código Cortex.
Nota
A conversão de um warehouse para ou de um warehouse adaptativo é uma operação online, o que significa que não envolve tempo de inatividade. Essa conversão não deixa o warehouse indisponível nem interrompe nenhuma consulta em execução.
Quando você converte um warehouse em um warehouse adaptativo ou de volta para um warehouse padrão, as consultas existentes que estavam sendo executadas nesse warehouse continuam a ser executadas até a conclusão utilizando os recursos de computação existentes. Ao mesmo tempo, o warehouse executa quaisquer novas consultas nos recursos de computação do novo tipo de warehouse. Enquanto as consultas existentes estiverem em execução, você será cobrado por ambos os conjuntos de recursos de computação. Se você estiver convertendo o warehouse de volta para um warehouse padrão, ele não será suspenso automaticamente durante esse período, independentemente de haver ou não consultas utilizando os novos recursos de computação. Quando as consultas existentes forem concluídas, a carga de trabalho será transferida inteiramente para os novos recursos de computação.
Para converter um warehouse padrão em um adaptativo usando o Snowsight:
Faça login no Snowsight.
No menu de navegação, selecione Compute » Warehouses » <warehouse_identifier>.
Selecione o menu … (três pontos) » Convert to Adaptive.
Confirme a operação.
Para converter um warehouse padrão em um adaptativo, use o comando ALTER WAREHOUSE para definir a propriedade WAREHOUSE_TYPE como ADAPTIVE. Por exemplo:
Para converter o warehouse adaptativo de volta em um warehouse padrão, altere a propriedade para STANDARD. Por exemplo:
Você pode solicitar ao Cortex Code que converta um warehouse usando linguagem natural. Por exemplo:
O Cortex Code gera e executa o SQL apropriado em seu nome.
Comportamento da propriedade durante a conversão¶
Ao converter um warehouse padrão em um adaptativo, a única propriedade que você precisa alterar é WAREHOUSE_TYPE. O Snowflake calcula automaticamente os valores apropriados para MAX_QUERY_PERFORMANCE_LEVEL e QUERY_THROUGHPUT_MULTIPLIER.
O sistema deriva esses valores da configuração existente do warehouse padrão:
Tamanho do warehouse.
MAX_CLUSTER_COUNT (para warehouses multicluster).
Fator de escala de QAS.
Geração do warehouse (geração de hardware/software).
O objetivo é preservar ou melhorar o desempenho em comparação com o warehouse padrão original, fornecer capacidade de burst suficiente para picos de carga típicos e evitar a necessidade de ajustes manuais ao mudar para o adaptativo.
Como opção, após a conversão você pode substituir MAX_QUERY_PERFORMANCE_LEVEL e QUERY_THROUGHPUT_MULTIPLIER usando ALTER WAREHOUSE. Propriedades do warehouse padrão, como WAREHOUSE_SIZE e MAX_CLUSTER_COUNT, não se aplicam mais após a conversão para o adaptativo, e as propriedades do adaptativo não se aplicam mais após a conversão de volta para o padrão.
Faturamento e preços¶
Os warehouses adaptativos usam um modelo de cobrança baseado em consultas. O custo de cada consulta depende de fatores como a quantidade de recursos computacionais e de software que ela utiliza, incluindo os tamanhos dos clusters e a capacidade adicional utilizada por recursos como o Query Acceleration Service (QAS). Você não é cobrado pela criação de um warehouse adaptativo: as cobranças começam quando a primeira consulta é executada.
Todas as consultas executadas em um warehouse adaptativo somam-se ao custo total desse warehouse; portanto, você pode continuar usando as estruturas de chargeback e showback existentes. O uso do warehouse adaptativo é relatado como parte de COMPUTE nas instruções de uso, utilizando créditos de warehouse virtual.
Você controla o desempenho e os gastos principalmente por meio de:
MAX_QUERY_PERFORMANCE_LEVEL: limita o nível de desempenho por instrução.
QUERY_THROUGHPUT_MULTIPLIER: limita a capacidade de burst geral a qualquer instante.
Orçamentos e monitores de recursos: controlam o gasto total ao longo do tempo em nível de conta ou de warehouse.
Padrões de configuração típicos:
Tipo de carga de trabalho |
Configuração |
|---|---|
Cargas de trabalho críticas e sensíveis à latência |
MAX_QUERY_PERFORMANCE_LEVEL superior (XLARGE ou superior). QUERY_THROUGHPUT_MULTIPLIER superior. Monitores de recursos ou orçamentos para manter os gastos agregados dentro do plano. |
Cargas de trabalho de alta taxa de transferência e sensíveis a custos |
MAX_QUERY_PERFORMANCE_LEVEL moderado (MEDIUM ou LARGE). QUERY_THROUGHPUT_MULTIPLIER médio para equilibrar a taxa de transferência com picos de gastos. |
Cargas de trabalho com orçamentos restritos |
MAX_QUERY_PERFORMANCE_LEVEL inferior. QUERY_THROUGHPUT_MULTIPLIER inferior. Orçamentos rigorosos e monitores de recursos. |
Você pode usar as exibições ACCOUNT_USAGE para recuperar dados granulares sobre o consumo de crédito para um warehouse adaptativo específico. Use Exibição WAREHOUSE_METERING_HISTORY para visualizar o consumo de crédito do seu warehouse. Para obter uma lista completa das exibições relevantes, consulte Visualizações do uso da conta.
Para obter mais informações sobre o custo de computação, consulte Explicação dos custos de computação.
Referência de SQL¶
CREATE ADAPTIVE WAREHOUSE¶
Cria um novo warehouse virtual adaptativo.
Você também pode criar um warehouse adaptativo usando a sintaxe padrão CREATE WAREHOUSE com WAREHOUSE_TYPE = 'ADAPTIVE':
Nota
Propriedades de um warehouse padrão, como WAREHOUSE_SIZE, MIN_CLUSTER_COUNT, MAX_CLUSTER_COUNT e SCALING_POLICY, não podem ser definidas em um warehouse adaptativo. Da mesma forma, propriedades de um warehouse adaptativo, como MAX_QUERY_PERFORMANCE_LEVEL e QUERY_THROUGHPUT_MULTIPLIER, não podem ser definidas em um warehouse padrão.
Parâmetros obrigatórios¶
nameIdentificador para o warehouse virtual adaptativo. Deve ser único para sua conta. Deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que estejam entre aspas duplas. Consulte Identificadores de objetos para obter mais detalhes.
Propriedades opcionais¶
MAX_QUERY_PERFORMANCE_LEVEL = { XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE }Limite superior no nível de desempenho para uma única instrução, expresso como um tamanho de amostra. Padrão:
XLARGE.O Snowflake escolhe um nível de desempenho até esse limite com base nas características da instrução. Instruções menores podem ser executadas em um nível de desempenho inferior para reduzir os gastos. Escolha um valor apropriado para suas maiores consultas.
Para obter mais detalhes, consulte Gerenciando desempenho e taxa de transferência.
QUERY_THROUGHPUT_MULTIPLIER = <integer>Multiplicador utilizado para calcular a taxa de transferência máxima em qualquer momento, expresso como um fator de escala de número inteiro não negativo sobre o mínimo computado pelo sistema. Valores mais altos aumentam a taxa de transferência máxima (mais trabalho simultâneo) e reduzem o enfileiramento, ao custo de um gasto instantâneo potencialmente maior. Valores mais baixos restringem a taxa de transferência de burst e reduzem o risco de picos repentinos de gastos, mas podem levar a enfileiramentos. Um valor de
0significa taxa de transferência ilimitada.Padrão:
2.Para obter mais detalhes, consulte Gerenciando desempenho e taxa de transferência.
STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = <num>Tempo máximo, em segundos, que uma instrução SQL pode permanecer enfileirada no warehouse antes que o Snowflake a cancele. Consulte Parâmetros para obter mais detalhes.
STATEMENT_TIMEOUT_IN_SECONDS = <num>Tempo máximo, em segundos, que uma instrução SQL em execução pode ser executada antes que o Snowflake a cancele. Consulte Parâmetros para obter mais detalhes.
Exemplos¶
Crie um warehouse adaptativo com valores padrão:
Crie com um nível de desempenho específico:
Crie com ambas as propriedades:
Crie usando a sintaxe CREATE WAREHOUSE do padrão:
ALTER WAREHOUSE (adaptativo)¶
Você pode usar ALTER WAREHOUSE para converter um warehouse padrão em adaptativo, modificar as propriedades de um warehouse adaptativo ou converter um warehouse adaptativo de volta para o padrão.
Converta um warehouse padrão em adaptativo:
Modifique as propriedades de um warehouse adaptativo após a criação ou conversão:
Converta um warehouse adaptativo de volta para o padrão:
SHOW WAREHOUSES¶
O recurso de warehouse adaptativo introduz novas colunas ao comando SHOW WAREHOUSES. As propriedades que não se aplicam a warehouses adaptativos são exibidas como NULL.
As colunas específicas para warehouses adaptativos incluem:
Nome da coluna |
Descrição |
|---|---|
STATE |
Uma das opções:
|
MAX_QUERY_PERFORMANCE_LEVEL |
Expresso como um tamanho de amostra. Limite superior no nível de desempenho por instrução. |
QUERY_THROUGHPUT_MULTIPLIER |
Fator de escala de número inteiro que controla quanta capacidade de burst o warehouse pode usar a qualquer instante. |
DISABLED_REASONS |
Um ou mais motivos pelos quais o warehouse adaptativo foi desativado. |
Visualizações do uso da conta¶
As seguintes exibições ACCOUNT_USAGE estão disponíveis para warehouses adaptativos:
Nota
Para warehouses adaptativos, o uso de QAS está incluído nos créditos de computação e não aparece como uma coluna de crédito separada. Use Exibição WAREHOUSE_LOAD_HISTORY para monitorar o comportamento de enfileiramento e entender se deve ajustar MAX_QUERY_PERFORMANCE_LEVEL ou QUERY_THROUGHPUT_MULTIPLIER.
A seguinte consulta de amostra produz uma série temporal de dados de desempenho em nível de warehouse para qualquer warehouse que tenha executado pelo menos uma consulta no estado ADAPTIVE dentro de um período de retrospectiva especificado.
Migração em massa de warehouses padrão para adaptativos¶
Se você quiser migrar vários warehouses padrão para adaptativos simultaneamente, poderá usar a função SYSTEM$BULK_UPDATE_WH.
Parâmetro |
Descrição |
Valores permitidos |
|---|---|---|
property_name |
A propriedade do warehouse a ser atualizada. |
|
new_value |
Novo valor para a propriedade. |
|
property_filter |
Filtro JSON nas propriedades do warehouse (por exemplo, padrão de nome, tamanho). Os warehouses que correspondem a todos os filtros são considerados para atualização. |
|
tag_filter |
Filtro JSON em tags. Os warehouses devem corresponder a todas as tags especificadas para serem selecionados. |
|
execution_mode |
Modo de operação: execute a atualização ou um efetue um dry run. |
|
Sugestão de uso:
Primeiro, efetue um dry run e revise os resultados:
Revise a saída e ajuste os filtros, se necessário.
Depois de verificar o dry run, chame a função novamente usando o modo ativo:
Revise cuidadosamente os resultados e quaisquer erros antes de repetir ou ampliar o escopo da migração.