Consigli sulla configurazione dell’ambiente di calcolo
Questo articolo include raccomandazioni e procedure consigliate relative alla configurazione di calcolo.
Se il carico di lavoro è supportato, Databricks consiglia di usare l'ambiente di calcolo serverless anziché configurare la propria risorsa di calcolo. Il calcolo serverless è l'opzione di calcolo più semplice e affidabile. Non richiede alcuna configurazione, è sempre disponibile e viene ridimensionata in base al carico di lavoro. L'ambiente di calcolo serverless è disponibile per notebook, processi e tabelle Live Delta. Si veda Connettersi al calcolo serverless.
Inoltre, gli analisti dei dati possono usare sql warehouse serverless per eseguire query ed esplorare i dati in Databricks. Si veda Che cosa sono i warehouse SQL Serverless?.
Utilizzare i criteri per l’ambiente calcolo
Se si sta creando un nuovo calcolo da zero, Databricks consiglia di usare i criteri per l’ambiente di calcolo. I criteri per l’ambiente di calcolo consentono di creare risorse di calcolo preconfigurate progettate per scopi specifici, ad esempio calcolo personale, calcolo condiviso, utenti esperti e processi. I criteri limitano le decisioni da prendere durante la configurazione delle impostazioni di calcolo.
Se non si ha accesso ai criteri, contattare l'amministratore dell'area di lavoro. Si veda Criteri predefiniti e famiglie di criteri.
Considerazioni sul dimensionamento delle risorse di calcolo
Nota
I seguenti consigli presuppongono che la creazione di cluster non sia limitata. Gli amministratori dell'area di lavoro devono concedere questo privilegio solo agli utenti avanzati.
Spesso si pensa alle dimensioni dell’ambiente di calcolo in termini di numero di ruoli di lavoro, ma esistono altri fattori importanti da considerare:
- Totale core executor (calcolo): numero totale di core in tutti gli executor. Ciò determina il parallelismo massimo di un ambiente di calcolo.
- Memoria totale dell'executor: quantità totale di RAM in tutti gli executor. Ciò determina la quantità di dati che è possibile archiviare in memoria prima di eseguire lo spill su disco.
- Archiviazione locale dell'executor: tipo e quantità di spazio di archiviazione su disco locale. Il disco locale è usato principalmente in caso di spill durante operazioni di shuffle e memorizzazione nella cache.
Ulteriori considerazioni riguardano il tipo e le dimensioni dell'istanza del ruolo di lavoro, che influenzano anche i fattori precedenti. Quando si dimensiona l’ambiente calcolo, occorre tenere presente quanto segue:
- Quanti dati utilizzeranno il carico di lavoro?
- Qual è la complessità di calcolo del carico di lavoro?
- Da dove vengono letti i dati?
- Come vengono partizionati i dati nell'archiviazione esterna?
- Quanto parallelismo è necessario?
Rispondere a queste domande consentirà di determinare configurazioni di calcolo ottimali in base ai carichi di lavoro.
Esiste un equilibrio tra il numero di ruoli di lavoro e le dimensioni dei tipi di istanza del ruolo di lavoro. La configurazione del calcolo con due ruoli di lavoro, ognuno con 16 core e 128 GB di RAM, ha la stessa quantità di calcolo e memoria della configurazione del calcolo con 8 ruoli di lavoro, ognuno con 4 core e 32 GB di RAM.
Esempi di configurazione dell’ambiente di calcolo
Gli esempi seguenti mostrano raccomandazioni per l’ambiente di calcolo basate su tipi specifici di carichi di lavoro. Questi esempi includono anche configurazioni per evitare e perché tali configurazioni non sono adatte ai tipi di carico di lavoro.
Nota
Tutti gli esempi in questa sezione (oltre al training di Machine Learning) potrebbero trarre vantaggio dall'uso di un ambiente di calcolo serverless anziché dalla rotazione di una nuova risorsa di calcolo. Se il carico di lavoro non è supportato in serverless, usare le raccomandazioni seguenti per configurare la risorsa di calcolo.
Analisi dei dati
Gli analisti dei dati eseguono in genere l'elaborazione che richiede dati da più partizioni, causando molte operazioni casuali. Una risorsa di calcolo con un numero minore di nodi di dimensioni maggiori può ridurre le operazioni di I/O di rete e disco necessarie per eseguire queste sequenze casuali.
Un calcolo a nodo singolo con un tipo di macchina virtuale di grandi dimensioni è probabilmente la scelta migliore, in particolare per un singolo analista.
I carichi di lavoro analitici richiederanno probabilmente la lettura ripetuta degli stessi dati, quindi i tipi di nodo consigliati sono quelli ottimizzati per l'archiviazione con cache del disco abilitata o istanze con archiviazione locale.
Altre funzionalità consigliate per i carichi di lavoro analitici includono:
- Abilitare la terminazione automatica per assicurarsi che il calcolo venga terminato dopo un periodo di inattività.
- Valutare la possibilità di abilitare la scalabilità automatica in base al carico di lavoro tipico dell'analista.
ETL batch di base
Processi ETL batch semplici che non richiedono trasformazioni wide, ad esempio join o aggregazioni, in genere traggono vantaggio da Photon. Selezionare poi un'istanza per utilizzo generico che supporta Photon.
Le istanze con requisiti inferiori per la memoria e l'archiviazione possono comportare risparmi sui costi rispetto ad altri tipi di lavoro.
ETL batch complesso
Per un processo ETL complesso, ad esempio uno che richiede unioni e join in più tabelle, Databricks consiglia di usare meno ruoli di lavoro per ridurre la quantità di dati casuali. Per compensare la presenza di meno ruoli di lavoro, aumentare le dimensioni delle istanze.
Le trasformazioni complesse possono essere a elevato utilizzo di calcolo. Se si osservano errori di perdita significativi su disco o OOM, aumentare la quantità di memoria disponibile nelle istanze.
Facoltativamente, usare i pool per ridurre i tempi di avvio del calcolo e ridurre il runtime totale durante l'esecuzione di pipeline di processi.
Eseguire training di modelli di machine learning
Per eseguire il training di modelli di Machine Learning, Databricks consiglia di creare una risorsa di calcolo usando i criteri per l’ambiente di calcolo personale.
È consigliabile usare un calcolo a nodo singolo con un tipo di nodo di grandi dimensioni per la sperimentazione iniziale con i modelli di Machine Learning di training. La presenza di un numero inferiore di nodi riduce l'impatto delle sequenze casuali.
L'aggiunta di più ruoli di lavoro può contribuire alla stabilità, ma è consigliabile evitare di aggiungere troppi ruoli di lavoro a causa del sovraccarico dei dati casuali.
I tipi di lavoro consigliati sono ottimizzati per l'archiviazione con memorizzazione nella cache del disco abilitata o un'istanza con archiviazione locale per l'account per letture ripetute degli stessi dati e per abilitare la memorizzazione nella cache dei dati di training.
Le funzionalità aggiuntive consigliate per i carichi di lavoro di apprendimento automatico includono:
- Abilitare la terminazione automatica per assicurarsi che il calcolo venga terminato dopo un periodo di inattività.
- Usare i pool, che consentiranno di limitare il calcolo al tipo di istanza pre-approvato.
- Assicurarsi che le configurazioni di calcolo coerenti usino i criteri.