Dimensionamento, escalonamento e comportamento de enfileiramento SQL warehouse

Este artigo explica o dimensionamento clusters , o enfileiramento e o comportamento autoscale do SQL warehouse.

Dimensionando um armazém SQL warehousesem servidor

Sempre comece com um tamanho de camiseta maior para seu serverless SQL warehouse do que você acha que precisará e diminua conforme você testa. Não comece com uma camiseta pequena para seu serverless SQL warehouse e aumente. Em geral, comece com um único e conte com serverless SQL warehouse o Databricks para serverless dimensionar corretamente com clusters , priorizando cargas de trabalho e leituras rápidas de dados. Consulte autoscale sem servidor e enfileiramento query .

  • 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 custos, tente diminuir o tamanho da camiseta sem derramar no disco ou aumentar significativamente a latência.

  • Para ajudar a dimensionar corretamente seu serverless SQL warehouse, use as seguintes ferramentas:

    • Página de monitoramento: veja 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.

Observação

Para serverless SQL warehouse, os clusters tamanhos podem, em alguns casos, usar tipos de instância diferentes daqueles listados na documentação do Pro e Clássico SQL warehouse para um clusters tamanho equivalente. Em geral, a relação preço/desempenho dos clusters tamanhos para serverless SQL warehouse é semelhante àquela do Pro e SQL warehouse Clássico.

autoscale sem servidor e enfileiramento de consultas

O Intelligent Workload Management (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 aproximadamente a cada 10 segundos. Se a fila não estiver diminuindo com rapidez suficiente, o autoscale entra em ação para obter mais rapidamente 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.

tamanhos clusters para SQL warehouseprofissional e clássico

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.

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 da API compute Engine 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

O SQL warehouse não começará se o senhor não provisionar a quantidade necessária de CPU e recurso de armazenamento. Consulte API do Compute Engine. Se necessário, o senhor pode aumentar as cotas de recurso para dar suporte ao seu 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

O Databricks limita o número de query em clusters atribuídos a um SQL warehouse com base no custo para compute os seus resultados. O upscaling de clusters por warehouse é baseado na taxa de transferência query , na taxa de query recebida e no tamanho da fila. Databricks recomenda clusters para cada 10 query simultâneas. O número máximo de query em uma fila para todos os tipos SQL warehouse é 1.000.

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.

Enfileiramento de consultas para SQL warehouseprofissional e clássico

As filas do Databricks query quando todos os clusters atribuídos ao armazém estão executando query em capacidade total ou quando o armazém está no estado STARTING. O número máximo de query em uma fila para todos os tipos SQL warehouse é 1.000.

query de metadados (por exemplo, DESCRIBE <table>) e query de modificação de estado (por exemplo, SET) nunca são enfileiradas, a menos que o warehouse esteja no estado STARTING.