Compartir a través de


Dimensionamiento, escalado y comportamiento en cola del almacén SQL

En este artículo se explica el comportamiento de ajuste de tamaño, puesta en cola y escalado automático de clústeres de SQL Warehouse.

Información general sobre el dimensionamiento

Los almacenes de SQL están disponibles en tipos sin servidor, profesionales y clásicos que tienen diferentes características de rendimiento y optimizaciones que pueden afectar al rendimiento de las consultas en el almacenamiento. Consulta Tipos de almacenes SQL. Databricks recomienda usar almacenes de SQL sin servidor cuando estén disponibles.

Para cualquier tipo de almacén, elige un tamaño de clúster para sus recursos de proceso. La optimización del tamaño del almacenamiento de SQL de Databricks implica más que simplemente considerar el volumen de datos o el recuento de usuarios. La complejidad de las consultas y el número de consultas simultáneas también son factores clave en el rendimiento.

Los almacenes sql de Databricks usan la simultaneidad dinámica para controlar estas demandas. A diferencia de los almacenes de capacidad estática, Databricks SQL ajusta los recursos de proceso en tiempo real para administrar cargas simultáneas y maximizar el rendimiento. Cada categoría de tamaño de almacenamiento tiene una capacidad de proceso fija por unidad, pero el sistema escala el número de recursos para adaptarse a distintas demandas.

Tamaños de clúster para almacenes SQL

En la tabla de esta sección, se asignan los tamaños del clúster del almacén de SQL al tamaño del controlador del clúster de Azure Databricks y el número de roles de trabajo. El tamaño del controlador solo se aplica a almacenes de SQL pro o clásicos.

Nota:

En el caso de los almacenes de SQL sin servidor, los tamaños de clúster pueden, en algunos casos, usar tipos de instancia diferentes a los enumerados en la documentación de almacenes SQL pro y clásicos para un tamaño de clúster equivalente. En general, la relación precio/rendimiento de los tamaños de clúster para almacenes de SQL sin servidor es similar a la de los almacenes de SQL pro y clásicos.

Tamaño del clúster Tipo de instancia para el controlador (solo se aplica a almacenes de SQL pro y clásicos) Número de roles de trabajo
2X-Small Standard_E8ds_v4 1 x Standard_E8ds_v4
X-Small Standard_E8ds_v4 2 x Standard_E8ds_v4
Pequeña Standard_E16ds_v4 4 x Standard_E8ds_v4
Media Standard_E32ds_v4 8 x Standard_E8ds_v4
grande Standard_E32ds_v4 16 x Standard_E8ds_v4
Mas grande 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

El tamaño de instancia de todos los roles de trabajo es Standard_E8ds_v4.

Cada controlador y rol de trabajo tienen conectados ocho discos administrados LRS Estándar de 128 GB. Los discos adjuntos se facturan por hora.

Cuota de vCPU de Azure requerida para almacenes SQL clásicos y pro

Para iniciar un almacén SQL clásico o pro, debe disponer de una cuota de vCPU Azure adecuada para instancias Standard_E8ds_v4 en su cuenta Azure. Use las siguientes directrices para determinar la cuota de vCPU necesaria:

Si solo tiene uno o dos almacenes de SQL, compruebe que tiene 8 vCPU de Azure disponibles para cada núcleo del clúster. Esto garantiza que tiene una vCPU de Azure adecuada para permitir el reaprovisionamiento del almacenamiento, lo que sucede aproximadamente cada 24 horas. Es posible que tenga que aumentar el multiplicador si los almacenes de SQL usan el escalado automático o el equilibrio de carga de varios clústeres.

  • A medida que aumenta el número de almacenes de SQL, permita entre 4 y 8 vCPU de Azure por cada núcleo del clúster. Databricks recomienda empezar con un número mayor y supervisar la estabilidad.
  • Las vCPU de Azure utilizadas por los almacenes SQL se suman a las vCPU de Azure empleadas por los clústeres usados por Ingeniería de Data Science & o por cargas de trabajo que no son de Databricks.

Para solicitar una cuota adicional de vCPU de Azure, consulte Aumento de las cuotas de vCPU de la familia de máquinas virtuales en la documentación de Azure.

Nota:

La información de esta tabla puede variar en función de la disponibilidad del producto o la región y el tipo de área de trabajo.

Colas y escalado automático para almacenes de SQL clásicos y profesionales

Azure Databricks limita el número de consultas en un clúster asignado a un almacén de SQL basado en el coste de procesar sus resultados. El escalado ascendente de clústeres por almacenamiento se basa en el rendimiento de las consultas, la tasa de consultas entrantes y el tamaño de la cola. Databricks recomienda un clúster para cada 10 consultas simultáneas. El número máximo de consultas de una cola para todos los tipos del almacén de SQL es 1000.

Azure Databricks agrega clústeres en función del tiempo que se tardaría en procesar todas las consultas actualmente en ejecución, todas las consultas en cola y las consultas entrantes esperadas en los dos minutos siguientes.

  • Si es menos de 2 minutos, no se escala verticalmente.
  • Entre 2 y 6 minutos, se agrega 1 clúster.
  • Entre 6 y 12 minutos, se agregan 2 clústeres.
  • Entre 12 y 22 minutos, se agregan 3 clústeres.

De lo contrario, Azure Databricks agrega 3 clústeres más 1 clúster por cada 15 minutos adicionales de carga de consultas esperados.

Además, un almacén siempre se amplía si una consulta espera 5 minutos en la cola.

Si la carga es baja durante 15 minutos, Azure Databricks reduce verticalmente el almacén de SQL. Mantiene suficientes clústeres para controlar la carga máxima durante los últimos 15 minutos. Por ejemplo, si la carga máxima era de 25 consultas simultáneas, Azure Databricks mantiene 3 clústeres.

Escalado automático sin servidor y puesta en cola de consultas

La administración inteligente de cargas de trabajo (IWM) es un conjunto de características que mejora la capacidad de los almacenes de SQL sin servidor para procesar un gran número de consultas de forma rápida y rentable. Administra dinámicamente las cargas de trabajo mediante modelos de machine learning para predecir las demandas de recursos de las consultas entrantes mientras supervisa la capacidad de proceso disponible del almacenamiento en tiempo real. El seguimiento de estas y otras señales en el almacenamiento permite a IWM responder a los cambios en las demandas de carga de trabajo.

Esta administración dinámica permite que IWM haga lo siguiente:

  • Escalar rápidamente el proceso para mantener una latencia baja.
  • Ofrecer la admisión de consultas en tasas más cercanas a la limitación del hardware.
  • Escalamiento vertical rápido para minimizar los costes cuando la demanda es baja.

Cuando llega una consulta al almacén, la IWM predice el costo de la consulta. Al mismo tiempo, la IWM es la supervisión en tiempo real de la capacidad de proceso disponible del almacenamiento. A continuación, con los modelos de aprendizaje automático, la IWM predice si la consulta entrante tiene el proceso necesario disponible en el proceso existente. Si no tiene el proceso necesario, la consulta se agrega a la cola. Si tiene el proceso necesario, la consulta comienza a ejecutarse inmediatamente.

IWM supervisa la cola en tiempo real. Si la cola no disminuye lo suficientemente rápido, el escalado automático aprovisiona más recursos de cómputo. Una vez añadida la nueva capacidad, las consultas en cola se admiten en los nuevos recursos de proceso. Con los almacenes de SQL sin servidor, se puede añadir rápidamente un nuevo proceso. El número máximo de consultas de una cola para todos los tipos del almacén de SQL es 1000.

Cambio de tamaño de un almacén de SQL sin servidor

Comience con un tamaño mayor para el almacén de SQL sin servidor de lo que cree que necesitará y ajuste el tamaño a medida que realice pruebas. No comience con un tamaño pequeño para su almacén de SQL sin servidor y luego aumente el tamaño. En general, comience con una instancia única de almacén de SQL sin servidor y confíe en Azure Databricks para ajustar el tamaño con clústeres sin servidor, priorizar cargas de trabajo y lecturas rápidas de datos. Consulte Escalado automático sin servidor y puesta en cola de consultas.

  • Para reducir la latencia de consulta de un almacén de SQL sin servidor determinado:
    • Si las consultas se desbordan en el disco, aumente el tamaño de la camiseta.
    • Si las consultas son muy paralelizables, aumente el tamaño de la camiseta.
    • Si está ejecutando varias consultas a la vez, agregue más clústeres para el escalado automático.
  • Para reducir los costos, intenta reducir el tamaño sin desbordarse en el disco o aumentar significativamente la latencia.

Herramientas para supervisar y evaluar el rendimiento

Para ayudar a ajustar el tamaño de su almacén de datos SQL, use las siguientes herramientas:

  • Página de Supervisión: Revise el número máximo de consultas. Si el pico en cola suele ser superior a uno, agregue clústeres. El número máximo de consultas de una cola para todos los tipos del almacén de SQL es 1000. Consulte Supervisión de un almacén de SQL.
  • Historial de consultas. Consulte historial de consultas.
  • Perfiles de consulta (busque Bytes volcados en disco por encima de 1). Consulte Perfil de consulta.