Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo documento contiene raccomandazioni sulla scelta del numero ideale di unità data warehouse (DWU) per il pool SQL dedicato (in precedenza SQL Data Warehouse) per ottimizzare i prezzi e le prestazioni e su come modificare il numero di unità.
Che cosa sono le unità data warehouse
Un pool SQL dedicato (in precedenza SQL Data Warehouse) rappresenta una raccolta di risorse analitiche di cui viene effettuato il provisioning. Le risorse analitiche vengono definite come una combinazione di CPU, memoria e I/O.
Queste tre risorse vengono raggruppate in unità di scala di calcolo denominate unità data warehouse (DWU). Una DWU rappresenta una misura astratta e normalizzata delle risorse di calcolo e delle prestazioni.
Una modifica al livello di servizio modifica il numero di DWU disponibili per il sistema, che a sua volta regola le prestazioni e il costo del sistema.
Per prestazioni più elevate, è possibile aumentare il numero di unità data warehouse. Per ridurre le prestazioni, ridurre le unità data warehouse. I costi di archiviazione e calcolo vengono fatturati separatamente, pertanto la modifica delle unità data warehouse non influisce sui costi di archiviazione.
Le prestazioni per le unità data warehouse si basano su queste metriche del carico di lavoro del data warehouse:
- Quanto rapidamente una query al pool SQL dedicato standard (in precedenza SQL Data Warehouse) può analizzare un numero elevato di righe e quindi eseguire un'aggregazione complessa. Quest'operazione è intensiva in I/O e CPU.
- Velocità con cui il pool SQL dedicato (in precedenza SQL Data Warehouse) può inserire dati dai BLOB di Archiviazione di Azure o da Azure Data Lake. Questa operazione è di rete e utilizzo intensivo della CPU.
- Velocità con cui il
CREATE TABLE AS SELECTcomando T-SQL può copiare una tabella. Questa operazione comporta la lettura dei dati dall'archiviazione, la distribuzione tra i nodi dell'appliance e la scrittura nuovamente nell'archiviazione. Questa operazione è un uso intensivo della CPU, dell'I/O e della rete.
Aumento delle DWU:
- Modifica in modo lineare le prestazioni del sistema per scansioni, aggregazioni e dichiarazioni CTAS.
- Aumenta il numero di lettori e writer per operazioni di caricamento di PolyBase
- Aumenta il numero massimo di query simultanee e di slot di concorrenza
Obiettivo del livello di servizio
L'obiettivo del livello di servizio (SLO) è l'impostazione di scalabilità che determina il costo e il livello di prestazioni del pool SQL dedicato (in precedenza SQL Data Warehouse). I livelli di servizio per il pool SQL dedicato gen2 (in precedenza SQL Data Warehouse) vengono misurati in unità data warehouse (DWU), ad esempio DW2000c.
Annotazioni
Il pool SQL dedicato (in precedenza SQL Data Warehouse) Gen2 ha aggiunto di recente funzionalità di scalabilità aggiuntive per supportare i livelli di calcolo a partire da DW100c. I data warehouse esistenti attualmente in Gen1 che richiedono livelli di calcolo inferiori possono ora eseguire l'aggiornamento a Gen2 nelle aree attualmente disponibili senza costi aggiuntivi. Se l'area non è ancora supportata, è comunque possibile eseguire l'aggiornamento a un'area supportata. Per altre informazioni, vedere Eseguire l'aggiornamento a Gen2.
In T-SQL l'impostazione SERVICE_OBJECTIVE determina il livello di servizio e il livello di prestazioni per il pool SQL dedicato (in precedenza SQL Data Warehouse).
CREATE DATABASE mySQLDW
(Edition = 'Datawarehouse'
,SERVICE_OBJECTIVE = 'DW1000c'
)
;
Livelli di prestazioni e unità data warehouse
Ogni livello di prestazioni usa un'unità di misura leggermente diversa per le unità data warehouse. Questa differenza si riflette sulla fattura perché l'unità di scala si traduce direttamente nella fatturazione.
- I data warehouse gen1 vengono misurati in unità data warehouse (DWU).
- I data warehouse gen2 vengono misurati in unità data warehouse di calcolo (cDWU).
Le DWU e le DDU supportano il ridimensionamento delle risorse di calcolo verso l'alto o verso il basso e sospendono le risorse di calcolo quando non è necessario usare il data warehouse. Queste operazioni sono tutte su richiesta. Gen2 usa una cache basata su disco locale nei nodi di calcolo per migliorare le prestazioni. Quando si ridimensiona o si sospende il sistema, la cache viene invalidata e quindi è necessario un periodo di riscaldamento della cache prima di ottenere prestazioni ottimali.
Limiti capacità
Ogni server SQL (ad esempio, myserver.database.windows.net) ha una quota DTU (Database Transaction Unit) che consente un numero specifico di unità data warehouse. Per altre informazioni, vedere i limiti di capacità di gestione del carico di lavoro.
Quante unità data warehouse sono necessarie
Il numero ideale di unità data warehouse dipende molto dal carico di lavoro e dalla quantità di dati caricati nel sistema.
Passaggi per trovare la DWU migliore per il carico di lavoro:
Per iniziare, selezionare una DWU più piccola.
Monitorare le prestazioni dell'applicazione durante il test dei caricamenti dei dati nel sistema, osservando il numero di DWU selezionate rispetto alle prestazioni osservate. Verificare monitorando l'utilizzo delle risorse.
Identificare eventuali requisiti aggiuntivi per periodi periodici di attività di picco. I carichi di lavoro che mostrano picchi e troughe significativi nell'attività potrebbero dover essere ridimensionati di frequente.
Il pool SQL dedicato (in precedenza SQL Data Warehouse) è un sistema di scalabilità orizzontale in grado di fornire capacità di calcolo immense e di interrogare grandi quantità di dati.
Per visualizzare le sue vere funzionalità per il ridimensionamento, in particolare in DWU di dimensioni maggiori, è consigliabile ridimensionare il set di dati durante la scalabilità per assicurarsi di disporre di dati sufficienti per inserire le CPU. Per i test di scalabilità, è consigliabile usare almeno 1 TB.
Annotazioni
Le prestazioni delle query aumentano solo con una maggiore parallelizzazione se il lavoro può essere suddiviso tra nodi di calcolo. Se il ridimensionamento non cambia le prestazioni, potrebbe essere necessario ottimizzare la progettazione della tabella e/o le query. Per indicazioni sull'ottimizzazione delle query, vedere Gestire le query utente.
Permissions
Per modificare le unità data warehouse sono necessarie le autorizzazioni descritte in ALTER DATABASE.
I ruoli predefiniti di Azure, ad esempio Collaboratore database SQL e Collaboratore SQL Server, possono modificare le impostazioni DWU.
Visualizzare le impostazioni DWU correnti
Per visualizzare l'impostazione DWU corrente:
- Aprire Esplora oggetti di SQL Server in Visual Studio.
- Connettersi al database master associato al server SQL logico.
- Seleziona dalla vista di gestione dinamica sys.database_service_objectives. Ecco un esempio:
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
;
Modificare le unità di magazzino dati
Portale di Azure
Per cambiare il numero di DWU:
Aprire il portale di Azure, aprire il database e fare clic su Ridimensiona.
Nella Scala, spostare il cursore a sinistra o a destra per modificare l'impostazione DWU.
Fare clic su Salva. Verrà visualizzato un messaggio di conferma. Fare clic su Sì per confermare o no per annullare.
PowerShell
Annotazioni
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Per modificare le DWU, usare il cmdlet PowerShell Set-AzSqlDatabase . L'esempio seguente imposta l'obiettivo del livello di servizio su DW1000 per il database MySQLDW ospitato nel server MyServer.
Set-AzSqlDatabase -DatabaseName "MySQLDW" -ServerName "MyServer" -RequestedServiceObjectiveName "DW1000c"
Per altre informazioni, vedere Cmdlet di PowerShell per il pool SQL dedicato (in precedenza SQL Data Warehouse)
T-SQL
Con T-SQL è possibile visualizzare le impostazioni DWU correnti, modificare le impostazioni e controllare lo stato di avanzamento.
Per modificare le DWU:
- Connettersi al database master associato al server.
- Usare l'istruzione TSQL ALTER DATABASE. L'esempio seguente imposta l'obiettivo del livello di servizio su DW1000c per il database MySQLDW.
ALTER DATABASE MySQLDW
MODIFY (SERVICE_OBJECTIVE = 'DW1000c')
;
Interfacce di Programmazione delle Applicazioni REST
Per modificare le DWU, usare l'API REST Crea o Aggiorna database . Nell'esempio seguente l'obiettivo del livello di servizio viene impostato su DW1000c per il database MySQLDW, ospitato nel server MyServer. Il server si trova in un gruppo di risorse di Azure denominato 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": "DW1000c"
}
}
Per altri esempi di API REST, vedere API REST per il pool SQL dedicato (in precedenza SQL Data Warehouse).
Controllare lo stato delle modifiche DWU
Il completamento delle modifiche DWU può richiedere alcuni minuti. Se si esegue automaticamente il ridimensionamento, è consigliabile implementare la logica per assicurarsi che determinate operazioni siano state completate prima di procedere con un'altra azione.
Il controllo dello stato del database tramite vari endpoint consente di implementare correttamente l'automazione. Il portale fornisce una notifica al completamento di un'operazione e dello stato corrente dei database, ma non consente il controllo a livello di codice dello stato.
Non è possibile controllare lo stato del database per le operazioni di scalabilità orizzontale con il portale di Azure.
Per controllare lo stato delle modifiche DWU:
Connettersi al database master associato al server.
Inviare la query seguente per controllare lo stato del database.
SELECT * FROM sys.dm_operation_status WHERE resource_type_desc = 'Database' AND major_resource_id = 'MySQLDW' ;
Questa DMV restituisce informazioni sulle varie operazioni di gestione nel pool SQL dedicato (in precedenza SQL Data Warehouse), ad esempio l'operazione e lo stato dell'operazione, che è IN_PROGRESS o COMPLETED.
Flusso di lavoro di ridimensionamento
Quando si avvia un'operazione di ridimensionamento, il sistema chiude prima di tutto tutte le sessioni aperte, eseguendo il rollback delle eventuali transazioni aperte per assicurare uno stato coerente. Le operazioni di ridimensionamento vengono eseguite solo dopo il completamento del rollback delle transazioni.
- Per un'operazione di aumento delle prestazioni, il sistema scollega tutti i nodi di calcolo, effettua il provisioning dei nodi di calcolo aggiuntivi e quindi ricollega al livello di archiviazione.
- Per un'operazione di riduzione delle prestazioni, il sistema scollega tutti i nodi di calcolo e quindi ricollega solo i nodi necessari al livello di archiviazione.
Passaggi successivi
Per altre informazioni sulla gestione delle prestazioni, vedere Classi di risorse per la gestione del carico di lavoro e i limiti di memoria e concorrenza.