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.