Ottimizzare l'utilizzo del cluster delle pipeline di tabelle live Delta con scalabilità automatica avanzata
Questo articolo illustra come usare la scalabilità automatica avanzata per ottimizzare le pipeline di tabelle live Delta in Azure Databricks.
La scalabilità automatica avanzata è abilitata per impostazione predefinita per tutte le nuove pipeline.
Per le pipeline serverless, la scalabilità automatica avanzata è sempre attiva e non può essere disabilitata. Vedere Configurare una pipeline di tabelle live Delta serverless.
Che cos'è la scalabilità automatica avanzata?
La scalabilità automatica avanzata di Databricks ottimizza l'utilizzo del cluster assegnando automaticamente le risorse del cluster in base al volume del carico di lavoro, con un impatto minimo sulla latenza di elaborazione dati delle pipeline.
La scalabilità automatica migliorata migliora la funzionalità di scalabilità automatica del cluster Azure Databricks con le funzionalità seguenti:
- La scalabilità automatica avanzata implementa l'ottimizzazione dei carichi di lavoro di streaming e aggiunge miglioramenti per migliorare le prestazioni dei carichi di lavoro batch. La scalabilità automatica migliorata ottimizza i costi aggiungendo o rimuovendo i computer man mano che cambia il carico di lavoro.
- La scalabilità automatica avanzata arresta in modo proattivo i nodi sottoutilizzati, garantendo al contempo che non ci siano attività non riuscite durante l'arresto. La funzionalità di scalabilità automatica del cluster esistente riduce i nodi solo se il nodo è inattivo.
La scalabilità automatica avanzata è la modalità di scalabilità automatica predefinita quando si crea una nuova pipeline nell'interfaccia utente delle tabelle live Delta. È possibile abilitare la scalabilità automatica avanzata per le pipeline esistenti modificando le impostazioni della pipeline nell'interfaccia utente. È anche possibile abilitare la scalabilità automatica avanzata quando si creano o si modificano pipeline con l'API Tabelle live Delta.
Quali metriche usano la scalabilità automatica avanzata per prendere una decisione di aumento o riduzione delle prestazioni?
La scalabilità automatica avanzata usa due metriche per decidere di aumentare o ridurre le prestazioni:
- Utilizzo dello slot di attività: si tratta del rapporto medio tra il numero di slot attività occupato e gli slot attività totali disponibili nel cluster.
- Dimensioni della coda di attività: numero di attività in attesa di essere eseguite negli slot di attività.
Abilitare la scalabilità automatica avanzata per una pipeline di tabelle live Delta
La scalabilità automatica avanzata è la modalità di scalabilità automatica predefinita quando si crea una nuova pipeline nell'interfaccia utente delle tabelle live Delta. È possibile abilitare la scalabilità automatica avanzata per le pipeline esistenti modificando le impostazioni della pipeline nell'interfaccia utente. È anche possibile abilitare la scalabilità automatica avanzata quando si crea o si modifica una pipeline con l'API Tabelle live Delta.
Per usare la scalabilità automatica avanzata, eseguire una delle operazioni seguenti:
- Impostare Modalità cluster su Scalabilità automatica avanzata durante la creazione o la modifica di una pipeline nell'interfaccia utente di Tabelle live Delta.
- Aggiungere l'impostazione
autoscale
alla configurazione del cluster pipeline e impostare ilmode
campo suENHANCED
. Vedere Configurare il calcolo per una pipeline di tabelle live Delta.
Usare le linee guida seguenti per la configurazione della scalabilità automatica avanzata per le pipeline di produzione:
- Lasciare l'impostazione
Min workers
predefinita. - Impostare l'impostazione
Max workers
su un valore in base alla priorità del budget e della pipeline.
L'esempio seguente configura un cluster con scalabilità automatica avanzata con almeno 5 ruoli di lavoro e un massimo di 10 ruoli di lavoro. max_workers
deve essere maggiore o uguale a min_workers
.
Nota
- La scalabilità automatica avanzata è disponibile solo per
updates
i cluster. La scalabilità automatica legacy viene usata permaintenance
i cluster. - La
autoscale
configurazione ha due modalità:LEGACY
: usare la scalabilità automatica del cluster.ENHANCED
: usare la scalabilità automatica avanzata.
{
"clusters": [
{
"autoscale": {
"min_workers": 5,
"max_workers": 10,
"mode": "ENHANCED"
}
}
]
}
Se la pipeline è configurata per l'esecuzione continua, viene riavviata automaticamente dopo la modifica della configurazione della scalabilità automatica. Dopo il riavvio, prevedere un breve periodo di aumento della latenza. Dopo questo breve periodo di maggiore latenza, le dimensioni del cluster devono essere aggiornate in autoscale
base alla configurazione e la latenza della pipeline dovrebbe tornare alle caratteristiche di latenza precedenti.
Limitare i costi per le pipeline che usano la scalabilità automatica avanzata
Nota
Non è possibile configurare i ruoli di lavoro per le pipeline serverless.
L'impostazione del parametro Max worker nel riquadro calcolo pipeline imposta un limite superiore per la scalabilità automatica. La riduzione del numero di ruoli di lavoro disponibili potrebbe aumentare la latenza per alcuni carichi di lavoro, ma impedisce il bursting dei costi delle risorse di calcolo durante le operazioni a elevato utilizzo di calcolo.
Databricks consiglia di ottimizzare le impostazioni Max worker per bilanciare il compromesso tra costi e latenza per le esigenze specifiche.
Monitorare le pipeline classiche abilitate per la scalabilità automatica avanzata
È possibile usare il log eventi nell'interfaccia utente delle tabelle live Delta per monitorare le metriche di scalabilità automatica avanzate per le pipeline classiche. Gli eventi di scalabilità automatica migliorati hanno il autoscale
tipo di evento. Di seguito sono riportati gli eventi di esempio:
Event | Message |
---|---|
Richiesta di ridimensionamento del cluster avviata | Scaling [up or down] to <y> executors from current cluster size of <x> |
Richiesta di ridimensionamento del cluster completata | Achieved cluster size <x> for cluster <cluster-id> with status SUCCEEDED |
Richiesta di ridimensionamento del cluster parzialmente completata | Achieved cluster size <x> for cluster <cluster-id> with status PARTIALLY_SUCCEEDED |
Richiesta di ridimensionamento del cluster non riuscita | Achieved cluster size <x> for cluster <cluster-id> with status FAILED |
È anche possibile visualizzare eventi di scalabilità automatica avanzati eseguendo direttamente una query sul registro eventi:
- Per eseguire query sul registro eventi per le metriche di backlog, vedere Monitorare il backlog dei dati eseguendo una query sul registro eventi.
- Per monitorare le richieste e le risposte di ridimensionamento del cluster durante le operazioni di scalabilità automatica avanzata, vedere Monitorare gli eventi di scalabilità automatica avanzata dal registro eventi per le pipeline senza l'abilitazione serverless.