Condividi tramite


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 il mode campo su ENHANCED. 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 per maintenance i cluster.
  • La autoscale configurazione ha due modalità:
{
  "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.

Riquadro Calcolo nell'interfaccia utente pipeline, in cui è possibile impostare il numero massimo di ruoli di lavoro per la scalabilità automatica

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: