Comportamento de dimensionamento, escala e enfileiramento do SQL warehouse
Este artigo explica o dimensionamento de clustering, o enfileiramento e o comportamento de escala automática do armazém SQL.
Visão geral do dimensionamento
SQL O warehouse está disponível nos tipos serverless, pro e classic, que têm diferentes desempenho recurso e otimizações que podem afetar o desempenho da consulta em seu warehouse. Consulte SQL warehouse types. Databricks recomenda o uso do armazém serverless SQL quando disponível.
Para qualquer tipo de depósito, o senhor escolhe um tamanho de clustering para seu compute recurso. A otimização do tamanho do seu warehouse Databricks SQL envolve mais do que apenas considerar o volume de dados ou o número de usuários. A complexidade das consultas e o número de consultas concorrentes também são key fatores de desempenho.
Databricks SQL Os armazéns usam simultaneidade dinâmica para lidar com essas demandas. Diferentemente dos armazéns com capacidade estática, o Databricks SQL ajusta o compute recurso em tempo real para gerenciar cargas concorrentes e maximizar a taxa de transferência. Cada categoria de tamanho de armazém tem uma capacidade compute fixa por unidade, mas o sistema escala o número de recursos para acomodar demandas variáveis.
tamanhos de agrupamento para o armazém SQL
A tabela nesta seção mapeia os tamanhos dos clusters SQL warehouse para o tamanho do driver de clustering Databricks e as contagens worker. O tamanho do driver só se aplica ao armazém pro e classic SQL.
Para serverless SQL warehouse, os tamanhos de clustering podem, em alguns casos, usar tipos de instância diferentes dos listados na documentação para pro e classic SQL warehouse para tamanho de clustering equivalente. Em geral, a relação preço/desempenho dos tamanhos de clustering para o serverless SQL warehouse é semelhante à do pro e do classic SQL warehouse.
Tamanho do cluster | Tipo de instância para o driver (aplica-se somente ao armazém pro e classic SQL ) | contagem de trabalhadores |
---|---|---|
XXS | i3.2 x large | 1 x i3.2 x grande |
XS | i3.2 x large | 2 x i3.2 x grande |
Pequeno | i3.4xlarge | 4 x i3.2 x grande |
Médio | i3.8x large | 8 x i3.2 x grande |
Grande | i3.8x large | 16 x i3.2 x grande |
X-Large | i3.16x large | 32 x i3.2 x grande |
XXL | i3.16x large | 64 x i3.2 x grande |
XXXL | i3.16x large | 128 x i3,2 x grande |
XXXXL | i3.16x large | 256 x i3,2 x grande |
O tamanho da instância de todos os trabalhadores é i3.2xlarge. Se o site workspace tiver o perfil de segurançacompliance ativado, os armazéns usarão tipos de instância i3en
em vez de i3
.
As informações dessa tabela podem variar de acordo com a disponibilidade do produto ou região e o tipo de workspace.
Zonas de disponibilidade (AZ) para o armazém pro e classic SQL
Para o depósito SQL, as zonas de disponibilidade AWS são definidas como automáticas (Auto-AZ), em que a AZ é selecionada automaticamente com base nos IPs disponíveis nas sub-redes workspace. O Auto-AZ tenta novamente em outras zonas de disponibilidade se o AWS retornar erros de capacidade insuficiente. Para obter mais informações sobre zonas de disponibilidade, consulte a documentação do AWS.
Enfileiramento e escala automática para o armazém pro e clássico SQL
Databricks limita o número de consultas em um clustering atribuído a um SQL warehouse com base no custo para compute seus resultados. O aumento do clustering por depósito é baseado na taxa de transferência de consultas, na taxa de consultas recebidas e no tamanho da fila. Databricks recomenda um clustering para cada 10 consultas concorrentes. O número máximo de consultas em uma fila para todos os tipos de SQL warehouse é 1000.
Databricks adiciona clustering com base no tempo que levaria para processar todas as consultas em execução no momento, todas as consultas na fila e as consultas de entrada esperadas nos próximos dois minutos.
- Se tiver menos de 2 minutos, não faça um upgrade.
- Se for de 2 a 6 minutos, adicione 1 agrupamento.
- Se for de 6 a 12 minutos, adicione 2 cachos.
- Se for de 12 a 22 minutos, adicione 3 agrupamentos.
Caso contrário, o site Databricks adiciona 3 clusters mais 1 clustering para cada 15 minutos adicionais de carga de consulta esperada.
Além disso, um depósito sempre é ampliado se uma consulta esperar 5 minutos na fila.
Se a carga estiver baixa por 15 minutos, o site Databricks reduz a escala do SQL warehouse. Ele mantém clustering suficiente para lidar com o pico de carga nos últimos 15 minutos. Por exemplo, se o pico de carga for de 25 consultas concorrente, o site Databricks mantém 3 clusters.
escala automática sem servidor e enfileiramento de consultas
O gerenciamento inteligente de carga de trabalho (IWM) é um conjunto de recursos que aumenta a capacidade do armazém serverless SQL de processar um grande número de consultas de forma rápida e econômica. compute Ele gerencia dinamicamente as cargas de trabalho usando o modelo de aprendizado de máquina para prever as demandas de recurso das consultas recebidas e, ao mesmo tempo, monitora a capacidade disponível do armazém em tempo real. O acompanhamento desses e de outros sinais no armazém permite que o IWM responda às mudanças nas demandas de carga de trabalho.
Esse gerenciamento dinâmico permite que o IWM faça o seguinte:
- Aumente rapidamente a escala compute para manter a baixa latência.
- Forneça a admissão de consultas a taxas mais próximas da limitação do hardware.
- Reduza rapidamente a escala para minimizar os custos quando a demanda é baixa.
Quando uma consulta chega ao depósito, o IWM prevê seu custo. Ao mesmo tempo, o IWM monitora o tempo real da capacidade disponível do armazém compute. Em seguida, usando o modelo de aprendizado de máquina, o IWM prevê se a consulta recebida tem o compute necessário disponível no compute existente. Se não tiver o compute necessário, a consulta será adicionada à fila. Se ele tiver o compute necessário, a consulta começará a ser executada imediatamente.
O IWM monitora a fila em tempo real. Se a fila não estiver diminuindo com rapidez suficiente, o autoscale provisionará automaticamente mais compute. Depois que a nova capacidade é adicionada, as consultas em fila são admitidas no novo recurso compute. Com o armazém serverless SQL , novos compute podem ser adicionados rapidamente. O número máximo de consultas em uma fila para todos os tipos de SQL warehouse é 1000.
Dimensionando um serverless SQL warehouse
Comece com um tamanho maior para o seu serverless SQL warehouse do que o que o senhor acha que vai precisar e diminua o tamanho conforme for testando. Não comece com um tamanho pequeno para seu serverless SQL warehouse e vá aumentando. Em geral, comece com um único serverless SQL warehouse e conte com Databricks para dimensionar corretamente com serverless clustering, priorizando cargas de trabalho e leituras rápidas de dados. Consulte autoscale sem servidor e enfileiramento de consultas.
-
Para diminuir a latência da consulta para um determinado serverless SQL warehouse:
- Se as consultas estiverem sendo enviadas para o disco, aumente o tamanho da camiseta.
- Se as consultas forem altamente paralelizáveis, aumente o tamanho da camiseta.
- Se o senhor estiver executando várias consultas ao mesmo tempo, adicione mais clustering para a escala automática.
-
Para reduzir os custos, tente reduzir o tamanho sem se espalhar para o disco ou aumentar significativamente a latência.
Ferramentas para monitorar e avaliar o desempenho
Para ajudar a dimensionar corretamente seu SQL warehouse, use as seguintes ferramentas:
- Página de monitoramento: Revise a contagem de consultas de pico. Se o pico da fila for geralmente acima de um, adicione clustering. O número máximo de consultas em uma fila para todos os tipos de SQL warehouse é 1000. Consulte Monitorar um SQL warehouse.
- Histórico de consultas. Consulte Histórico de consultas.
- Perfis de consulta (procure por Bytes derramados no disco acima de 1). Consulte Perfil de consulta.