Condividi tramite


Unità data warehouse (DWU) per il pool SQL dedicato (in precedenza SQL Data Warehouse) in Azure Synapse Analytics

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 SELECT comando 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:

  1. Per iniziare, selezionare una DWU più piccola.

  2. 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.

  3. 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:

  1. Aprire Esplora oggetti di SQL Server in Visual Studio.
  2. Connettersi al database master associato al server SQL logico.
  3. 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:

  1. Aprire il portale di Azure, aprire il database e fare clic su Ridimensiona.

  2. Nella Scala, spostare il cursore a sinistra o a destra per modificare l'impostazione DWU.

  3. Fare clic su Salva. Verrà visualizzato un messaggio di conferma. Fare clic su 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:

  1. Connettersi al database master associato al server.
  2. 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:

  1. Connettersi al database master associato al server.

  2. 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.