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 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

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.