Comportamento de dimensionamento, escala e enfileiramento do SQL warehouse
Este artigo explica como dimensionar, escalonar e gerenciar filas de consulta para Databricks SQL warehouses para otimizar o desempenho e o custo. Databricks recomenda o uso de um serverless SQL warehouse para a maioria das cargas de trabalho. O armazém sem servidor SQL oferece o melhor desempenho e eficiência ao gerenciar dinamicamente o recurso para suas consultas.
sem servidor SQL warehouse management
O armazém sem servidor SQL usa o Intelligent Workload Management (IWM) para gerenciar automaticamente as cargas de trabalho de consulta. O IWM é um conjunto de recursos com tecnologia AIque processa consultas de forma rápida e econômica sem exigir que o senhor gerencie a infraestrutura.
Gerenciamento inteligente de carga de trabalho e dimensionamento automático
O IWM usa o modelo de aprendizado de máquina para gerenciar dinamicamente o recurso compute:
-
Quando uma nova consulta chega, o IWM prevê seus requisitos de recurso e verifica a capacidade disponível.
- Se houver capacidade, a consulta começará imediatamente.
- Caso contrário, a consulta será colocada em uma fila.
-
O IWM monitora continuamente a fila. Se o tempo de espera aumentar, o autoscaler provisionará rapidamente mais clustering para processar as consultas em fila.
-
Quando a demanda cai, a IWM reduz o recurso para reduzir os custos, mantendo a capacidade suficiente para lidar com os picos de carga recentes.
Essa abordagem fornece:
- Aumento rápido de escala para manter a baixa latência de consulta.
- Alta taxa de transferência, admitindo consultas assim que o hardware estiver disponível.
- Redução rápida de escala para economizar custos durante a baixa demanda.
Dimensionando um serverless SQL warehouse
tamanho do clustering (por exemplo, X-Small, Medium, Large) determina o compute recurso disponível para um único clustering. O autoscaler adiciona ou remove o clustering desse tamanho conforme necessário.
Use as diretrizes a seguir para ajudar a escolher o tamanho certo:
- começar com um único depósito maior e deixar que o serverless recurso gerencie a simultaneidade e o desempenho. Geralmente, é mais eficiente reduzir o tamanho, se necessário, do que começar pequeno e aumentar a escala.
- Se as consultas estiverem sendo transferidas para o disco, aumente o tamanho do clustering. Verifique se há vazamentos no perfil de consulta.
- Para cargas de trabalho com muitas consultas concorrentes, configure um número máximo suficiente de clustering para lidar com cargas de pico. Monitore as métricas de Peak Queued Queries na página de monitoramento do warehouse.
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.
monitoramento warehouse desempenho
O senhor pode monitorar e dimensionar corretamente qualquer SQL warehouse usando essas ferramentas. O número máximo de consultas em uma fila para todos os tipos de depósito é 1.000.
- página de monitoramento: Na página SQL warehouse monitoramento tab, verifique Peak Queued Queries (Consultas de pico enfileiradas ). Um valor consistente acima de 0 indica que o senhor pode precisar de um tamanho maior de clustering ou de mais clustering.
- Histórico de consultas: Analise o desempenho histórico da consulta para identificar gargalos.
- Perfil da consulta: Inspecionar os planos de execução em busca de métricas como Bytes spilled to disk , o que indica que o tamanho do warehouse pode ser muito pequeno.
Armazém clássico e profissional SQL
Os depósitos clássicos e profissionais usam um modelo de dimensionamento manual em que o usuário configura o número de clusters.
Dimensionamento e provisionamento de clustering
Ao criar um depósito clássico ou profissional, escolha um tamanho de cluster e defina o número mínimo e máximo de cluster. Essas SKUs têm um limite fixo de um clustering para cada 10 consultas concorrentes.
A tabela a seguir mostra os tamanhos de clustering com as respectivas contagens de driver e worker. Todos os trabalhadores usam instâncias do i3.2xlarge
.
Tamanho do cluster | Tipo de instância do driver | contagem de trabalhadores |
---|---|---|
XXS | i3.2 x large | 1 |
XS | i3.2 x large | 2 |
Pequeno | i3.4xlarge | 4 |
Médio | i3.8x large | 8 |
Grande | i3.8x large | 16 |
X-Large | i3.16x large | 32 |
XXL | i3.16x large | 64 |
XXXL | i3.16x large | 128 |
XXXXL | i3.16x large | 256 |
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 siteAWS.
As informações dessa tabela podem variar de acordo com a disponibilidade do produto ou região e o tipo de workspace.
Lógica de enfileiramento e autoescala
Para armazéns clássicos e profissionais, o autoscale adiciona clustering com base no tempo estimado para processar todas as consultas em execução e em fila:
- 2 a 6 minutos de carga de consulta: Adicionar 1 clustering.
- 6-12 minutos: Adicionar 2 agrupamentos.
- 12 a 22 minutos: Adicionar 3 agrupamentos.
- Mais de 22 minutos: Adicione 3 clusters e mais 1 para cada 15 minutos adicionais de carga.
Regras adicionais:
- Se uma consulta aguardar na fila por 5 minutos, o armazém aumenta.
- Se a carga permanecer baixa por 15 minutos consecutivos, o armazém reduz ao mínimo necessário para lidar com o pico de carga daquele período.