Raccomandazioni sull'ottimizzazione in Azure Databricks
Azure Databricks offre molte ottimizzazioni che supportano un'ampia gamma di carichi di lavoro nella lakehouse, che vanno dall'elaborazione ETL su larga scala alle query interattive ad hoc. Molte di queste ottimizzazioni vengono eseguite automaticamente. È possibile ottenere i vantaggi semplicemente usando Azure Databricks. Inoltre, la maggior parte delle funzionalità di Databricks Runtime richiede Delta Lake, il formato predefinito usato per creare tabelle in Azure Databricks.
Azure Databricks configura i valori predefiniti che ottimizzano la maggior parte dei carichi di lavoro. Tuttavia, in alcuni casi, la modifica delle impostazioni di configurazione migliora le prestazioni.
Miglioramenti delle prestazioni di Databricks Runtime
Nota
Usare la versione più recente di Databricks Runtime per sfruttare i miglioramenti delle prestazioni più recenti. Tutti i comportamenti documentati qui sono abilitati per impostazione predefinita in Databricks Runtime 10.4 LTS e versioni successive.
- La memorizzazione nella cache del disco accelera le letture ripetute nei file di dati Parquet caricando i dati nei volumi del disco collegati ai cluster di calcolo.
- L'eliminazione dinamica dei file migliora le prestazioni delle query ignorando le directory che non contengono file di dati che corrispondono ai predicati di query.
- L'unione casuale bassa riduce il numero di file di dati riscritti dalle
MERGE
operazioni e riduce la necessità di ricaculareZORDER
i cluster. - Apache Spark 3.0 ha introdotto l'esecuzione di query adattive, che offre prestazioni migliorate per molte operazioni.
Raccomandazioni di Databricks per migliorare le prestazioni
- È possibile clonare tabelle in Azure Databricks per creare copie profonde o superficiali dei set di dati di origine.
- L'ottimizzatore basato sui costi accelera le prestazioni delle query sfruttando le statistiche delle tabelle.
- È possibile usare Spark SQL per interagire con stringhe JSON senza analizzare le stringhe.
- Le funzioni di ordine superiore offrono prestazioni predefinite ottimizzate per molte operazioni che non dispongono di operatori Spark comuni. Le funzioni di ordine superiore offrono un vantaggio sulle prestazioni rispetto alle funzioni definite dall'utente.
- Azure Databricks offre una serie di operatori predefiniti e una sintassi speciale per l'uso di tipi di dati complessi, tra cui matrici, struct e stringhe JSON.
- È possibile ottimizzare manualmente le impostazioni per i join di intervallo. Vedere Ottimizzazione join di intervalli.
Comportamenti di consenso esplicito
- Azure Databricks offre una garanzia di isolamento serializzabile di scrittura per impostazione predefinita; la modifica del livello di isolamento in serializzabile può ridurre la velocità effettiva per le operazioni simultanee, ma potrebbe essere necessario quando è necessaria la serializzabilità di lettura.
- È possibile usare gli indici di filtro bloom per ridurre la probabilità di analisi dei file di dati che non contengono record corrispondenti a una determinata condizione.