Unidades de almacenamiento de datos (DWU)Data Warehouse Units (DWUs)

Se incluyen recomendaciones acerca de 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.Recommendations on choosing the ideal number of data warehouse units (DWUs) to optimize price and performance, and how to change the number of units.

Qué son las unidades de almacenamiento de datosWhat are Data Warehouse Units

Un grupo de SQL de Synapse representa una colección de recursos analíticos que se aprovisionan.A Synapse SQL pool represents a collection of analytic resources that are being provisioned. Los recursos analíticos se definen como una combinación de CPU, memoria y E/S.Analytic resources are defined as a combination of CPU, memory, and IO.

Estos tres recursos se agrupan en unidades de escalado de proceso denominadas Unidades de almacenamiento de datos (DWU).These three resources are bundled into units of compute scale called Data Warehouse Units (DWUs). Una DWU representa una medida abstracta y normalizada de recursos de proceso y rendimiento.A DWU represents an abstract, normalized measure of compute resources and performance.

Un cambio en el nivel de servicio modifica el número de DWU que están disponibles en el sistema, lo que a su vez ajusta el rendimiento y el costo del sistema.A change to your service level alters the number of DWUs that are available to the system, which in turn adjusts the performance, and the cost, of your system.

Para obtener un mayor rendimiento, puede aumentar el número de unidades de almacenamiento de datos.For higher performance, you can increase the number of data warehouse units. Para obtener un menor rendimiento, reduzca las unidades de almacenamiento de datos.For less performance, reduce data warehouse units. Los costos de almacenamiento y de proceso se facturan por separado, por lo que cambiar las unidades de almacenamiento de datos no afecta a los costos de almacenamiento.Storage and compute costs are billed separately, so changing data warehouse units does not affect storage costs.

El rendimiento de las unidades de almacenamiento de datos se basa en estas métricas de carga de trabajo de almacenamiento de datos:Performance for data warehouse units is based on these data warehouse workload metrics:

  • Con qué rapidez una consulta del grupo de SQL dedicado estándar puede examinar un gran número de filas y, después, realizar una agregación compleja.How fast a standard dedicated SQL pool query can scan a large number of rows and then perform a complex aggregation. Esta es una operación de gran consumo de E/S y de CPU.This operation is I/O and CPU intensive.
  • Con qué rapidez el grupo de SQL dedicado puede ingerir datos de Azure Storage Blob o Azure Data Lake.How fast the dedicated SQL pool can ingest data from Azure Storage Blobs or Azure Data Lake. Esta es una operación de gran consumo de red y CPU.This operation is network and CPU intensive.
  • Con qué rapidez el comando T-SQL CREATE TABLE AS SELECT puede copiar una tabla.How fast the CREATE TABLE AS SELECT T-SQL command can copy a table. Esta operación implica la lectura de datos del almacenamiento, su distribución entre los nodos del dispositivo y su nueva escritura en el almacenamiento.This operation involves reading data from storage, distributing it across the nodes of the appliance and writing to storage again. Esta es una operación de gran consumo de CPU, E/S y red.This operation is CPU, IO, and network intensive.

Aumentar las DWU:Increasing DWUs:

  • Cambia linealmente el rendimiento del sistema para exámenes, agregaciones e instrucciones CTAS.Linearly changes performance of the system for scans, aggregations, and CTAS statements
  • Aumenta el número de lectores y escritores para las operaciones de carga de PolyBase.Increases the number of readers and writers for PolyBase load operations
  • Aumenta el número máximo de consultas simultáneas y ranuras de simultaneidad.Increases the maximum number of concurrent queries and concurrency slots.

Objetivo de nivel de servicioService Level Objective

El objetivo de nivel de servicio (SLO) es la opción de escalabilidad que determina el nivel de costo y el rendimiento del almacenamiento de datos.The Service Level Objective (SLO) is the scalability setting that determines the cost and performance level of your data warehouse. Los niveles de servicio de Gen2 se miden en unidades de almacenamiento de datos de proceso (cDWU); por ejemplo, DW2000c.The service levels for Gen2 are measured in compute data warehouse units (cDWU), for example DW2000c. Los niveles de servicio de Gen1 se miden en DWU; por ejemplo, DW2000.Gen1 service levels are measured in DWUs, for example DW2000.

El objetivo de nivel de servicio (SLO) es la opción de escalabilidad que determina el nivel de costo y rendimiento del grupo de SQL dedicado.The Service Level Objective (SLO) is the scalability setting that determines the cost and performance level of your dedicated SQL pool. Los niveles de servicio del grupo de SQL dedicado Gen2 se miden en unidades de almacenamiento de datos (DWU); por ejemplo, DW2000c.The service levels for Gen2 dedicated SQL pool are measured in data warehouse units (DWU), for example DW2000c.

Nota

Azure Synapse Analytics Gen2 ha agregado recientemente funcionalidades de escalado adicionales compatibles con niveles de proceso tan bajos como 100 cDWU.Azure Synapse Analytics Gen2 recently added additional scale capabilities to support compute tiers as low as 100 cDWU. Los almacenes de datos existentes actualmente en Gen1 que requieren los niveles de proceso más bajos ahora pueden actualizarse a Gen2 en las regiones que están actualmente disponibles sin ningún costo adicional.Existing data warehouses currently on Gen1 that require the lower compute tiers can now upgrade to Gen2 in the regions that are currently available for no additional cost. Si esto no se admite aún en su región, aún puede actualizar a una región admitida.If your region is not yet supported, you can still upgrade to a supported region. Para obtener más información, vea Actualización a Gen2.For more information, see Upgrade to Gen2.

En T-SQL, el valor de SERVICE_OBJECTIVE determina el nivel de servicio y el nivel de rendimiento del grupo de SQL dedicado.In T-SQL, the SERVICE_OBJECTIVE setting determines the service level and the performance tier for your dedicated SQL pool.

CREATE DATABASE mySQLDW
(Edition = 'Datawarehouse'
 ,SERVICE_OBJECTIVE = 'DW1000c'
)
;

Niveles de rendimiento y unidades de almacenamiento de datosPerformance Tiers and Data Warehouse Units

Cada nivel de rendimiento usa una unidad de medida ligeramente diferente para sus unidades de almacenamiento de datos.Each performance tier uses a slightly different unit of measure for their data warehouse units. Esta diferencia se refleja en la factura, ya que la unidad de escala se traduce directamente en la facturación.This difference is reflected on the invoice as the unit of scale directly translates to billing.

  • Los almacenamientos de datos de Gen1 se miden en unidades de almacenamiento de datos (DWU).Gen1 data warehouses are measured in Data Warehouse Units (DWUs).
  • Los almacenamientos de datos de Gen2 se miden en unidades de almacenamiento de datos de proceso (cDWU).Gen2 data warehouses are measured in compute Data Warehouse Units (cDWUs).

Tanto las DWU como las cDWU admiten el escalado vertical y la reducción vertical del proceso, así como pausar el proceso cuando no es necesario usar el almacén de datos.Both DWUs and cDWUs support scaling compute up or down, and pausing compute when you don't need to use the data warehouse. Estas operaciones son a petición.These operations are all on-demand. El nivel Gen2 usa una memoria caché basada en disco local en los nodos de proceso para mejorar el rendimiento.Gen2 uses a local disk-based cache on the compute nodes to improve performance. Al escalar o pausar el sistema, se invalida la memoria caché y es necesario un período de calentamiento de la memoria caché para conseguir un rendimiento óptimo.When you scale or pause the system, the cache is invalidated and so a period of cache warming is required before optimal performance is achieved.

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.Each SQL server (for example, myserver.database.windows.net) has a Database Transaction Unit (DTU) quota that allows a specific number of data warehouse units. Para más información, consulte los límites de capacidad de administración de cargas de trabajo.For more information, see the workload management capacity limits.

Límites de capacidadCapacity limits

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.Each SQL server (for example, myserver.database.windows.net) has a Database Transaction Unit (DTU) quota that allows a specific number of data warehouse units. Para más información, consulte los límites de capacidad de administración de cargas de trabajo.For more information, see the workload management capacity limits.

¿Cuántas unidades de almacenamiento de datos necesitoHow many data warehouse units do I need

El número ideal de unidades de almacenamiento de datos depende en gran medida de la carga de trabajo y la cantidad de datos que cargó en el sistema.The ideal number of data warehouse units depends very much on your workload and the amount of data you have loaded into the system.

Pasos para encontrar la mejor DWU para la carga de trabajo:Steps for finding the best DWU for your workload:

  1. Comience por seleccionar una DWU más pequeña.Begin by selecting a smaller DWU.
  2. Supervise el rendimiento de su aplicación a medida que prueba cargas de datos en el sistema, observando el número de DWU seleccionadas en comparación con el rendimiento que observe.Monitor your application performance as you test data loads into the system, observing the number of DWUs selected compared to the performance you observe.
  3. Identifique los requisitos adicionales para períodos de máxima actividad periódicos.Identify any additional requirements for periodic periods of peak activity. Puede que las cargas de trabajo que muestran picos y aumentos de actividad significativos se deban escalar con frecuencia.Workloads that show significant peaks and troughs in activity may need to be scaled frequently.

Un grupo de SQL dedicado es un sistema de escalado horizontal que puede aprovisionar grandes cantidades de procesos y consultar cantidades considerables de datos.Dedicated SQL pool is a scale-out system that can provision vast amounts of compute and query sizeable quantities of data.

Para ver sus verdaderas capacidades de escalado, especialmente en DWU más grandes, se recomienda escalar el conjunto de datos para asegurar que tiene suficientes datos como para alimentar las CPU.To see its true capabilities for scaling, especially at larger DWUs, we recommend scaling the data set as you scale to ensure that you have enough data to feed the CPUs. Para probar la escala, se recomienda usar al menos 1 TB.For scale testing, we recommend using at least 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.Query performance only increases with more parallelization if the work can be split between compute nodes. Si ve que el escalado no cambia el rendimiento, es posible que deba ajustar el diseño de las tablas o de las consultas.If you find that scaling is not changing your performance, you may need to tune your table design and/or your queries. Para obtener instrucciones para el ajuste de consultas, vea Manage user queries (Administración de consultas de usuarios).For query tuning guidance, see Manage user queries.

PermisosPermissions

Para cambiar las unidades de almacenamiento de datos es necesario disponer de los permisos descritos en ALTER DATABASE.Changing the data warehouse units requires the permissions described in ALTER DATABASE.

Los roles integrados de Azure, como Colaborador de SQL DB y Colaborador de SQL Server, pueden cambiar la configuración de DWU.Azure built-in roles such as SQL DB Contributor and SQL Server Contributor can change DWU settings.

Ver la configuración de DWU actualView current DWU settings

Para ver la configuración actual de DWU:To view the current DWU setting:

  1. Abra el Explorador de objetos de SQL Server en Visual Studio.Open SQL Server Object Explorer in Visual Studio.
  2. Conéctese a la base de datos maestra asociada al servidor SQL lógico.Connect to the master database associated with the logical SQL server.
  3. Seleccione en la vista de administración dinámica sys.database_service_objectives.Select from the sys.database_service_objectives dynamic management view. Este es un ejemplo:Here is an example:
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 datosChange data warehouse units

Azure portalAzure portal

Para cambiar DWU:To change DWUs:

  1. Abra Azure Portal, abra la base de datos y haga clic en Escalar.Open the Azure portal, open your database, and click Scale.

  2. En Escalar , mueva el control deslizante izquierdo o derecho para cambiar el valor de DWU.Under Scale , move the slider left or right to change the DWU setting.

  3. Haga clic en Save (Guardar).Click Save. Aparece un mensaje de confirmación.A confirmation message appears. Haga clic en para confirmar o No para cancelar.Click yes to confirm or no to cancel.

PowerShellPowerShell

Nota

Este artículo se ha actualizado para usar el nuevo módulo Az de Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Aún puede usar el módulo de AzureRM que continuará recibiendo correcciones de errores hasta diciembre de 2020 como mínimo.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Para más información acerca del nuevo módulo Az y la compatibilidad con AzureRM, consulte Introducing the new Azure PowerShell Az module (Presentación del nuevo módulo Az de Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Para obtener instrucciones sobre la instalación del módulo Az, consulte Instalación de Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Para cambiar las DWU, use el cmdlet de PowerShell Set-AzSqlDatabase.To change the DWUs, use the Set-AzSqlDatabase PowerShell cmdlet. En el ejemplo siguiente se establece el objetivo de nivel de servicio en DW1000 para la base de datos MySQLDW que se hospeda en el servidor MyServer.The following example sets the service level objective to DW1000 for the database MySQLDW that is hosted on server MyServer.

Set-AzSqlDatabase -DatabaseName "MySQLDW" -ServerName "MyServer" -RequestedServiceObjectiveName "DW1000c"

Para más información, consulte los cmdlets de PowerShell para Azure Synapse AnalyticsFor more information, see PowerShell cmdlets for Azure Synapse Analytics

T-SQLT-SQL

Con T-SQL, puede ver la configuración actual de DWU, modificarla y comprobar el progreso.With T-SQL you can view the current DWUsettings, change the settings, and check the progress.

Para cambiar las DWU:To change the DWUs:

  1. Conéctese a la base de datos maestra asociada al servidor.Connect to the master database associated with your server.
  2. Use la instrucción TSQL ALTER DATABASE.Use the ALTER DATABASE TSQL statement. En el ejemplo siguiente se establece el objetivo de nivel de servicio en DW1000c para la base de datos MySQLDW.The following example sets the service level objective to DW1000c for the database MySQLDW.
ALTER DATABASE MySQLDW
MODIFY (SERVICE_OBJECTIVE = 'DW1000c')
;

API de RESTREST APIs

Para cambiar las DWU, utilice la API REST Create or Update Database (Creación o actualización de base de datos).To change the DWUs, use the Create or Update Database REST API. 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.The following example sets the service level objective to DW1000c for the database MySQLDW, which is hosted on server MyServer. El servidor está en un grupo de recursos de Azure denominado ResourceGroup1.The server is in an Azure resource group named 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 ver más ejemplos de API REST, consulte el artículo sobre las API REST para Azure Synapse Analytics.For more REST API examples, see REST APIs for Azure Synapse Analytics.

Comprobar el estado de los cambios de DWUCheck status of DWU changes

Los cambios de DWU pueden tardar varios minutos en completarse.DWU changes may take several minutes to complete. Si está realizando una operación de escalado automáticamente, considere implementar la lógica para asegurarse de que ciertas operaciones se completaron antes de pasar a realizar otra acción.If you are scaling automatically, consider implementing logic to ensure that certain operations have been completed before proceeding with another action.

La comprobación del estado de la base de datos a través de varios puntos de conexión le permitirá implementar correctamente la automatización.Checking the database state through various endpoints allows you to correctly implement automation. El portal le proporcionará una notificación tras la finalización de una operación y el estado actual de las bases de datos, pero no permitirá la comprobación programática del estado.The portal provides notification upon completion of an operation and the databases current state but does not allow for programmatic checking of state.

No se puede comprobar el estado de la base de datos para las operaciones de escalado horizontal con Azure Portal.You cannot check the database state for scale-out operations with the Azure portal.

Para comprobar el estado de los cambios de DWU:To check the status of DWU changes:

  1. Conéctese a la base de datos maestra asociada al servidor.Connect to the master database associated with your server.
  2. Envíe la consulta siguiente para comprobar el estado de la base de datos.Submit the following query to check database state.
SELECT    *
FROM      sys.databases
;
  1. Envíe la consulta siguiente para comprobar el estado de la operación.Submit the following query to check status of operation

    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.This DMV returns information about various management operations on your dedicated SQL pool such as the operation and the state of the operation, which is either IN_PROGRESS or COMPLETED.

Flujo de trabajo de escaladoThe scaling workflow

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.When you start a scale operation, the system first kills all open sessions, rolling back any open transactions to ensure a consistent state. Para las operaciones de escalado, el escalado solo se producirá una vez completada esta reversión transaccional.For scale operations, scaling only occurs after this transactional rollback has completed.

  • Para una operación de escalado vertical, el sistema desasocia todos los nodos de proceso, aprovisiona los nodos de proceso adicionales y luego se vuelve a asociar a la capa de almacenamiento.For a scale-up operation, the system detaches all compute nodes, provisions the additional compute nodes, and then reattaches to the storage layer.
  • Para una operación de reducción vertical, el sistema desasocia todos los nodos de proceso y luego solo vuelve a asociar los nodos necesarios para la capa de almacenamiento.For a scale-down operation, the system detaches all compute nodes and then reattaches only the needed nodes to the storage layer.

Pasos siguientesNext steps

Para más información acerca de cómo administrar el rendimiento, consulte Clases de recursos para la administración de cargas de trabajo y Límites de memoria y simultaneidad.To learn more about managing performance, see Resource classes for workload management and Memory and concurrency limits.