Dimensionamento, colocação em escala e comportamento de enfileiramento do SQL Warehouse

Este artigo explica o comportamento do dimensionamento, do enfileiramento e da colocação em escala de clusters do SQL warehouses.

Dimensionamento de SQL warehouse sem servidor

Comece sempre com um tamanho de camiseta para o SQL warehouse sem servidor maior do que você acha que precisará e diminua o tamanho à medida que for testando. Não comece com um tamanho de camiseta pequeno para seu SQL warehouse sem servidor e aumente o tamanho. Em geral, comece com um único SQL warehouse sem servidor e conte com o Azure Databricks para dimensionar corretamente 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 sendo despejadas para o disco, aumente o tamanho da camiseta.
    • Se as consultas forem altamente paralelas, aumente o tamanho da camiseta.
    • Se estiver executando várias consultas ao mesmo tempo, adicione mais clusters para dimensionamento automático.
  • Para reduzir os custos, tente diminuir o tamanho da camiseta sem despejar no 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: veja o pico da contagem de consultas. Se o pico enfileirado estiver normalmente acima de um, adicione clusters. O número máximo de consultas em uma fila para todos os tipos de SQL Warehouse é 1.000. Confira Monitorar um SQL warehouse.
    • Histórico de consultas. Consulte Histórico de consultas.
    • Perfis de consulta (procure Bytes despejados no disco acima de 1). Confira Perfil de consulta.

Observação

Em SQL warehouses sem servidor, os tamanhos de cluster podem, em alguns casos, usar tipos de instância diferentes dos listados na documentação de SQL warehouses pro e clássicos para um tamanho de cluster equivalente. Em geral, a taxa de preço/desempenho dos tamanhos de cluster para SQL warehouses sem servidor é semelhante àquelas dos SQL warehouses pro 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 aumenta a capacidade do SQL warehouses 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 as consultas recebidas e determinar a mais rápida 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 está nos recursos de IA do Databricks SQL para responder dinamicamente às demandas de carga de trabalho, em vez de usar limites estáticos.

Essa capacidade de resposta garante:

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

Quando uma consulta chega ao warehouse, o IWM prevê o custo da consulta. Ao mesmo tempo, o IWM está monitorando em tempo real a capacidade de computação disponível do warehouse. Em seguida, usando modelos de machine learning, o IWM prevê se a consulta recebida tem a computação necessária disponível na computação existente. Se ela não tiver a computação necessária, a consulta será adicionada à fila. Se ela tiver a computação necessária, 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 dimensionamento automático é iniciado para obter rapidamente mais computação. Quando uma nova capacidade é adicionada, as consultas em fila são admitidas nos novos clusters. Com os SQL warehouses sem servidor, novos clusters podem ser adicionados rapidamente e mais de um cluster por vez pode ser criado. O número máximo de consultas em uma fila para todos os tipos de SQL Warehouse é 1.000.

tamanhos de cluster para SQL warehouses profissionais e clássicos

A tabela desta seção associa os tamanhos de cluster de SQL warehouse ao tamanho do driver de cluster do Azure Databricks e à contagem de trabalhos. O tamanho do driver se aplica apenas a SQL warehouses pro e clássicos.

Tamanho do cluster Tipo de instância do driver (aplica-se somente a SQL warehouses pro e clássicos) Contagem de trabalho
2X-Small Standard_E8ds_v4 1 x Standard_E8ds_v4
X-Small 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
Extragrande Standard_E64ds_v4 32 x Standard_E8ds_v4
2X-Large Standard_E64ds_v4 64 x Standard_E8ds_v4
3X-Large Standard_E64ds_v4 128 x Standard_E8ds_v4
4X-Large Standard_E64ds_v4 256 x Standard_E8ds_v4

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

A cada driver e trabalho, são anexados 8 discos gerenciados LRS Standard de 128 GB. Os discos anexados são cobrados por hora.

Cota de vCPU do Azure necessária para SQL warehouses clássicos e profissionais

Para iniciar um SQL warehouse clássico ou profissional, você precisa ter cota de vCPU do Azure suficiente para instâncias Standard_E8ds_v4 em sua conta do Azure. Use as seguintes diretrizes para determinar a cota de vCPU necessária:

  • Se você tem apenas um ou dois SQL warehouses, verifique se há 8 vCPUs do Azure disponíveis para cada núcleo no cluster. Isso garante que a vCPU do Azure é suficiente para reprovisionar o warehouse que ocorre aproximadamente a cada 24 horas. Se os SQL warehouses usam dimensionamento automático ou balanceamento de carga de vários clusters, talvez você precise aumentar o multiplicador.
  • À medida que o número de SQL warehouses aumenta, permita entre 4 e 8 vCPUs do Azure para cada núcleo no cluster. O Databricks recomenda começar com um número maior e monitorar a estabilidade.
  • As vCPUs do Azure usadas por SQL warehouses são somadas às vCPUs do Azure usadas por clusters usados pela Engenharia e Ciência de Dados ou por cargas de trabalho que não são do Databricks.

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

Observação

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

Enfileiramento e dimensionamento automático para SQL warehouses 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 computar os resultados delas. O aumento de escala de clusters por warehouse é baseado na taxa de transferência de consulta, na taxa de consultas de entrada e no tamanho da fila. O Azure Databricks recomenda um cluster para cada dez consultas simultâneas. O número máximo de consultas em uma fila para todos os tipos de SQL Warehouse é 1.000.

O Azure Databricks adiciona clusters 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 2 minutos.

  • Menos de 2 minutos, não escalar.
  • De 2 a 6 minutos, adicionar 1 cluster.
  • De 6 a 12 minutos, adicionar 2 clusters.
  • De 12 a 22 minutos, adicionar 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 warehouse sempre é escalado quando uma consulta aguarda 5 minutos na fila.

Quando a carga permanece baixa por 15 minutos, o Azure Databricks reduz a escala do SQL warehouse. Ele mantém clusters suficientes para lidar com a carga de pico nos últimos 15 minutos. Por exemplo, se a carga de pico é de 25 consultas simultâneas, Azure Databricks mantém 3 clusters.

Enfileiramento de consultas para SQL warehouses profissionais e clássicos

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

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