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 do driver |
contagem worker |
Total de vCPUs |
SSD de disco permanente total (TB) |
SSD local total (TB) |
---|---|---|---|---|---|
XXS |
n2-highmem-8 |
1 x n2-highmem-8 |
16 |
.2 |
1.5 |
XS |
n2-highmem-8 |
2 x n2-highmem-8 |
24 |
.3 |
2.25 |
Pequeno |
n2-highmem-16 |
4 x n2-highmem-8 |
48 |
.5 |
4,5 |
Médio |
n2-highmem-32 |
8 x n2-highmem-8 |
96 |
.9 |
9 |
Grande |
n2-highmem-32 |
16 x n2-highmem-8 |
160 |
1.7 |
18 |
X-Large |
n2-highmem-64 |
32 x n2-highmem-8 |
320 |
3.3 |
30 |
XXL |
n2-highmem-64 |
64 x n2-highmem-8 |
576 |
6.5 |
54 |
XXXL |
n2-highmem-64 |
128 x n2-highmem-8 |
1088 |
12.9 |
102 |
XXXXL |
n2-highmem-64 |
256 x n2-highmem-8 |
2112 |
25.7 |
198 |
O tamanho da instância de todos os worker é n2-highmem-8.
Observação
As informações nesta tabela podem variar com base na disponibilidade do produto ou região e no tipo workspace .
Requisitos de cota da API Compute Engine
Os campos de cota relevantes do Compute Engine API são:
CPU N2
SSD de disco permanente (GB)
SSD local (GB)
Para obter mais informações sobre os requisitos de cota, consulte compute Engine API .
Aviso
SQL O warehouse não começará se o senhor não provisionar a CPU e o recurso de armazenamento necessários. Consulte API do Compute Engine. Se necessário, o senhor pode aumentar as cotas de recurso para apoiar o uso do SQL warehouse. Consulte Revisar e aumentar as cotas. Para obter informações sobre o custo do workspace, consulte o custo por workspace.
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.