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.