Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describen los modelos de consumo de recursos de Synapse SQL.
Grupo de SQL sin servidor
El grupo de SQL sin servidor es un servicio de pago por consulta que no requiere que se elija el tamaño correcto. El sistema se ajusta automáticamente en función de sus requisitos, lo que le libera de administrar la infraestructura y elegir el tamaño adecuado para la solución.
Grupo de SQL dedicado: unidades de almacenamiento de datos (DWU) y unidades de almacenamiento de datos de proceso (cDWU)
Recomendaciones sobre cómo elegir el número ideal de unidades de almacenamiento de datos (DWU) para optimizar el precio y el rendimiento, y cómo cambiar el número de unidades.
Unidades de almacenamiento de datos
Un grupo de SQL de Synapse representa una colección de recursos analíticos que se están aprovisionando. Los recursos analíticos se definen como una combinación de CPU, memoria e E/S. Estos tres recursos se agrupan en unidades de escala de proceso denominadas Unidades de almacenamiento de datos (DWU). Una DWU representa una medida abstracta y normalizada de los recursos de proceso y el rendimiento. Un cambio en el nivel de servicio modifica el número de DWU que están disponibles para el sistema. A su vez, este cambio ajusta el rendimiento y el costo del sistema.
Para obtener un mayor rendimiento, puede aumentar el número de unidades de almacenamiento de datos. Para obtener menos rendimiento, reduzca las unidades de almacenamiento de datos. Los costos de almacenamiento y proceso se facturan por separado, por lo que el cambio de unidades de almacenamiento de datos no afecta a los costos de almacenamiento.
El rendimiento de las unidades de almacenamiento de datos se basa en estas métricas de carga de trabajo de almacenamiento de datos:
- La rapidez con la que una consulta de almacenamiento de datos estándar puede examinar un gran número de filas y, a continuación, realizar una agregación compleja. Esta operación requiere muchos recursos de E/S y CPU.
- La rapidez con que el almacenamiento de datos puede ingerir datos de blobs de Azure Storage o Azure Data Lake. Esta operación es intensiva de red y CPU.
- Qué tan rápido el
CREATE TABLE AS SELECT
comando T-SQL puede copiar una tabla. Esta operación implica leer datos del almacenamiento, distribuirlos entre los nodos del dispositivo y volver a escribir en el almacenamiento. Esta operación consume mucha CPU, E/S y red.
Aumentar las DWU:
- Cambia linealmente el rendimiento del sistema para exámenes, agregaciones e instrucciones CTAS
- Aumenta el número de lectores y escritores para las operaciones de carga de PolyBase
- Aumenta el número máximo de consultas simultáneas y ranuras de simultaneidad.
Objetivo de nivel de servicio
El objetivo de nivel de servicio (SLO) es la configuración de escalabilidad que determina el nivel de costo y rendimiento del almacenamiento de datos. Los niveles de servicio de Gen2 se miden en unidades de almacenamiento de datos de proceso (cDWU), por ejemplo DW2000c. Los niveles de servicio gen1 se miden en DWU, por ejemplo DW2000.
El objetivo de nivel de servicio (SLO) es la configuración de escalabilidad que determina el nivel de costo y rendimiento del almacenamiento de datos. Los niveles de servicio para el grupo de SQL dedicado de Gen2 se miden en unidades de almacenamiento de datos (DWU), por ejemplo DW2000c.
Nota:
Azure Synapse Analytics Gen2 agregó recientemente funcionalidades de escalado adicionales para admitir niveles de proceso tan bajos como 100 cDWU. Los almacenes de datos existentes actualmente en Gen1 que requieren los niveles de proceso inferiores ahora pueden actualizarse a Gen2 en las regiones que están disponibles actualmente sin costo adicional. Si su región aún no es compatible, todavía puede actualizar a una región compatible. Para obtener más información, vea Actualización a Gen2.
En T-SQL, la configuración de SERVICE_OBJECTIVE determina el nivel de servicio y el nivel de rendimiento del grupo de SQL dedicado.
CREATE DATABASE mySQLDW
(Edition = 'Datawarehouse'
,SERVICE_OBJECTIVE = 'DW1000c'
)
;
Niveles de rendimiento y unidades de almacenamiento de datos
Cada nivel de rendimiento usa una unidad de medida ligeramente diferente para sus unidades de almacenamiento de datos. Esta diferencia se refleja en la factura, ya que la unidad de escala se traduce directamente en la facturación.
- Los almacenes de datos gen1 se miden en unidades de almacenamiento de datos (DWU).
- Los almacenamientos de datos de Gen2 se miden en unidades de almacenamiento de datos de proceso (cDWU).
Tanto las DWU como las cDWUs admiten el escalado vertical o descendente del proceso y pausan el proceso cuando no es necesario usar el almacenamiento de datos. Estas operaciones son todas a petición. Gen2 usa una caché basada en disco local en los nodos de proceso para mejorar el rendimiento. Al escalar o pausar el sistema, la memoria caché se invalida y, por tanto, se requiere un período de calentamiento de caché antes de lograr un rendimiento óptimo.
A medida que aumenta las unidades de almacenamiento de datos, aumenta linealmente los recursos informáticos. Gen2 proporciona el mejor rendimiento de las consultas y la escala más alta. Los sistemas Gen2 también hacen el mayor uso de la memoria caché.
Límites de capacidad
Cada servidor SQL Server (por ejemplo, myserver.database.windows.net) tiene una cuota de unidad de transacción de base de datos (DTU) que permite un número específico de unidades de almacenamiento de datos. Para más información, consulte los límites de capacidad de administración de cargas de trabajo.
Evaluar el número de unidades de almacenamiento de datos que necesita
El número ideal de unidades de almacenamiento de datos depende mucho de la carga de trabajo y de la cantidad de datos que ha cargado en el sistema.
Pasos para encontrar la mejor DWU para la carga de trabajo:
- Para empezar, seleccione una DWU más pequeña.
- Supervise el rendimiento de la aplicación a medida que pruebe las cargas de datos en el sistema, observando el número de DWU seleccionados en comparación con el rendimiento que observa.
- Identifique los requisitos adicionales para períodos periódicos de actividad máxima. Las cargas de trabajo que muestran picos y valles significativos en la actividad pueden tener que escalarse con frecuencia.
Un grupo de SQL es un sistema de escalado horizontal que puede aprovisionar grandes cantidades de procesos y consultar cantidades considerables de datos. Para ver sus verdaderas funcionalidades de escalado, especialmente en DWU más grandes, se recomienda escalar el conjunto de datos a medida que se escala para asegurarse de que tiene suficientes datos para alimentar las CPU. Para las pruebas de escalado, se recomienda usar al menos 1 TB.
Nota:
El rendimiento de las consultas solo aumenta con más paralelización si el trabajo se puede dividir entre nodos de proceso. Si observa que el escalado no cambia el rendimiento, es posible que tenga que ajustar el diseño de la tabla o las consultas. Para obtener instrucciones para la optimización de consultas, consulte Administración de consultas de usuario.
Permisos
El cambio de las unidades de almacenamiento de datos requiere los permisos descritos en ALTER DATABASE.
Los roles integrados de Azure, como colaborador de SQL DB y colaborador de SQL Server, pueden cambiar la configuración de DWU.
Visualización de la configuración actual de DWU
Para ver la configuración actual de DWU:
- Abra el Explorador de objetos de SQL Server en Visual Studio.
- Conéctese a la base de datos maestra asociada al servidor SQL lógico.
- Seleccione desde la vista de administración dinámica sys.database_service_objectives. Este es un ejemplo:
SELECT db.name [Database]
, ds.edition [Edition]
, ds.service_objective [Service Objective]
FROM sys.database_service_objectives AS ds
JOIN sys.databases AS db ON ds.database_id = db.database_id
;
Cambiar unidades de almacenamiento de datos
Portal de Azure
Para cambiar DWU:
Abra Azure Portal, abra la base de datos y seleccione Escalar.
En Escala, mueva el control deslizante de izquierda o derecha para cambiar la configuración de DWU.
Haga clic en Guardar. Aparece un mensaje de confirmación. Seleccione Sí para confirmar o no para cancelar.
PowerShell
Nota:
Se recomienda usar el módulo de PowerShell de Azure Az para interactuar con Azure. Para comenzar, consulte Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.
Para cambiar las DWU, use el cmdlet Set-AzSqlDatabase de PowerShell. En el ejemplo siguiente se establece el objetivo de nivel de servicio en DW1000 para la base de datos MySQLDW hospedada en el servidor MyServer.
Set-AzSqlDatabase -DatabaseName "MySQLDW" -ServerName "MyServer" -RequestedServiceObjectiveName "DW1000c"
Para más información, consulte Cmdlets de PowerShell para Azure Synapse Analytics.
T-SQL
Con T-SQL puede ver los valores de DWUsettings actuales, cambiar la configuración y comprobar el progreso.
Para cambiar las DWU:
- Conéctese a la base de datos maestra asociada al servidor.
- Use la instrucción TSQL ALTER DATABASE . En el ejemplo siguiente se establece el objetivo de nivel de servicio en DW1000c para la base de datos MySQLDW.
ALTER DATABASE MySQLDW
MODIFY (SERVICE_OBJECTIVE = 'DW1000c')
;
API de REST
Para cambiar las DWU, use la API REST Crear o Actualizar base de datos . En el ejemplo siguiente se establece el objetivo de nivel de servicio en DW1000c para la base de datos MySQLDW, que se hospeda en el servidor MyServer. El servidor está en un grupo de recursos de Azure denominado ResourceGroup1.
PUT https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/servers/{server-name}/databases/{database-name}?api-version=2014-04-01-preview HTTP/1.1
Content-Type: application/json; charset=UTF-8
{
"properties": {
"requestedServiceObjectiveName": DW1000
}
}
Para obtener más ejemplos de API REST, consulte API REST para Azure Synapse Analytics.
Comprobar el estado de los cambios de DWU
Los cambios de DWU pueden tardar varios minutos en completarse. Si escala automáticamente, considere la posibilidad de implementar lógica para asegurarse de que ciertas operaciones se hayan completado antes de continuar con otra acción.
Comprobar el estado de la base de datos a través de varios puntos de conexión permite implementar correctamente la automatización. El portal proporciona una notificación tras la finalización de una operación y el estado actual de las bases de datos, pero no permite la comprobación mediante programación del estado.
No se puede comprobar el estado de la base de datos para las operaciones de escalabilidad horizontal con Azure Portal.
Para comprobar el estado de los cambios de DWU:
- Conéctese a la base de datos maestra asociada al servidor.
- Envíe la siguiente consulta para comprobar el estado de la base de datos.
SELECT *
FROM sys.databases
;
- Enviar la siguiente consulta para comprobar el estado de la operación
SELECT *
FROM sys.dm_operation_status
WHERE resource_type_desc = 'Database'
AND major_resource_id = 'MySQLDW'
;
Esta DMV devuelve información sobre varias operaciones de administración en el grupo de SQL dedicado, como la operación y el estado de esta, que es IN_PROGRESS o COMPLETED.
Flujo de trabajo de escalado
Cuando se inicia una operación de escalado, el sistema elimina primero todas las sesiones abiertas y revierte todas las transacciones abiertas para garantizar un estado coherente. Para las operaciones de escalado, el escalado solo se producirá una vez completada esta reversión transaccional.
- Para una operación de escalado vertical, el sistema desasocia todos los nodos de proceso, aprovisiona los nodos de proceso adicionales y, a continuación, vuelve a asociarse a la capa de almacenamiento.
- Para una operación de reducción vertical, el sistema desasocia todos los nodos de proceso y, a continuación, vuelve a asociar solo los nodos necesarios a la capa de almacenamiento.
Pasos siguientes
Para más información sobre cómo administrar el rendimiento, consulte Clases de recursos para la administración de cargas de trabajo y los límites de memoria y simultaneidad.