Gestire la potenza di calcolo in Azure SQL Data Warehouse (Panoramica)Manage compute power in Azure SQL Data Warehouse (Overview)

L'architettura di SQL Data Warehouse separa le risorse di archiviazione e calcolo consentendo a entrambe di eseguire il ridimensionamento in modo indipendente.The architecture of SQL Data Warehouse separates storage and compute, allowing each to scale independently. Pertanto, è possibile ridimensionare il calcolo per soddisfare le richieste di prestazioni, a prescindere dalla quantità di dati.As a result, compute can be scaled to meet performance demands independent of the amount of data. Come conseguenza logica di questa architettura, la fatturazione è separata per calcolo e archiviazione.A natural consequence of this architecture is that billing for compute and storage is separate.

Questa panoramica descrive il funzionamento della scalabilità orizzontale con SQL Data Warehouse e come usare le funzionalità di sospensione, ripresa e ridimensionamento di SQL Data Warehouse.This overview describes how scale out works with SQL Data Warehouse and how to utilize the pause, resume, and scale capabilities of SQL Data Warehouse.

Funzionamento delle operazioni di gestione del calcolo in SQL Data WarehouseHow compute management operations work in SQL Data Warehouse

L'architettura di SQL Data Warehouse consiste in un nodo di controllo, nodi di calcolo e di un livello di archiviazione suddiviso in 60 distribuzioni.The architecture for SQL Data Warehouse consists of a control node, compute nodes, and the storage layer spread across 60 distributions.

Durante una normale sessione attiva in SQL Data Warehouse, il nodo head del sistema gestisce i metadati e contiene l'ottimizzazione delle query distribuite.During a normal active session in SQL Data Warehouse, your system's head node manages the metadata and contains the distributed query optimizer. Al di sotto del nodo head si trovano i nodi di calcolo e il livello di archiviazione.Beneath this head node are your compute nodes and your storage layer. Considerando 400 DWU, il sistema dispone di un nodo head, di quattro nodi di calcolo e del livello di archiviazione, per 60 distribuzioni.For a DWU 400, your system has one head node, four compute nodes, and the storage layer, consisting of 60 distributions.

Quando si eseguono operazioni di ridimensionamento o sospensione, il sistema termina innanzitutto le query in entrata, quindi esegue il rollback delle transazioni per garantire la coerenza.When you undergo a scale or pause operation, the system first kills all incoming queries and then rolls back transactions to ensure a consistent state. Per le operazioni di scalabilità, quest'ultima si verificherà solamente al completamento del rollback di transazione.For scale operations, scaling will only occur once this transactional rollback has completed. Per le operazioni di scalabilità verticale con aumento di prestazioni, il sistema esegue il provisioning del numero di nodi di calcolo aggiuntivi desiderati, quindi inizia a ricollegare i nodi di calcolo al livello di archiviazione.For a scale-up operation, the system provisions the extra desired number of compute nodes, and then begins reattaching the compute nodes to the storage layer. Per un'operazione di scalabilità verticale con diminuzione delle prestazioni, i nodi non più necessari vengono rilasciati e quelli rimanenti si ricollegano al numero appropriato di distribuzioni.For a scale-down operation, the unneeded nodes are released and the remaining compute nodes reattach themselves to the appropriate number of distributions. Per un'operazione di sospensione, vengono rilasciati tutti i nodi di calcolo e nel sistema vengono eseguite varie operazioni di metadati per lasciarlo in uno stato stabile.For a pause operation, all compute nodes are released and your system will undergo a variety of metadata operations to leave your final system in a stable state.

DWUDWU # di nodi di calcolo#of compute nodes # di distribuzioni per nodo# of distributions per node
100100 11 6060
200200 22 3030
300300 33 2020
400400 44 1515
500500 55 1212
600600 66 1010
10001000 1010 66
12001200 1212 55
15001500 1515 44
20002000 2020 33
30003000 3030 22
60006000 6060 11

Le tre funzioni principali per la gestione del calcolo sono:The three primary functions for managing compute are:

  1. SospendiPause
  2. RiprendiResume
  3. ScalabilitàScale

Ciascuna di queste operazioni può richiedere alcuni minuti.Each of these operations may take several minutes to complete. In caso di operazioni automatiche di ridimensionamento/sospensione/ripresa, si potrebbe voler implementare la logica per assicurare il completamento di determinate operazioni prima di procedere con altre.If you are scaling/pausing/resuming automatically, you may want to implement logic to ensure that certain operations have been completed before proceeding with another action.

Verificando lo stato del database in vari endpoint sarà possibile implementare correttamente l'automazione di tali operazioni.Checking the database state through various endpoints will allow you to correctly implement automation of such operations. Il portale invierà notifiche una volta completata un'operazione e indicherà lo stato corrente del database. Tuttavia non è possibile verificare lo stato in maniera programmatica.The portal will provide notification upon completion of an operation and the databases current state but does not allow for programmatic checking of state.

Nota

La funzionalità di gestione del calcolo non è presente in tutti gli endpoint.Compute management functionality does not exist across all endpoints.

Sospensione/ripresaPause/Resume ScalabilitàScale Controllare lo stato del databaseCheck database state
Portale di AzureAzure portal Yes Yes NoNo
PowerShellPowerShell Yes Yes Yes
API RESTREST API Yes Yes Yes
T-SQLT-SQL NoNo Yes Yes

Ridimensionare le risorse di calcoloScale compute

Le prestazioni in SQL Data Warehouse vengono misurate in [unità data warehouse (DWU)][unità data warehouse (DWU)], una misura astratta delle risorse di calcolo come CPU, memoria e larghezza di banda I/O.Performance in SQL Data Warehouse is measured in [data warehouse units (DWUs)][data warehouse units (DWUs)] which is an abstracted measure of compute resources such as CPU, memory, and I/O bandwidth. Un utente che desidera aumentare le prestazioni del sistema può farlo in vari modi, ad esempio tramite il portale, T-SQL e le API REST.A user who wishes to scale their system's performance can do so through various means, such as through the portal, T-SQL, and REST APIs.

In che modo è possibile ridimensionare le risorse di calcolo?How do I scale compute?

La potenza di calcolo è gestita da SQL Data Warehouse modificando l'impostazione DWU.Compute power is managed for you SQL Data Warehouse by changing the DWU setting. Le prestazioni aumentano in modo lineare man mano che si aggiungono più DWU per determinate operazioni.Performance increases linearly as you add more DWU for certain operations. Esistono varie offerte di DWU per assicurare un cambiamento netto delle prestazioni durante il ridimensionamento verticale del sistema.We offer DWU offerings that ensure that your performance will change noticeably when you scale your system up or down.

Per modificare le DWU, è possibile usare uno di questi metodi singoli.To adjust DWUs, you can use any of these individual methods.

Quante DWU è consigliabile usare?How many DWUs should I use?

Per comprendere il valore di DWU ideale, provare ad aumentarlo e diminuirlo ed eseguire alcune query dopo il caricamento dei dati.To understand what your ideal DWU value is, try scaling up and down, and running a few queries after loading your data. Poiché il ridimensionamento è rapido, è possibile provare diversi livelli di prestazioni in un'ora o meno.Since scaling is quick, you can try various performance levels in an hour or less.

Nota

SQL Data Warehouse è progettato per elaborare grandi quantità di dati.SQL Data Warehouse is designed to process large amounts of data. Per constatarne le reali funzionalità di ridimensionamento, specialmente per DWU di dimensioni maggiori, si consiglia di usare un set di dati di grandi dimensioni, possibilmente 1 TB o più.To see its true capabilities for scaling, especially at larger DWUs, you want to use a large data set which approaches or exceeds 1 TB.

Raccomandazioni per individuare l'impostazione DWU più adatta al proprio carico di lavoro:Recommendations for finding the best DWU for your workload:

  1. Per un data warehouse in sviluppo, iniziare con un numero più limitato di prestazioni DWU.For a data warehouse in development, begin by selecting a smaller DWU performance level. Un buon punto di partenza è DW400 o DW200.A good starting point is DW400 or DW200.
  2. Monitorare le prestazioni dell'applicazione, osservare che il numero di DWUs selezionato in relazione alle prestazioni che si osservano.Monitor your application performance, observing the number of DWUs selected compared to the performance you observe.
  3. Determinare di quanto si vogliono aumentare o ridurre le prestazioni per raggiungere il livello ottimale per i propri requisiti presupponendo una scalabilità lineare.Determine how much faster or slower performance should be for you to reach the optimum performance level for your requirements by assuming linear scale.
  4. Aumentare o diminuire il numero di DWU proporzionalmente alla velocità desiderata per le prestazioni del proprio carico di lavoro.Increase or decrease the number of DWUs in proportion to how much faster or slower you want your workload to perform.
  5. Continuare ad apportare modifiche finché non si raggiunge un livello di prestazioni ottimale per i propri requisiti aziendali.Continue making adjustments until you reach an optimum performance level for your business requirements.

Nota

Le prestazioni delle query aumentano con maggiore parallelizzazione solo se il lavoro può essere suddivise tra i nodi di calcolo.Query performance only increases with more parallelization if the work can be split between compute nodes. Se si ritiene che la scalabilità non stia modificando le prestazioni, si consiglia di leggere gli articoli sull'ottimizzazione di queste ultime per verificare qualora i dati siano distribuiti in modo ineguale o se si stiano introducendo grandi quantità di movimenti di dati.If you find that scaling is not changing your performance, please check out our performance tuning articles to check whether your data is unevenly distributed or if you are introducing a large amount of data movement.

Quando è necessario ridimensionare le DWU?When should I scale DWUs?

Il ridimensionamento delle DWU modifica i seguenti scenari importanti:Scaling DWUs alters the following important scenarios:

  1. Modifica lineare delle prestazioni del sistema per le analisi, l'aggregazione e le istruzioni CTASLinearly changing performance of the system for scans, aggregations, and CTAS statements
  2. Aumento del numero di lettori e writer durante il caricamento con PolyBaseIncreasing the number of readers and writers when loading with PolyBase
  3. Numero massimo di query simultanee e slot di concorrenzaMaximum number of concurrent queries and concurrency slots

Raccomandazioni sul momento più indicato per il ridimensionamento delle DWU:Recommendations for when to scale DWUs:

  1. Prima di eseguire un'operazione di caricamento o trasformazione di quantità di dati elevate, ridimensionare le DWU in modo che i dati siano disponibili più rapidamente.Before you perform a heavy data loading or transformation operation, scale up DWUs so that your data is available more quickly.
  2. Durante le ore lavorative più intense, eseguire il ridimensionamento per poter ricevere un numero maggiori di query simultanee.During peak business hours, scale to accommodate larger numbers of concurrent queries.

Sospendere il calcoloPause compute

Per ridurre i costi, è possibile sospendere e riprendere le risorse di calcolo su richiesta.To save costs, you can pause and resume compute resources on-demand. Ad esempio, se non si usa il database durante la notte e nei fine settimana, è possibile sospenderlo in questi intervalli di tempo e riprenderne l'esecuzione durante il giorno.For example, if you won't be using the database during the night and on weekends, you can pause it during those times, and resume it during the day. Mentre il database è sospeso, non verranno addebitate DWU.You won't be charged for DWUs while the database is paused.

Quando si sospende un database:When you pause a database:

  • Le risorse di calcolo e memoria vengono restituite al pool di risorse disponibili nel data center.Compute and memory resources are returned to the pool of available resources in the data center
  • I costi delle DWU sono pari a zero per la durata della pausa.DWU costs are zero for the duration of the pause.
  • L'archivio dati non è interessato e i dati rimangano invariati.Data storage is not affected and your data stays intact.
  • SQL Data Warehouse annulla tutte le operazioni in esecuzione o in coda.SQL Data Warehouse cancels all running or queued operations.

Per sospendere un database, usare uno di questi metodi singoli.To pause a database, use any of these individual methods.

Riavviare le risorse di calcoloResume compute

Quando si riattiva un database:When you resume a database:

  • SQL Data Warehouse acquisisce risorse di calcolo e di memoria per l'impostazione DWU.SQL Data Warehouse acquires compute and memory resources for your DWU setting.
  • Verranno ripresi gli addebiti per le ore di calcolo di DWU.Compute charges for your DWUs resume.
  • I dati saranno disponibili.Your data will be available.
  • Sarà necessario riavviare le query del carico di lavoro.You will need to restart your workload queries.

Per riavviare un database, usare uno di questi metodi singoli.To resume a database, use any of these individual methods.

Controllare lo stato del databaseCheck database state

Per riavviare un database, usare uno di questi metodi singoli.To resume a database, use any of these individual methods.

autorizzazioniPermissions

Il ridimensionamento del database richiede le autorizzazioni descritte in ALTER DATABASE.Scaling the database requires the permissions described in ALTER DATABASE. La sospensione e la ripresa richiedono l'autorizzazione Collaboratore Database SQL, in particolare Microsoft.Sql/servers/databases/action.Pause and Resume require the SQL DB Contributor permission, specifically Microsoft.Sql/servers/databases/action.

Passaggi successiviNext steps

Per comprendere più facilmente altri concetti importanti sulle prestazioni, vedere gli articoli seguenti:Refer to the following articles to help you understand some additional key performance concepts: