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.

Visão geral do dimensionamento

Os SQL Warehouses estão disponíveis em tipos clássicos, sem servidor e profissionais, que têm diferentes funcionalidades de desempenho e otimizações que podem afetar o desempenho das consultas no seu armazém. Consulte tipos de armazém SQL. O Databricks recomenda o uso de armazéns SQL sem servidor quando disponíveis.

Para qualquer tipo de armazém, escolhe um tamanho de Cluster para os seus recursos de computação. Otimizar o tamanho do armazém SQL do Databricks envolve mais do que apenas considerar o volume de dados ou a contagem de usuários. A complexidade da consulta e o número de consultas simultâneas também são fatores-chave no desempenho.

Os armazéns SQL do Databricks usam simultaneidade dinâmica para lidar com essas demandas. Ao contrário dos armazéns de capacidade estática, o Databricks SQL ajusta os recursos de computação em tempo real para gerenciar cargas simultâneas e maximizar a taxa de transferência. Cada categoria de tamanho de armazém tem uma capacidade de computação fixa por unidade, mas o sistema dimensiona o número de recursos para acomodar demandas variáveis.

Tamanhos de cluster para armazéns SQL

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.

Nota

Para SQL warehouses sem servidor, as dimensões de cluster podem, em alguns casos, usar tipos de instância diferentes dos listados na documentação para SQL warehouses profissionais e clássicos de tamanho 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.

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, verifique se você tem 8 vCPU do Azure disponíveis para cada núcleo no cluster. Isto garante que tenha vCPU do Azure suficiente para permitir o reprovisionamento do seu armazém, que acontece aproximadamente a cada 24 horas. Talvez seja necessário aumentar o multiplicador se os SQL warehouses usarem dimensionamento automático ou balanceamento de carga de vários clusters.

  • À 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 aumento de clusters por cada armazém baseia-se na taxa de transferência de consultas, na taxa de consultas recebidas e no tamanho da fila. O 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.

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. Ele gerencia dinamicamente cargas de trabalho usando modelos de aprendizado de máquina para prever as demandas de recursos de consultas recebidas enquanto monitora a capacidade de computação disponível do armazém em tempo real. O rastreamento desses e de outros sinais no armazém permite que o IWM responda a mudanças nas demandas de carga de trabalho.

Esse gerenciamento dinâmico permite que o IWM faça o seguinte:

  • Escale rapidamente a computação para manter baixa latência.
  • Forneça admissão de consulta 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 armazém, o IWM prevê seu custo. 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 a fila em tempo real. Se a fila não estiver diminuindo com rapidez suficiente, o dimensionamento automático provisiona automaticamente mais computação. Depois que a nova capacidade é adicionada, as consultas em fila são admitidas nos novos recursos de computação. Com armazéns SQL sem servidor, novos cálculos podem ser adicionados rapidamente. O número máximo de consultas em uma fila para todos os tipos de SQL warehouse é 1000.

Dimensionamento de um SQL warehouse sem servidor

Comece com um tamanho 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 uma capacidade pequena para o seu armazém SQL sem servidor e vá aumentando. 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 de tamanho sem derramar para o disco ou aumentar significativamente a latência.

Ferramentas para monitorizar e avaliar o desempenho

Para ajudar a dimensionar corretamente seu SQL warehouse, use as seguintes ferramentas:

  • Página de monitoramento: revise a contagem de pico 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.