Comportamento di dimensionamento, scalabilità e accodamento del warehouse SQL
Questo articolo illustra il comportamento di dimensionamento, scalabilità automatica e accodamento dei warehouse SQL.
Dimensionare un warehouse SQL serverless
Iniziare sempre con una dimensione per il warehouse SQL serverless più grande di quanto si pensi che sarà necessario e diminuire le dimensioni durante il test. Non iniziare con una dimensione piccola per il warehouse SQL serverless per poi salire. In generale, iniziare con un singolo warehouse SQL serverless e affidarsi ad Azure Databricks per trovare la dimensione corretta con cluster serverless, dando priorità ai carichi di lavoro e alle letture rapide dei dati. Vedere Scalabilità automatica serverless e accodamento delle query.
- Per ridurre la latenza di query per un determinato warehouse SQL serverless:
- Se le query vengono distribuite su disco, aumentare le dimensioni.
- Se le query sono altamente parallelizzabili, aumentare le dimensioni.
- Se si eseguono più query alla volta, aggiungere più cluster per la scalabilità automatica.
- Per ridurre i costi, provare a ridurre le dimensioni senza distribuire su disco o aumentare significativamente la latenza.
- Per trovare la dimensione giusta per il warehouse SQL serverless, usare i seguenti strumenti:
- Pagina monitoraggio: esaminare il conteggio di picco delle query. Se il picco in coda è comunemente superiore a uno, aggiungere cluster. Il numero massimo di query in una coda per tutti i tipi di warehouse SQL è 1.000. Vedere Monitorare un warehouse SQL.
- Cronologia delle query. Vedere Cronologia delle query.
- Profili di query (cercare byte distribuiti su disco superiore a 1). Vedere Profilo delle query.
Nota
Per i warehouse SQL serverless, le dimensioni del cluster possono in alcuni casi usare tipi di istanza diversi rispetto a quelli elencati nella documentazione per i warehouse SQL classici e professionali, per dimensioni equivalenti del cluster. In generale, il rapporto prezzo/prestazioni delle dimensioni del cluster per i warehouse SQL serverless è simile a quello per i warehouse SQL professionali e classici.
Accodamento e scalabilità automatica serverless delle query
Intelligent Workload Management (IWM) è un set di funzionalità che migliorano la capacità dei warehouse SQL serverless di elaborare un numero elevato di query in modo rapido e conveniente. Gestisce dinamicamente i carichi di lavoro usando modelli di machine learning per prevedere le richieste di risorse delle query in ingresso durante il monitoraggio della capacità di calcolo disponibile del warehouse in tempo reale. Tenere traccia di questi e altri segnali nel magazzino consente a IWM di rispondere ai cambiamenti delle richieste del carico di lavoro.
Questa gestione dinamica consente a IWM di eseguire le operazioni seguenti:
- Aumentare rapidamente il calcolo per mantenere una bassa latenza.
- Fornire l'ammissione di query a velocità più vicine alla limitazione dell'hardware.
- Diminuire rapidamente le dimensioni per ridurre al minimo i costi quando la domanda è bassa.
Quando una query arriva al warehouse, IWM ne stima il costo. Allo stesso tempo, IWM monitora in tempo reale la capacità di calcolo disponibile del warehouse. Successivamente, usando i modelli di machine learning, IWM stima se la query in ingresso ha la capacità di calcolo necessaria disponibile nel calcolo esistente. Se non dispone del calcolo necessario, la query viene aggiunta alla coda. Se il calcolo è necessario, la query inizia immediatamente a essere eseguita.
IWM monitora la coda all’incirca ogni 10 secondi. Se la coda non diminuisce abbastanza rapidamente, si avvia la scalabilità automatica per ottenere rapidamente più risorse di calcolo. Dopo l'aggiunta di nuova capacità, le query in coda vengono ammesse alle nuove risorse di calcolo. Con i warehouse SQL serverless, è possibile aggiungere rapidamente nuove risorse di calcolo. Il numero massimo di query in una coda per tutti i tipi di warehouse SQL è 1.000.
Dimensioni del cluster per i data warehouse SQL professionali e classici
La tabella in questa sezione mappa le dimensioni del cluster del warehouse SQL alle dimensioni del driver del cluster di Azure Databricks e ai conteggi dei ruoli di lavoro. Le dimensioni del driver si applicano solo ai warehouse SQL professionali e classici.
Dimensione del cluster | Tipo di istanza per il driver (si applica solo ai warehouse SQL professionali e classici) | Conteggio dei ruoli di lavoro |
---|---|---|
2X-Small | Standard_E8ds_v4 | 1 x Standard_E8ds_v4 |
X-Small | Standard_E8ds_v4 | 2 x Standard_E8ds_v4 |
Piccola | Standard_E16ds_v4 | 4 x Standard_E8ds_v4 |
Medio | Standard_E32ds_v4 | 8 x Standard_E8ds_v4 |
Grande | Standard_E32ds_v4 | 16 x Standard_E8ds_v4 |
X-Large | E64ds_v4 Standard | 32 x Standard_E8ds_v4 |
2X-Large | E64ds_v4 Standard | 64 x Standard_E8ds_v4 |
3X-Large | E64ds_v4 Standard | 128 x Standard_E8ds_v4 |
4X-Large | E64ds_v4 Standard | 256 x Standard_E8ds_v4 |
La dimensione dell'istanza di tutti i ruoli di lavoro è Standard_E8ds_v4.
Ogni driver e ruolo di lavoro dispone di otto dischi gestiti da 128 GB di archiviazione con ridondanza locale Standard collegati. I dischi collegati vengono caricati ogni ora.
Quota vCPU di Azure necessaria per i warehouse SQL classici e professionali
Per avviare un warehouse SQL classico o professionale, è necessario disporre di una quota di VCPU di Azure adeguata per le istanze di Standard_E8ds_v4 nell'account Azure. Usare le seguenti linee guida per determinare la quota di vCPU necessaria:
- Se sono presenti solo uno o due warehouse SQL, assicurarsi di avere 8 vCPU di Azure disponibili per ogni core nel cluster. In questo modo si garantisce un'adeguata vCPU di Azure per tenere conto del nuovo provisioning del warehouse che avviene approssimativamente ogni 24 ore. Se i warehouse SQL usano la scalabilità automatico o il bilanciamento del carico multi-cluster, potrebbe essere necessario aumentare il moltiplicatore.
- Man mano che aumenta il numero di warehouse SQL, è possibile usare una vCPU di Azure compresa tra 4 e 8 per ogni core nel cluster. Databricks consiglia di iniziare con un numero maggiore e monitorare la stabilità.
- Le vCPU di Azure usate dai warehouse SQL si aggiungono alle vCPU di Azure usate dai cluster usati da Data Science e Ingegneria dei dati, o da carichi di lavoro non Databricks.
Per richiedere una quota aggiuntiva di VCPU di Azure, vedere Quota standard: Aumentare i limiti per serie di VM nella documentazione di Azure.
Nota
Le informazioni contenute in questa tabella possono variare in base alla disponibilità del prodotto o dell'area geografica e al tipo di area di lavoro.
Accodamento e scalabilità automatica per i warehouse SQL classici e professionali
Azure Databricks limita il numero di query in un cluster assegnato a un warehouse SWL in base al costo per calcolare i risultati. L'aumento dei cluster per ogni warehouse si basa sulla velocità effettiva delle query, sulla velocità delle query in ingresso e sulle dimensioni della coda. Azure Databricks consiglia un cluster ogni 10 query simultanee. Il numero massimo di query in una coda per tutti i tipi di warehouse SQL è 1.000.
Azure Databricks aggiunge cluster in base al tempo necessario per elaborare tutte le query attualmente in esecuzione, tutte le query in coda e le query in ingresso previste nei due minuti successivi.
- Se meno di 2 minuti, non aumentare.
- Se da 2 a 6 minuti, aggiungere 1 cluster.
- Se da 6 a 12 minuti, aggiungere 2 cluster.
- Se da 12 a 22 minuti, aggiungere 3 cluster.
Altrimenti, Azure Databricks aggiunge 3 cluster più 1 cluster ogni 15 minuti aggiuntivi di caricamento previsto delle query.
Inoltre, un warehouse viene sempre aumentato se una query attende 5 minuti nella coda.
Se il carico è basso per 15 minuti, Azure Databricks riduce il carico del warehouse SQL. Mantiene un numero sufficiente di cluster per gestire il carico di picco negli ultimi 15 minuti. Ad esempio, se il carico massimo è di 25 query simultanee, Azure Databricks mantiene 3 cluster.
Accodamento delle query per i warehouse SQL classici e professionali
Azure Databricks accoda query quando tutti i cluster assegnati al warehouse eseguono query a capacità completa o quando il warehouse si trova nello stato STARTING
. Il numero massimo di query in una coda per tutti i tipi di warehouse SQL è 1.000.
Le query di metadati (ad esempio DESCRIBE <table>
) e le query di modifica dello stato (ad esempio SET
) non vengono mai accodate, a meno che il warehouse non si trovi nello stato STARTING
.