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.