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