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 aprimora a capacidade do serverless SQL warehouse de processar um grande número de query de forma rápida e econômica. Usando recursos de previsão baseados em IA para analisar query recebidas e determinar a mais rápida e eficiente (Predictive IO), o IWM trabalha para garantir que as cargas de trabalho tenham a quantidade certa de recursos rapidamente. A key diferença está nas capacidades de IA do Databricks SQL para responder dinamicamente às demandas de carga de trabalho, em vez de usar limite estático.

Essa capacidade de resposta garante:

  • Upscaling rápido para adquirir mais compute quando necessário para manter a baixa latência.

  • admissão de query mais próxima da limitação do hardware.

  • Redução rápida para minimizar custos quando a demanda é baixa, proporcionando desempenho consistente com custos e recursos otimizados.

Quando uma query chega ao armazém, o IWM prevê o custo da query. Ao mesmo tempo, o IWM monitora em tempo real a capacidade compute disponível do warehouse. Em seguida, usando o modelo de aprendizado de máquina, o IWM prevê se a query recebida tem a compute necessária disponível na compute existente. Se não tiver a compute necessária, a query será adicionada à fila. Se tiver a compute necessária, a query começará a ser executada imediatamente.

O IWM monitora que a fila é monitorada aproximadamente a cada 10 segundos. Se a fila não estiver diminuindo com rapidez suficiente, autoscale entra em ação para obter mais compute rapidamente. Depois que a nova capacidade é adicionada, query na fila são admitidas nos novos clusters. Com serverless SQL warehouse, novos clusters podem ser adicionados rapidamente e mais de um cluster por vez pode ser criado. O número máximo de query em uma fila para todos os tipos SQL warehouse é 1.000.

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

1

3

XS

n2-highmem-8

2 x n2-highmem-8

24

1.5

4,5

Pequeno

n2-highmem-16

4 x n2-highmem-8

48

2,5

7.5

Médio

n2-highmem-32

8 x n2-highmem-8

96

4,5

15

Grande

n2-highmem-32

16 x n2-highmem-8

160

8,5

27

X-Large

n2-highmem-64

32 x n2-highmem-8

320

16,5

54

XXL

n2-highmem-64

64 x n2-highmem-8

576

32,5

102

XXXL

n2-highmem-64

128 x n2-highmem-8

1088

64,5

198

XXXXL

n2-highmem-64

256 x n2-highmem-8

2112

128,5

390

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 mais informações sobre requisitos de cota, consulte API Compute Engine .

Aviso

SQL warehouse não começará se você não provisionar a quantidade necessária de CPU e recurso de armazenamento. Consulte API Compute Engine. Se necessário, você pode aumentar as cotas de recursos para dar suporte ao uso do SQL warehouse. Consulte Revisar e aumentar cotas. Para obter informações sobre o custo do espaço de trabalho, consulte custo por espaço de trabalho.

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.