Administración de recursos de proceso para un grupo de SQL dedicado
En este artículo, se explica cómo administrar los recursos de proceso para un grupo de SQL dedicado (anteriormente SQL DW) en Azure Synapse Analytics. Para reducir los costos, pause el grupo de SQL dedicado o escale el grupo de SQL dedicado para satisfacer las demandas de rendimiento.
¿Qué es la administración de proceso?
La arquitectura del grupo de SQL dedicado separa el proceso y el almacenamiento, lo que permite a cada uno escalar de manera independiente. Como resultado, puede escalar el proceso para satisfacer las demandas de rendimiento con independencia del almacenamiento de datos. También puede pausar y reanudar los recursos de proceso.
Una consecuencia natural de esta arquitectura es que los precios para proceso y almacenamiento son independientes. Si no es necesario usar el grupo de SQL dedicado durante un tiempo, puede detener el proceso para ahorrar costos de proceso.
Escalado de proceso
Para escalar horizontalmente el proceso o reducir su escala, ajuste el valor de las unidades de almacenamiento de datos (DWU) del grupo de SQL dedicado. El rendimiento de la carga y las consultas pueden aumentar linealmente a medida que se agregan más DWU.
Para conocer los pasos de escalado horizontal, consulte las guías de inicio rápido de Azure Portal, PowerShell o T-SQL. También puede realizar operaciones de escalado horizontal mediante una REST API.
Para realizar una operación de escalado, el grupo de SQL dedicado termina primero todas las consultas entrantes y, luego, revierte las transacciones para garantizar un estado coherente. El escalado solo se produce una vez finalizada la reversión de la transacción. En una operación de escalado, el sistema desasocia la capa de almacenamiento de los nodos de proceso, agrega nodos de proceso y, luego, vuelve a asociar la capa de almacenamiento a la capa de proceso.
Cada grupo de SQL dedicado se almacena como 60 distribuciones, que se distribuyen de manera uniforme a los nodos de proceso. Al agregar más nodos de proceso, se agrega más capacidad de proceso. A medida que aumenta el número de nodos de proceso, se reduce el número de distribuciones por nodo de proceso, de forma que hay más capacidad de proceso para las consultas. De igual manera, al reducir las DWU se reduce el número de nodos de proceso,lo que reduce los recursos de proceso para las consultas.
En la tabla siguiente, se muestra cómo cambia el número de distribuciones por nodo de proceso a medida que cambian las DWU. DW30000c proporciona 60 nodos de proceso y consigue un rendimiento mucho mayor que DW100c.
Unidades de almacenamiento de datos | Número de nodos de proceso | Número de distribuciones por nodo |
---|---|---|
DW100c | 1 | 60 |
DW200c | 1 | 60 |
DW300c | 1 | 60 |
DW400c | 1 | 60 |
DW500c | 1 | 60 |
DW1000c | 2 | 30 |
DW1500c | 3 | 20 |
DW2000c | 4 | 15 |
DW2500c | 5 | 12 |
DW3000c | 6 | 10 |
DW5000c | 10 | 6 |
DW6000c | 12 | 5 |
DW7500c | 15 | 4 |
DW10000c | 20 | 3 |
DW15000c | 30 | 2 |
DW30000c | 60 | 1 |
Búsqueda del tamaño adecuado de las unidades de almacenamiento de datos
Para ver las ventajas de rendimiento del escalado horizontal, en especial para unidades de almacenamiento de datos más grandes, querrá usar al menos un conjunto de datos de 1 TB. Para encontrar el mejor número de DWU para su grupo de SQL dedicado, pruebe a escalarlo y reducirlo verticalmente. Ejecute algunas consultas con distintos números de DWU después de cargar los datos. Dado que el escalado se realiza rápidamente, puede probar varios niveles de rendimiento en una hora o menos.
Recomendaciones para encontrar el mejor número de DWU:
- Para un grupo de SQL dedicado en desarrollo, comience por seleccionar un número más pequeño de DWU. Un buen punto de partida es DW400c o DW200c.
- Supervise el rendimiento de su aplicación, observando el número de DWU seleccionados en comparación con el rendimiento que observe.
- Suponga una escala lineal y determine cuánto debe aumentar o reducir las DWU.
- Continúe realizando ajustes hasta llegar a un nivel de rendimiento adecuado para sus requerimientos empresariales.
Cuándo escalar horizontalmente
El escalado horizontal de DWU afecta a los siguientes aspectos de rendimiento:
- Mejora linealmente el rendimiento del sistema en lo referente a exámenes, agregaciones e instrucciones CTAS.
- Aumenta el número de lectores y escritores para cargar los datos.
- Número máximo de consultas simultáneas y ranuras de simultaneidad
Recomendaciones sobre cuándo realizar el escalado horizontal de DWU:
- Para realizar una operación de transformación o carga de con muchos datos, realice el escalado horizontal para que los datos estén disponibles con mayor rapidez.
- Durante las horas punta comerciales, escale horizontalmente para dar cabida a un mayor número de consultas simultáneas.
¿Qué ocurre si escalado horizontal no mejora el rendimiento?
Agregar DWU aumenta el paralelismo. Si el trabajo se divide uniformemente entre los nodos de proceso, el paralelismo adicional mejora el rendimiento de las consultas. Si el escalado horizontal no cambia el rendimiento, hay algunos motivos por los que puede ocurrir. Puede que los datos se sesguen entre las distribuciones o que las consultas introduzcan un movimiento de gran cantidad de datos. Para investigar los problemas de rendimiento de consultas, consulte las soluciones a los problemas de rendimiento.
Pausa y reanudación de proceso
Al pausar el proceso, la capa de almacenamiento se desasocia de los nodos de proceso. Se liberan los recursos de proceso desde su cuenta. No se le cobra por el proceso mientras está en pausa. Al reanudarse el proceso, se vuelve a asociar el almacenamiento a los nodos de proceso y se reanudan los cargos por proceso.
Al pausar un grupo de SQL dedicado:
- Los recursos de memoria y proceso se devuelven al grupo de recursos disponibles en el centro de datos.
- Los costos de unidad de almacenamiento de datos son cero durante la pausa.
- El almacenamiento de datos no se ve afectado y sus datos permanecen intactos.
- Todas las operaciones en ejecución o en cola se cancelan.
- Se restablecen los contadores de DMV.
Al reanudar un grupo de SQL dedicado:
- El grupo de SQL dedicado adquiere recursos de proceso y memoria para la configuración de DWU.
- Calcule los gastos correspondientes a la reanudación de DWU.
- Los datos se vuelven disponibles.
- Una vez que el grupo de SQL dedicado está en línea, debe reiniciar las consultas de la carga de trabajo.
Si quiere que el grupo de SQL dedicado esté siempre accesible, puede reducirlo verticalmente al tamaño más pequeño en lugar de pausarlo.
Para conocer los pasos de pausa y reanudación, consulte las guías de inicio rápido de Azure Portal o PowerShell. También puede usar la REST API de pausa o la REST API de reanudación.
Vaciado de las transacciones antes de aplicar la pausa o el escalado
Se recomienda permitir que finalicen las transacciones existentes antes de iniciar una operación de pausa o escalado.
Al pausar o escalar el grupo de SQL dedicado, las consultas se cancelan en segundo plano al iniciar la solicitud de pausa o escalado. Cancelar una consulta SELECT simple es una operación rápida y casi no tiene ningún efecto en el tiempo necesario para pausar o escalar la instancia. Sin embargo, las consultas transaccionales, que modifican los datos o la estructura de estos, podrían no detenerse rápidamente. Por definición, las consultas sobre transacciones deben completarse íntegramente o deshacerse los cambios.
Deshacer el trabajo realizado con una consulta sobre una transacción puede tardar tanto (o más) que el tiempo necesario para aplicar el cambio original de esta. Por ejemplo, si se cancela una consulta que elimina filas y ya lleva en ejecución una hora, el sistema puede tardar una hora en volver a insertar las filas eliminadas. Si se ejecuta la pausa o el escalado con transacciones en curso, podría parecer que tardan mucho en aplicarse, ya que deben esperar a que se reviertan todos los cambios para continuar.
Para obtener más información, consulte Uso de transacciones y Optimización de transacciones.
Automatización de la administración de los recursos de proceso
Para automatizar las operaciones de administración de los recursos de proceso, consulte Uso de Azure Functions para administrar los recursos de proceso del grupo de SQL dedicado.
Cada una de las operaciones de escalado horizontal, pausar y reanudación puede tardar varios minutos en completarse. Si va a escalar, pausar o reanudar automáticamente, se recomienda implementar una lógica para garantizar que se hayan completado determinadas operaciones antes de continuar con otra acción. La comprobación del estado del grupo de SQL dedicado mediante varios puntos de conexión le permite implementar correctamente la automatización de estas operaciones.
Para comprobar el estado del grupo de SQL dedicado, consulte el inicio rápido de PowerShell o T-SQL. También puede comprobar el estado del grupo de SQL dedicado con una API REST.
Permisos
Para escalar el grupo de SQL dedicado, se requieren los permisos descritos en ALTER DATABASE. Para pausar y reanudar, se requiere el rol Colaborador de base de datos SQL, específicamente Microsoft.Sql/servers/databases/action.