Condividi tramite


Migliori pratiche per la computazione serverless

Seguire questi consigli per ottimizzare la produttività, ridurre i costi e migliorare l'affidabilità quando si usano risorse di calcolo serverless per notebook, processi e pipeline in Azure Databricks.

Migrazione di carichi di lavoro a un ambiente di elaborazione serverless

Per garantire l'isolamento del codice utente nell'ambiente di calcolo serverless condiviso, Azure Databricks usa Lakeguard per isolare il codice utente dal motore Spark e da altri utenti.

Per questo motivo, alcuni carichi di lavoro richiedono modifiche al codice per continuare a lavorare sul calcolo serverless. Per un elenco delle limitazioni, vedere limitazioni di elaborazione serverless.

Alcuni carichi di lavoro sono più facili da migrare rispetto ad altri. I carichi di lavoro che soddisfano i requisiti seguenti saranno i più semplici da migrare:

  • I dati a cui si accede devono essere archiviati in Unity Catalog.
  • Il carico di lavoro deve essere compatibile con il calcolo standard.
  • Il carico di lavoro deve essere compatibile con Databricks Runtime 14.3 o versione successiva.

Per verificare se un carico di lavoro funzionerà sul calcolo serverless, eseguirlo in una risorsa di calcolo classica con modalità di accesso Standard e un runtime di Databricks 14.3 o versione successiva. Se l’esecuzione ha esito positivo, il carico di lavoro è pronto per la migrazione.

Azure Databricks consiglia di assegnare priorità alla compatibilità di calcolo serverless durante la creazione di nuovi carichi di lavoro. Per i carichi di lavoro esistenti che richiedono modifiche al codice, eseguirne la migrazione incrementale come parte del normale ciclo di sviluppo e manutenzione.

Specificare le versioni dei pacchetti Python

Quando si esegue la migrazione a un ambiente di calcolo serverless, aggiungere i pacchetti Python a versioni specifiche per garantire ambienti riproducibili. Se non si specifica una versione, il pacchetto potrebbe risolversi in una versione diversa in base alla versione dell'ambiente serverless, che può aumentare la latenza quando è necessario installare nuovi pacchetti.

Ad esempio, il requirements.txt file deve includere versioni specifiche del pacchetto, come illustrato di seguito:

numpy==2.2.2
pandas==2.2.3

Usare nomi univoci per le visualizzazioni temporanee

L'ambiente di calcolo serverless usa Spark Connect, un'architettura client-server che valuta le viste temporanee in modalità lazy. Questo comportamento è diverso dall'architettura spark classica e può causare errori quando il codice riutilizza lo stesso nome di visualizzazione temporanea, ad esempio in un ciclo.

Per evitare errori, usare nomi univoci per tutte le visualizzazioni temporanee nel codice.

Rete e connettività

L'ambiente di calcolo serverless non supporta il peering VPC, un modo comune per connettere il calcolo di Databricks classico alle origini dati nell'account cloud. In alternativa, usare le configurazioni di connettività di rete per gestire endpoint, firewall e connettività a servizi esterni.

Ad esempio, è possibile aggiungere un set di indirizzi IP in uscita stabili in VPN esterne a un elenco di indirizzi consentiti per abilitare la connettività da e verso l'ambiente di calcolo serverless di Azure Databricks. Per connettersi alle applicazioni aziendali ( ad esempio Salesforce) o ai database gestiti (ad esempio MySQL), usare Lakeflow Connect.

Per limitare e monitorare il traffico in uscita dall'elaborazione serverless, configurare i controlli di uscita per il tuo workspace. Vedere Gestire i criteri di rete per il controllo in uscita serverless.

Versioni dell'ambiente serverless

L'ambiente di calcolo serverless usa le versioni dell'ambiente anziché le versioni tradizionali di Databricks Runtime. Ciò rappresenta un cambiamento nel modo in cui si gestisce la compatibilità del carico di lavoro:

  • Approccio di Databricks Runtime: si seleziona una versione specifica di Databricks Runtime per il carico di lavoro e si gestiscono manualmente gli aggiornamenti per mantenere la compatibilità.
  • Approccio serverless: si scrive codice in una versione dell'ambiente e Azure Databricks aggiorna in modo indipendente il server sottostante.

Le versioni dell'ambiente forniscono un'API client stabile che garantisce che il carico di lavoro rimanga compatibile, mentre Azure Databricks offre in modo indipendente miglioramenti delle prestazioni, miglioramenti della sicurezza e correzioni di bug senza richiedere modifiche al codice ai carichi di lavoro.

Ogni versione dell'ambiente include librerie di sistema aggiornate, funzionalità e correzioni di bug, mantenendo al contempo la compatibilità con le versioni precedenti per i carichi di lavoro. Azure Databricks supporta ogni versione dell'ambiente per tre anni dalla data di rilascio, offrendo un ciclo di vita prevedibile per la pianificazione degli aggiornamenti.

Per selezionare una versione dell'ambiente per il carico di lavoro serverless, vedere Selezionare un ambiente di base. Per informazioni dettagliate sulle versioni dell'ambiente disponibili e sulle relative funzionalità, vedere Versioni dell'ambiente serverless.

Gestire le dipendenze

L'ambiente di calcolo serverless non supporta gli script init. Si consiglia di utilizzare ambienti serverless per installare e gestire le librerie per i carichi di lavoro serverless. Gli ambienti memorizzano nella cache i pacchetti installati, riducendo la latenza di avvio per le esecuzioni successive.

Per usare le librerie da un repository privato, configurare gli URL prefirmati per l'accesso autenticato al repository nelle impostazioni dell'ambiente.

Scegliere una modalità di prestazioni

L'ambiente di calcolo serverless di Azure Databricks offre due modalità di prestazioni che consentono di bilanciare la velocità e i costi in base al tipo di carico di lavoro, come indicato di seguito:

  • Modalità ottimizzata per le prestazioni (impostazione predefinita): ideale per carichi di lavoro interattivi che richiedono tempi di avvio rapidi. Azure Databricks mantiene un pool di risorse di calcolo già attive, pronte per ridurre al minimo il tempo di attesa.
  • Modalità Standard: ideale per processi e pipeline batch automatizzati che possono tollerare tempi di avvio più lunghi da 4 a 6 minuti. La modalità Standard può ridurre i costi fino a 70% rispetto alla modalità ottimizzata per le prestazioni. La modalità Standard è disponibile per i processi Lakeflow e le pipeline dichiarative di Lakeflow Spark, ma non per i notebook.

Scegliere la modalità più adatta ai requisiti del carico di lavoro. Per i processi pianificati in cui la latenza di avvio non è critica, la modalità Standard offre in genere il miglior valore. Per informazioni sui prezzi correnti, vedere la pagina dei prezzi di Databricks.

Ottimizzare i carichi di lavoro di streaming

Il calcolo serverless supporta lo streaming strutturato con le considerazioni seguenti:

  • La Trigger.AvailableNow modalità trigger è supportata per tutti i processi e le pipeline serverless. Gli intervalli di trigger basati sul tempo non sono supportati.

  • Quando si usa Trigger.AvailableNow, ogni trigger elabora tutti i dati disponibili nell'origine, il che può comportare micro batch di dimensioni maggiori rispetto a un trigger basato sul tempo. Per evitare errori di memoria insufficiente e mantenere prestazioni prevedibili, limitare la quantità di dati elaborati per micro batch impostando maxFilesPerTrigger o maxBytesPerTrigger.

Eseguire il debug di carichi di lavoro serverless

L'interfaccia utente di Spark non è disponibile nel calcolo serverless. Usare invece il profilo di query per analizzare le prestazioni delle query e risolvere i problemi dei carichi di lavoro. Il profilo di query fornisce informazioni dettagliate sull'esecuzione ed è accessibile dalla cronologia delle query nell'interfaccia utente di Azure Databricks.

Inserire dati da sistemi esterni

Le strategie alternative che è possibile usare per l'inserimento includono:

  • Blocchi predefiniti basati su SQL, ad esempio COPY INTO e tabelle di streaming .

Alternative di ingestione

Quando si usa l'ambiente di elaborazione serverless, è anche possibile usare le funzionalità seguenti per eseguire query sui dati senza spostarli.

  • Se desideri limitare la duplicazione dei dati o assicurarti di eseguire query sui dati più aggiornati possibili, Databricks consiglia di usare Delta Sharing. Vedere Che cos'è Delta Sharing?.
  • Per operazioni di creazione di report ad hoc e modello di verifica, Lakehouse Federation consente di eseguire query su database esterni direttamente da Azure Databricks senza spostare i dati, regolati da Unity Catalog. Vedere Che cos'è Lakehouse Federation?.

Provare una o entrambe le funzionalità e verificare se soddisfano i requisiti di prestazioni delle query.

Configurazioni di Spark supportate

Per automatizzare la configurazione di Spark nel calcolo serverless, Azure Databricks ha rimosso il supporto per l'impostazione manuale della maggior parte delle configurazioni spark. Per visualizzare un elenco dei parametri di configurazione di Spark supportati, vedere Configurare le proprietà di Spark per notebook e processi serverless.

L'esecuzione del processo in un ambiente di calcolo serverless avrà esito negativo se si imposta una configurazione Spark non supportata.

Monitorare il costo dell’elaborazione serverless

Sono disponibili più funzionalità che è possibile usare per monitorare il costo dell’elaborazione serverless: