Pular para o conteúdo principal

Comportamento de dimensionamento, escala e enfileiramento do SQL warehouse

Este artigo explica o dimensionamento de clustering, o enfileiramento e o comportamento de escala automática do armazém SQL.

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 clustering 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 das consultas e o número de consultas concorrentes também são key fatores de desempenho.

Databricks SQL Os armazéns usam simultaneidade dinâmica para lidar com essas demandas. Diferentemente dos armazéns com 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 agrupamento para o armazém SQL

A tabela nesta seção mapeia os tamanhos dos clusters SQL warehouse para o tamanho do driver de clustering Databricks e as contagens worker. O tamanho do driver só se aplica ao armazém pro e classic SQL.

nota

Para serverless SQL warehouse, os tamanhos de clustering podem, em alguns casos, usar tipos de instância diferentes dos listados na documentação para pro e classic SQL warehouse para tamanho de clustering equivalente. Em geral, a relação preço/desempenho dos tamanhos de clustering para o serverless SQL warehouse é semelhante à do pro e do classic SQL warehouse.

Tamanho do cluster

Tipo de instância para o driver (aplica-se somente ao armazém pro e classic SQL )

contagem de trabalhadores

XXS

i3.2 x large

1 x i3.2 x grande

XS

i3.2 x large

2 x i3.2 x grande

Pequeno

i3.4xlarge

4 x i3.2 x grande

Médio

i3.8x large

8 x i3.2 x grande

Grande

i3.8x large

16 x i3.2 x grande

X-Large

i3.16x large

32 x i3.2 x grande

XXL

i3.16x large

64 x i3.2 x grande

XXXL

i3.16x large

128 x i3,2 x grande

XXXXL

i3.16x large

256 x i3,2 x grande

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.

nota

As informações dessa tabela podem variar de acordo com a disponibilidade do produto ou região e o tipo de workspace.

Zonas de disponibilidade (AZ) para o armazém pro e classic SQL

Para o depósito SQL, as zonas de disponibilidade AWS são definidas como automáticas (Auto-AZ), em que 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 o AWS retornar erros de capacidade insuficiente. Para obter mais informações sobre zonas de disponibilidade, consulte a documentação do AWS.

Enfileiramento e escala automática para o armazém pro e clássico SQL

Databricks limita o número de consultas em um clustering atribuído a um SQL warehouse com base no custo para compute seus resultados. O aumento do clustering por depósito é baseado na taxa de transferência de consultas, na taxa de consultas recebidas e no tamanho da fila. Databricks recomenda um clustering para cada 10 consultas concorrentes. O número máximo de consultas em uma fila para todos os tipos de SQL warehouse é 1000.

Databricks adiciona clustering com base no tempo que levaria para processar todas as consultas em execução no momento, todas as consultas na fila e as consultas de entrada esperadas nos próximos dois minutos.

  • Se tiver menos de 2 minutos, não faça um upgrade.
  • Se for de 2 a 6 minutos, adicione 1 agrupamento.
  • Se for de 6 a 12 minutos, adicione 2 cachos.
  • Se for de 12 a 22 minutos, adicione 3 agrupamentos.

Caso contrário, o site Databricks adiciona 3 clusters mais 1 clustering para cada 15 minutos adicionais de carga de consulta esperada.

Além disso, um depósito sempre é ampliado se uma consulta esperar 5 minutos na fila.

Se a carga estiver baixa por 15 minutos, o site Databricks reduz a escala do SQL warehouse. Ele mantém clustering suficiente para lidar com o pico de carga nos últimos 15 minutos. Por exemplo, se o pico de carga for de 25 consultas concorrente, o site Databricks mantém 3 clusters.

escala automática 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. compute Ele gerencia dinamicamente as cargas de trabalho usando o modelo de aprendizado de máquina para prever as demandas de recurso das consultas recebidas e, ao mesmo tempo, monitora a capacidade disponível do armazém 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 de aprendizado de máquina, 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 serverless SQL warehouse

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, comece com um único serverless SQL warehouse e conte com Databricks para dimensionar corretamente com serverless clustering, priorizando cargas de trabalho e leituras rápidas de dados. Consulte autoscale sem servidor e enfileiramento de consultas.

  • Para diminuir a latência da consulta para um determinado serverless SQL warehouse:

    • Se as consultas estiverem sendo enviadas para o disco, aumente o tamanho da camiseta.
    • Se as consultas forem altamente paralelizáveis, aumente o tamanho da camiseta.
    • Se o senhor estiver executando várias consultas ao mesmo tempo, adicione mais clustering para a escala automática.
  • Para reduzir os custos, tente reduzir o tamanho sem se espalhar para o 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 clustering. 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.