Data Warehouse Units (DWUs)Data Warehouse Units (DWUs)

Suggestions pour choisir le nombre idéal de Data Warehouse Units (DWU) en vue d’optimiser les coûts et les performances, et indications pour changer le nombre d’unités.Recommendations on choosing the ideal number of data warehouse units (DWUs) to optimize price and performance, and how to change the number of units.

Que sont les Data Warehouse Units ?What are Data Warehouse Units

Un pool SQL Synapse représente une collection de ressources analytiques en cours d’approvisionnement.A Synapse SQL pool represents a collection of analytic resources that are being provisioned. Les ressources analytiques sont définies comme une combinaison d’UC, de mémoire et d’E/S.Analytic resources are defined as a combination of CPU, memory, and IO.

Ces trois ressources sont regroupées dans des unités d’échelle de calcul appelées Data Warehouse Units (DWU).These three resources are bundled into units of compute scale called Data Warehouse Units (DWUs). Une DWU représente une mesure abstraite et standardisée des ressources de calcul et de performances.A DWU represents an abstract, normalized measure of compute resources and performance.

Une modification de votre niveau de service change le nombre de DWU disponibles sur le système, qui à son tour ajuste le niveau de performance et le coût de votre système.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.

Pour un meilleur niveau de performance, vous pouvez augmenter le nombre de DWU.For higher performance, you can increase the number of data warehouse units. Pour un niveau de performance inférieur, vous pouvez diminuer le nombre de DWU.For less performance, reduce data warehouse units. Les coûts de stockage et de calcul sont facturés séparément. Ainsi, la modification des DWU n’a pas d’effet sur les coûts de stockage.Storage and compute costs are billed separately, so changing data warehouse units does not affect storage costs.

Les performances des DWU sont basées sur les métriques de charge de travail d’entrepôt de données suivantes :Performance for data warehouse units is based on these data warehouse workload metrics:

  • À quelle vitesse une requête de pool SQL standard peut analyser un grand nombre de lignes avant d’effectuer une agrégation complexe.How fast a standard SQL pool query can scan a large number of rows and then perform a complex aggregation. C’est une opération très gourmande en E/S et en UC.This operation is I/O and CPU intensive.
  • À quelle vitesse un pool SQL peut ingérer des données provenant d’Azure Storage Blob ou d’Azure Data Lake.How fast the SQL pool can ingest data from Azure Storage Blobs or Azure Data Lake. C’est une opération très gourmande en réseau et en UC.This operation is network and CPU intensive.
  • Rapidité avec laquelle la commande T-SQL CREATE TABLE AS SELECT peut copier une table.How fast the CREATE TABLE AS SELECT T-SQL command can copy a table. Cette opération implique la lecture des données sur le système de stockage, leur distribution entre les nœuds de l’appliance et la réécriture dans le système de stockage.This operation involves reading data from storage, distributing it across the nodes of the appliance and writing to storage again. Cette opération est très gourmande en UC, E/S et réseau.This operation is CPU, IO, and network intensive.

Augmentation du nombre de DWU :Increasing DWUs:

  • Modification linéaire des performances du système pour les analyses, les agrégations et les instructions CTASLinearly changes performance of the system for scans, aggregations, and CTAS statements
  • Augmentation du nombre de processus de lecture et d’écriture pour les opérations de chargement PolyBaseIncreases the number of readers and writers for PolyBase load operations
  • Augmentation du nombre maximal de requêtes simultanées et d’emplacements de concurrenceIncreases the maximum number of concurrent queries and concurrency slots.

Objectif de niveau de serviceService Level Objective

L’Objectif de niveau de service (SLO) est le paramètre d’extensibilité qui détermine le niveau de coût et de performance de votre entrepôt de données.The Service Level Objective (SLO) is the scalability setting that determines the cost and performance level of your data warehouse. Les niveaux de service pour Gen2 sont mesurés en unités cDWU (compute Data Warehouse Unit), par exemple DW2000C.The service levels for Gen2 are measured in compute data warehouse units (cDWU), for example DW2000c. Les niveaux de service Gen1 sont mesurés en unités DWU (Data Warehouse Unit), par exemple DW2000.Gen1 service levels are measured in DWUs, for example DW2000.

L’objectif de niveau de service (SLO) est le paramètre de scalabilité qui détermine le coût et le niveau de performance de votre pool SQL.The Service Level Objective (SLO) is the scalability setting that determines the cost and performance level of your SQL pool. Les niveaux de service pour le pool SQL Gen2 sont mesurés en Data Warehouse Units (DWU), par exemple DW2000c.The service levels for Gen2 SQL pool are measured in data warehouse units (DWU), for example DW2000c.

Notes

Azure Synapse Analytics Gen2 a récemment ajouté des fonctionnalités de mise à l’échelle supplémentaires pour prendre en charge les niveaux de calcul inférieurs de 100 cDWU.Azure Synapse Analytics Gen2 recently added additional scale capabilities to support compute tiers as low as 100 cDWU. Les entrepôts de données Gen1 existants qui ont besoin des niveaux de calcul inférieurs peuvent désormais être mis à niveau vers Gen2 dans les régions actuellement disponibles sans aucun coût supplémentaire.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 votre région n'est pas encore prise en charge, vous pouvez procéder à une mise à niveau vers une région qui l'est.If your region is not yet supported, you can still upgrade to a supported region. Pour plus d’informations, consultez Mettre à niveau vers Gen2.For more information, see Upgrade to Gen2.

Dans T-SQL, le paramètre SERVICE_OBJECTIVE détermine les niveaux de service et de performance de votre pool SQL.In T-SQL, the SERVICE_OBJECTIVE setting determines the service level and the performance tier for your SQL pool.

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

Niveaux de performances et Data Warehouse UnitsPerformance Tiers and Data Warehouse Units

Chaque niveau de performances utilise une unité de mesure légèrement différente pour ses DWU.Each performance tier uses a slightly different unit of measure for their data warehouse units. Cette différence est répercutée sur la facture, car l’unité d’échelle s’applique directement à la facturation.This difference is reflected on the invoice as the unit of scale directly translates to billing.

  • Les entrepôts de données Gen1 sont mesurés en unités DWU.Gen1 data warehouses are measured in Data Warehouse Units (DWUs).
  • Les entrepôts de données Gen2 sont mesurés en unités cDWU.Gen2 data warehouses are measured in compute Data Warehouse Units (cDWUs).

Les DWU et les cDWU prennent en charge la mise à l’échelle du calcul (augmentation ou réduction) et la suspension du calcul lorsque vous n’avez pas besoin d’utiliser l’entrepôt de données.Both DWUs and cDWUs support scaling compute up or down, and pausing compute when you don't need to use the data warehouse. Ces opérations se font toutes à la demande.These operations are all on-demand. Gen2 utilise un cache sur disque local sur les nœuds de calcul pour améliorer les performances.Gen2 uses a local disk-based cache on the compute nodes to improve performance. Lorsque vous mettez à l’échelle ou suspendez le système, le cache est invalidé, et une période de préchauffage du cache est nécessaire pour pouvoir bénéficier de performances optimales.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.

Chaque serveur SQL (par exemple, myserver.database.windows.net) a un quota de d’unités de transaction de base de données (DTU) qui autorise un nombre spécifique d’unités d’entrepôt de données.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. Pour plus d’informations, consultez les limites de capacité de gestion de la charge de travail.For more information, see the workload management capacity limits.

Limites de capacitéCapacity limits

Chaque serveur SQL (par exemple, myserver.database.windows.net) a un quota de d’unités de transaction de base de données (DTU) qui autorise un nombre spécifique d’unités d’entrepôt de données.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. Pour plus d’informations, consultez les limites de capacité de gestion de la charge de travail.For more information, see the workload management capacity limits.

De combien de DWU ai-je besoin ?How many data warehouse units do I need

Le nombre idéal de DWU dépend en grande partie de votre charge de travail et de la quantité de données que vous avez chargées dans le système.The ideal number of data warehouse units depends very much on your workload and the amount of data you have loaded into the system.

Étapes pour rechercher la DWU la mieux adaptée à votre charge de travail :Steps for finding the best DWU for your workload:

  1. Commencez par sélectionner une DWU plus petite.Begin by selecting a smaller DWU.
  2. Surveillez les performances de votre application pendant le test des charges de données dans le système, en observant notamment le nombre de DWU sélectionné.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. Identifiez des besoins supplémentaires pour les périodes ponctuelles de pics d’activité.Identify any additional requirements for periodic periods of peak activity. Les charges de travail présentant d'importantes variations d'activité doivent être fréquemment mises à l’échelle.Workloads that show significant peaks and troughs in activity may need to be scaled frequently.

Le pool SQL est un système de Scale-out qui peut fournir des quantités importantes de calcul et lancer des requêtes sur une grande quantité de données.SQL pool is a scale-out system that can provision vast amounts of compute and query sizeable quantities of data.

Pour tester ses capacités de mise à l’échelle, surtout avec un nombre élevé de DWU, nous vous recommandons d’effectuer la mise à l’échelle de l’ensemble de données en vous assurant que vous disposez de suffisamment de données pour alimenter les UC.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. Pour le test de mise à l’échelle, nous recommandons d’utiliser au moins 1 To.For scale testing, we recommend using at least 1 TB.

Notes

Si les travaux peuvent être fractionnés entre les nœuds de calcul, les performances des requêtes augmentent uniquement avec une parallélisation renforcée.Query performance only increases with more parallelization if the work can be split between compute nodes. Si vous trouvez que la mise à l’échelle n’altère pas les performances, vous devrez éventuellement modifier la conception de votre table et/ou vos requêtes.If you find that scaling is not changing your performance, you may need to tune your table design and/or your queries. Pour des conseils de paramétrage des requêtes, consultez Gérer les requêtes utilisateur.For query tuning guidance, see Manage user queries.

AutorisationsPermissions

La modification des DWU requiert les autorisations décrites dans ALTER DATABASE.Changing the data warehouse units requires the permissions described in ALTER DATABASE.

Les rôles intégrés Azure, comme Contributeur de base de données SQL et Contributeur de SQL Server, peuvent changer les paramètres des DWU.Azure built-in roles such as SQL DB Contributor and SQL Server Contributor can change DWU settings.

Afficher les paramètres d’unités DWU actuelsView current DWU settings

Pour afficher le paramètre DWU actuel :To view the current DWU setting:

  1. Ouvrez l’Explorateur d’objets SQL Server dans Visual Studio.Open SQL Server Object Explorer in Visual Studio.
  2. Connectez-vous à la base de données associée au serveur SQL logique.Connect to the master database associated with the logical SQL server.
  3. Sélectionnez dans la vue de gestion dynamique sys.database_service_objectives.Select from the sys.database_service_objectives dynamic management view. Voici un exemple :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
;

Modifier les DWUChange data warehouse units

Portail AzureAzure portal

Pour modifier les DWU :To change DWUs:

  1. Ouvrez le portail Azure, ouvrez votre base de données, puis cliquez sur Mettre à l’échelle.Open the Azure portal, open your database, and click Scale.

  2. Sous Mettre à l’échelle, déplacez le curseur vers la gauche ou vers la droite pour modifier le paramètre DWU.Under Scale, move the slider left or right to change the DWU setting.

  3. Cliquez sur Enregistrer.Click Save. Un message de confirmation s’affiche.A confirmation message appears. Cliquez sur Oui pour confirmer ou sur Non pour annuler.Click yes to confirm or no to cancel.

PowerShellPowerShell

Notes

Cet article a été mis à jour pour tenir compte de l’utilisation du nouveau module Az d’Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Vous pouvez toujours utiliser le module AzureRM, qui continue à recevoir des correctifs de bogues jusqu’à au moins décembre 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Pour en savoir plus sur le nouveau module Az et la compatibilité avec AzureRM, consultez Présentation du nouveau module Az d’Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Pour des instructions d’installation du module Az, consultez Installer Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Pour modifier les DWU, utilisez l’applet de commande PowerShell Set-AzSqlDatabase.To change the DWUs, use the Set-AzSqlDatabase PowerShell cmdlet. L'exemple suivant définit l'objectif de niveau de service sur DW1000 pour la base de données MySQLDW hébergée sur le serveur 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"

Pour plus d’informations, consultez Applets de commande PowerShell pour Azure Synapse AnalyticsFor more information, see PowerShell cmdlets for Azure Synapse Analytics

T-SQLT-SQL

Avec T-SQL, vous pouvez afficher les paramètres actuels de DWU, les modifier et consulter la progression.With T-SQL you can view the current DWUsettings, change the settings, and check the progress.

Pour modifier les unités DWU :To change the DWUs:

  1. Connectez-vous à la base de données MASTER associée à votre serveur.Connect to the master database associated with your server.
  2. Utilisez l’instruction TSQL ALTER DATABASE.Use the ALTER DATABASE TSQL statement. L’exemple suivant définit l'objectif de niveau de service sur DW1000c pour la base de données MySQLDW.The following example sets the service level objective to DW1000c for the database MySQLDW.
ALTER DATABASE MySQLDW
MODIFY (SERVICE_OBJECTIVE = 'DW1000c')
;

API RESTREST APIs

Pour modifier les DWU, utilisez l’API REST Créer ou mettre à jour une base de données.To change the DWUs, use the Create or Update Database REST API. L’exemple suivant définit l'objectif de niveau de service sur DW1000c pour la base de données MySQLDW hébergée sur le serveur MyServer.The following example sets the service level objective to DW1000c for the database MySQLDW, which is hosted on server MyServer. Le serveur est un groupe de ressources Azure appelé 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
    }
}

Pour plus d’exemples d’API REST, consultez API REST pour Azure Synapse Analytics.For more REST API examples, see REST APIs for Azure Synapse Analytics.

Vérifier l’état des modifications de DWUCheck status of DWU changes

Les modifications de DWU peuvent prendre plusieurs minutes.DWU changes may take several minutes to complete. Si vous effectuez une mise à l’échelle automatique, envisagez d’implémenter une logique pour vous assurer que certaines opérations sont bien terminées avant de passer à une autre action.If you are scaling automatically, consider implementing logic to ensure that certain operations have been completed before proceeding with another action.

Nous vous conseillons de vérifier l’état de la base de données en différents points de terminaison afin d’implémenter correctement l’automatisation.Checking the database state through various endpoints allows you to correctly implement automation. Si le portail vous informe de la fin d’une opération et de l’état actuel des bases de données, il ne vous permet pas de programmer la vérification de l’état.The portal provides notification upon completion of an operation and the databases current state but does not allow for programmatic checking of state.

Vous ne pouvez pas vérifier l’état de la base de données pour les opérations de montée en puissance avec le portail Azure.You cannot check the database state for scale-out operations with the Azure portal.

Pour vérifier l’état des modifications de DWU :To check the status of DWU changes:

  1. Connectez-vous à la base de données MASTER associée à votre serveur.Connect to the master database associated with your server.
  2. Envoyez la requête suivante pour vérifier l’état de la base de données.Submit the following query to check database state.
SELECT    *
FROM      sys.databases
;
  1. Envoyez la requête suivante pour vérifier l’état de l’opération.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'
    ;
    

Cette vue de gestion dynamique renvoie des informations sur diverses opérations de gestion de votre pool SQL, comme l’opération et l’état de l’opération, qui a la valeur IN_PROGRESS ou COMPLETED.This DMV returns information about various management operations on your SQL pool such as the operation and the state of the operation, which is either IN_PROGRESS or COMPLETED.

Flux de travail de mise à l’échelleThe scaling workflow

Lorsque vous démarrez une opération de mise à l’échelle, le système arrête tout d’abord toutes les sessions ouvertes, ce qui annule toutes les transactions en cours pour garantir un état cohérent.When you start a scale operation, the system first kills all open sessions, rolling back any open transactions to ensure a consistent state. La mise à l’échelle intervient uniquement une fois la restauration des transactions effectuée.For scale operations, scaling only occurs after this transactional rollback has completed.

  • Pour une opération de montée en puissance, le système détache tous les nœuds de calcul, approvisionne le calcul supplémentaire, puis le réassocie à la couche de stockage.For a scale-up operation, the system detaches all compute nodes, provisions the additional compute nodes, and then reattaches to the storage layer.
  • Pour une opération de descente en puissance, le système détache tous les nœuds de calcul, puis rattache uniquement les nœuds nécessaire à la couche de stockage.For a scale-down operation, the system detaches all compute nodes and then reattaches only the needed nodes to the storage layer.

Étapes suivantesNext steps

Pour en savoir plus sur la gestion des performances, consultez Classes de ressources pour la gestion de la charge de travail et Limites de mémoire et de concurrence.To learn more about managing performance, see Resource classes for workload management and Memory and concurrency limits.