Partilhar via


Comportamento de colocação em fila e dimensionamento do SQL Warehouse

Este artigo explica o comportamento de dimensionamento, enfileiramento e dimensionamento automático de clusters de armazéns SQL.

Dimensionamento de um SQL warehouse sem servidor

Comece sempre com um tamanho de camiseta maior para seu armazém SQL sem servidor do que você acha que precisará e diminua o tamanho à medida que testa. Não comece com um tamanho de camiseta pequeno para seu armazém SQL sem servidor e suba. Em geral, comece com um único SQL warehouse sem servidor e confie no Azure Databricks para o tamanho certo com clusters sem servidor, priorizando cargas de trabalho e leituras rápidas de dados. Consulte Dimensionamento automático sem servidor e enfileiramento de consultas.

  • Para diminuir a latência de consulta para um determinado SQL warehouse sem servidor:
    • Se as consultas estiverem a derramar-se no disco, aumente o tamanho da t-shirt.
    • Se as consultas forem altamente paralelizáveis, aumente o tamanho da camiseta.
    • Se você estiver executando várias consultas ao mesmo tempo, adicione mais clusters para dimensionamento automático.
  • Para reduzir custos, tente diminuir o tamanho da camiseta sem derramar para o disco ou aumentar significativamente a latência.
  • Para ajudar a dimensionar corretamente seu SQL warehouse sem servidor, use as seguintes ferramentas:
    • Página de monitoramento: observe o pico de contagem de consultas. Se o pico enfileirado estiver 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 Bytes derramados no disco acima de 1). Consulte Perfil de consulta.

Nota

Para armazéns SQL sem servidor, os tamanhos de cluster podem, em alguns casos, usar tipos de instância diferentes dos listados na documentação para armazéns SQL profissionais e clássicos para um tamanho de cluster equivalente. Em geral, a relação preço/desempenho dos tamanhos de cluster para armazéns SQL sem servidor é semelhante à dos armazéns SQL profissionais e clássicos.

Dimensionamento automático sem servidor e enfileiramento de consultas

O Gerenciamento Inteligente de Carga de Trabalho (IWM) é um conjunto de recursos que aprimora a capacidade dos armazéns SQL sem servidor de processar um grande número de consultas de forma rápida e econômica. Usando recursos de previsão alimentados por IA para analisar consultas recebidas e determinar o mais rápido e eficiente (E/S preditiva), o IWM trabalha para garantir que as cargas de trabalho tenham a quantidade certa de recursos rapidamente. A principal diferença reside nos recursos de IA no Databricks SQL para responder dinamicamente às demandas de carga de trabalho, em vez de usar limites estáticos.

Esta capacidade de resposta garante:

  • Escalonamento rápido para adquirir mais computação quando necessário para manter baixa latência.
  • Consulta de admissão mais próxima da limitação do hardware.
  • Downscaling rápido para minimizar os custos quando a demanda é baixa, fornecendo desempenho consistente com custos e recursos otimizados.

Quando uma consulta chega ao depósito, o IWM prevê o custo da consulta. Ao mesmo tempo, o IWM monitora em tempo real a capacidade de computação disponível do armazém. Em seguida, usando modelos de aprendizado de máquina, o IWM prevê se a consulta de entrada tem a computação necessária disponível na computação existente. Se não tiver a computação necessária, a consulta será adicionada à fila. Se tiver a computação necessária, a consulta começa 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, o dimensionamento automático entra em ação para obter rapidamente mais computação. Depois que a nova capacidade é adicionada, as consultas em fila são admitidas nos novos clusters. Com armazéns SQL sem servidor, novos clusters podem ser adicionados rapidamente e mais de um cluster de cada vez pode ser criado. O número máximo de consultas em uma fila para todos os tipos de SQL warehouse é 1000.

Tamanhos de cluster para armazéns SQL profissionais e clássicos

A tabela nesta seção mapeia os tamanhos de cluster do SQL warehouse para o tamanho do driver de cluster do Azure Databricks e as contagens de trabalhadores. O tamanho do driver só se aplica a armazéns SQL profissionais e clássicos.

Tamanho do cluster Tipo de instância para driver (aplica-se somente a SQL warehouses profissionais e clássicos) Contagem de trabalhadores
2X-Pequeno Standard_E8ds_v4 1 x Standard_E8ds_v4
X-Pequeno Standard_E8ds_v4 2 x Standard_E8ds_v4
Pequena Standard_E16ds_v4 4 x Standard_E8ds_v4
Médio Standard_E32ds_v4 8 x Standard_E8ds_v4
Grande Standard_E32ds_v4 16 x Standard_E8ds_v4
X-Grande Standard_E64ds_v4 32 x Standard_E8ds_v4
2X-Grande Standard_E64ds_v4 64 x Standard_E8ds_v4
3X-Grande Standard_E64ds_v4 128 x Standard_E8ds_v4
4X-Grande Standard_E64ds_v4 256 x Standard_E8ds_v4

O tamanho da instância de todos os trabalhadores é Standard_E8ds_v4.

Cada driver e trabalhador tem oito discos gerenciados LRS padrão de 128 GB conectados. Os discos anexados são cobrados por hora.

Quota de vCPU do Azure necessária para armazéns SQL clássicos e profissionais

Para iniciar um armazém SQL clássico ou profissional, tem de ter uma quota de vCPU do Azure adequada para Standard_E8ds_v4 instâncias na sua conta do Azure. Use as seguintes diretrizes para determinar a cota vCPU necessária:

  • Se você tiver apenas um ou dois SQL warehouses, certifique-se de ter 8 vCPU do Azure disponíveis para cada núcleo no cluster. Isso garante que você tenha a vCPU do Azure adequada para contabilizar o reprovisionamento do seu depósito que acontece aproximadamente a cada 24 horas. Se seus armazéns SQL usam dimensionamento automático ou balanceamento de carga de vários clusters, talvez seja necessário aumentar o multiplicador.
  • À medida que o número de armazéns SQL aumenta, permita entre 4 e 8 vCPU do Azure para cada núcleo no cluster. A Databricks recomenda começar com um número maior e monitorar a estabilidade.
  • As vCPUs do Azure usadas por armazéns SQL são adicionais às vCPUs do Azure usadas por clusters usados por Data Science & Engineering ou por cargas de trabalho que não são Databricks.

Para solicitar cota vCPU adicional do Azure, consulte Cota padrão: aumentar limites por série de VM na documentação do Azure.

Nota

As informações nesta tabela podem variar com base na disponibilidade do produto ou região e no tipo de espaço de trabalho.

Enfileiramento e dimensionamento automático para armazéns SQL profissionais e clássicos

O Azure Databricks limita o número de consultas em um cluster atribuído a um SQL warehouse com base no custo para calcular seus resultados. O upscaling de clusters por armazém é baseado na taxa de transferência de consultas, na taxa de consultas de entrada e no tamanho da fila. O Azure Databricks recomenda um cluster para cada 10 consultas simultâneas. O número máximo de consultas em uma fila para todos os tipos de SQL warehouse é 1000.

O Azure Databricks adiciona clusters com base no tempo necessário para processar todas as consultas em execução no momento, todas as consultas enfileiradas e as consultas de entrada esperadas nos próximos dois minutos.

  • Se menos de 2 minutos, não escale.
  • Se houver 2 a 6 minutos, adicione 1 cluster.
  • Se 6 a 12 minutos, adicione 2 clusters.
  • Se 12 a 22 minutos, adicione 3 clusters.

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

Além disso, um armazém é sempre escalonado se uma consulta aguardar 5 minutos na fila.

Se a carga for baixa por 15 minutos, o Azure Databricks reduzirá o SQL warehouse. Ele mantém clusters suficientes para lidar com a carga de pico nos últimos 15 minutos. Por exemplo, se o pico de carga foi de 25 consultas simultâneas, o Azure Databricks manterá 3 clusters.

Enfileiramento de consultas para armazéns SQL pro e clássicos

O Azure Databricks enfileira consultas quando todos os clusters atribuídos ao depósito estão executando consultas em plena capacidade ou quando o depósito está no STARTING estado. O número máximo de consultas em uma fila para todos os tipos de SQL warehouse é 1000.

As consultas de metadados (por exemplo, DESCRIBE <table>) e as consultas de modificação de estado (por exemplo SET) nunca são enfileiradas, a STARTING menos que o depósito esteja no estado.