Dimensionamento, escalonamento e comportamento de enfileiramento SQL warehouse
Este artigo explica o dimensionamento clusters , o enfileiramento e o comportamento autoscale do SQL warehouse.
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 cluster 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 da consulta e o número de consultas concorrentes também são key fatores de desempenho.
Databricks SQL Os armazéns usam a simultaneidade dinâmica para lidar com essas demandas. Ao contrário dos armazéns de 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 cluster para o armazém SQL
A tabela nesta seção mapeia SQL warehouse clusters os tamanhos para o clusters tamanho do driver do Databricks e as worker contagens . O tamanho do driver se aplica apenas ao SQL warehouse profissional e clássico.
Observação
Para serverless SQL warehouse, os tamanhos cluster podem, em alguns casos, usar tipos de instância diferentes dos listados na documentação para pro e classic SQL warehouse para tamanho equivalente cluster. Em geral, a relação preço/desempenho dos tamanhos cluster para serverless SQL warehouse é semelhante à do pro e do classic SQL warehouse.
Tamanho do cluster |
Tipo de instância para driver (aplica-se apenas ao SQL warehouse profissional e clássico) |
contagem worker |
---|---|---|
XXS |
i3.2xgrande |
1 x i3.2xgrande |
XS |
i3.2xgrande |
2 x i3.2xgrande |
Pequeno |
i3.4xgrande |
4 x i3.2xgrande |
Médio |
i3.8xgrande |
8 x i3.2xgrande |
Grande |
i3.8xgrande |
16 x i3.2xgrande |
X-Large |
i3.16xgrande |
32 x i3.2xgrande |
XXL |
i3.16xgrande |
64 x i3.2xgrande |
XXXL |
i3.16xgrande |
128 x i3.2xgrande |
XXXXL |
i3.16xgrande |
256 x i3.2xgrande |
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
.
Observação
As informações nesta tabela podem variar com base na disponibilidade do produto ou região e no tipo workspace .
Zonas de disponibilidade (AZ) para SQL warehouseprofissional e clássico
Para SQL warehouse, as zonas de disponibilidade da AWS são definidas como automáticas (Auto-AZ), onde 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 a AWS retornar erros de capacidade insuficiente. Para obter mais informações sobre zonas de disponibilidade, consulte a documentação da AWS.
Enfileiramento e autoscale para SQL warehouseprofissional e clássico
Databricks limita o número de consultas em um cluster atribuído a um SQL warehouse com base no custo para compute seus resultados. O aumento de clusters por depósito é baseado na taxa de transferência de consultas, na taxa de consultas recebidas e no tamanho da fila. Databricks recomenda um cluster para cada 10 consultas concorrente. O número máximo de consultas em uma fila para todos os tipos de SQL warehouse é 1000.
Databricks adiciona clusters com base no tempo que levaria para processar todas query em execução no momento, todas query na fila e a query recebida esperada nos próximos dois minutos.
Se for menos de 2 minutos, não aprimore.
Se for de 2 a 6 minutos, adicione 1 clusters.
Se for de 6 a 12 minutos, adicione 2 clusters.
Se for de 12 a 22 minutos, adicione 3 clusters.
Caso contrário, o Databricks adiciona 3 clusters mais 1 cluster para cada 15 minutos adicionais de carga query esperada.
Além disso, um warehouse sempre será ampliado se uma query aguardar 5 minutos na fila.
Se a carga ficar baixa por 15 minutos, o Databricks reduz o SQL warehouse. Ele mantém clusters suficientes para lidar com o pico de carga dos últimos 15 minutos. Por exemplo, se o pico de carga foi de 25 query simultâneas, o Databricks mantém 3 clusters.
autoscale 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. Ele gerencia dinamicamente as cargas de trabalho usando o modelo do machine learning para prever as demandas de recurso das consultas recebidas e, ao mesmo tempo, monitora a capacidade disponível do armazém compute 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 do machine learning, 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 armazém SQL warehousesem servidor
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, o senhor começa com um único serverless SQL warehouse e confia em Databricks para dimensionar corretamente com serverless clusters, priorizando cargas de trabalho e leituras rápidas de dados. Consulte escala automática sem servidor e enfileiramento de consultas.
Para diminuir query a latência para um determinado serverless SQL warehouse:
Se query estiver vazando para o disco, aumente o tamanho da camiseta.
Se a query for altamente paralelizável, aumente o tamanho da camiseta.
Se você estiver executando várias query ao mesmo tempo, adicione mais clusters para autoscale.
Para reduzir os custos, tente diminuir o tamanho sem derramar no 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 clusters. 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.