Che cosa sono i Databricks Asset Bundle?
Databricks Asset Bundle (DAB) è uno strumento per facilitare l'adozione delle procedure consigliate di progettazione software, tra cui controllo del codice sorgente, revisione del codice, test e Integrazione recapito continuo (CI/CD), per i progetti relativi ai dati e all’IA. I bundle consentono di descrivere le risorse di Databricks, ad esempio processi, pipeline e notebook come file di origine. Questi file di origine forniscono una definizione end-to-end di un progetto, inclusa la modalità di strutturazione, test e distribuzione, che semplifica la collaborazione sui progetti durante lo sviluppo attivo.
I bundle consentono di includere metadati insieme ai file di origine del progetto. Quando si distribuisce un progetto usando bundle, questi metadati vengono usati per effettuare il provisioning dell'infrastruttura e di altre risorse. La raccolta di file e metadati di origine del progetto viene quindi distribuita come singolo bundle nell'ambiente di destinazione. Un bundle include le seguenti parti:
- Configurazioni necessarie per l'infrastruttura cloud e l'area di lavoro
- File di origine, ad esempio notebook e file Python, che includono la logica di business
- Definizioni e impostazioni per le risorse di Databricks, ad esempio processi di Azure Databricks, pipeline di tabelle live Delta, endpoint di gestione dei modelli, esperimenti MLflow e modelli registrati MLflow
- Unit test e test di integrazione
Il diagramma seguente fornisce una visualizzazione di alto livello di una pipeline di sviluppo e CI/CD con bundle:
Quando è consigliabile usare i bundle di asset di Databricks?
I bundle di asset di Databricks sono un approccio IaC (Infrastructure-as-Code) alla gestione dei progetti Databricks. Usarli quando si vogliono gestire progetti complessi in cui sono essenziali più collaboratori e automazioni e l'integrazione e la distribuzione continue (CI/CD) sono un requisito fondamentale. Poiché i bundle vengono definiti e gestiti tramite modelli e file YAML creati e gestiti insieme al codice sorgente, vengono mappati bene agli scenari in cui IaC è un approccio appropriato.
Alcuni scenari ideali per i bundle includono:
- Sviluppare progetti di dati, analisi e Machine Learning in un ambiente basato su team. I bundle consentono di organizzare e gestire in modo efficiente vari file di origine. Ciò garantisce una collaborazione uniforme e processi semplificati.
- Eseguire l'iterazione dei problemi di Machine Learning più velocemente. Gestire le risorse della pipeline di ML (ad esempio processi di training e inferenza batch) usando progetti di Machine Learning che seguono le procedure consigliate di produzione fin dall'inizio.
- Impostare gli standard organizzativi per i nuovi progetti creando modelli di bundle personalizzati che includono autorizzazioni predefinite, entità servizio e configurazioni CI/CD.
- Conformità alle normative: nei settori in cui la conformità alle normative è un problema significativo, i bundle possono contribuire a mantenere una cronologia con controllo delle versioni del codice e del lavoro dell'infrastruttura. In questo modo si assiste nella governance e si garantisce che vengano soddisfatti gli standard di conformità necessari.
Come funzionano i Databricks Asset Bundle?
I metadati del bundle vengono definiti usando file YAML che specificano gli artefatti, le risorse e la configurazione di un progetto Databricks. È possibile creare questo file YAML manualmente o generarne uno usando un modello di bundle. Il Databricks CLI può quindi essere usata per convalidare, distribuire ed eseguire bundle usando questi file YAML di bundle. È possibile eseguire progetti bundle da IDE, terminali o direttamente in Databricks. Questo articolo utilizza il Databricks CLI.
I bundle possono essere creati manualmente o in base a un modello. Il Databricks CLI fornisce modelli predefiniti per casi d'uso semplici, ma per processi più specifici o complessi è possibile creare modelli di bundle personalizzati per implementare le procedure consigliate del team e mantenere coerenti le configurazioni comuni.
Per ulteriori dettagli sulla configurazione YAML usata per esprimere i Databricks Asset Bundle, consultare Configurazione dei Databricks Asset Bundle.
Configurare l'ambiente per l'uso di bundle
Usare il Databricks CLI per distribuire facilmente bundle dalla riga di comando. Per installare Databricks CLI non è installato, consultare Installare o aggiornare il Databricks CLI.
I Databricks Asset Bundle sono disponibili nel Databricks CLI versione 0.218.0 o superiore. Per trovare la versione del Databricks CLI installata, eseguire il seguente comando:
databricks --version
Dopo aver installato il Databricks CLI, verificare che le aree di lavoro remote di Databricks siano configurate correttamente. I bundle richiedono che la funzionalità file dell'area di lavoro sia abilitata perché questa funzionalità supporta l'uso di file diversi dai notebook di Databricks, ad esempio i file .py
e .yml
. Se si usa Databricks Runtime versione 11.3 LTS o superiore, questa funzionalità è abilitata per impostazione predefinita.
Autenticazione
Azure Databricks offre diversi metodi di autenticazione:
- Per gli scenari di autenticazione interessati, ad esempio i flussi di lavoro manuali in cui si usa il Web browser per accedere all'area di lavoro di Azure Databricks di destinazione (quando richiesto dal Databricks CLI), usare l'autenticazione da utente a computer (U2M) OAuth. Questo metodo è ideale per sperimentare le esercitazioni introduttive per i Databricks Asset Bundle o per lo sviluppo rapido di bundle.
- Per scenari di autenticazione automatica senza intervento dell’utente, ad esempio flussi di lavoro completamente automatizzati in cui non è possibile usare il Web browser per accedere all'area di lavoro di Azure Databricks di destinazione in quel momento, usare l'autenticazione da computer a computer (M2M) OAuth. Questo metodo richiede l'uso di entità servizio di Azure Databricks ed è ideale per l'uso di bundle di asset di Databricks con sistemi CI/CD come GitHub.
Per l'autenticazione U2M OAuth, eseguire le operazioni seguenti:
Usare il Databricks CLI per avviare la gestione dei token OAuth in locale eseguendo il seguente comando per ogni area di lavoro di destinazione.
Nel seguente comando, sostituire
<workspace-url>
con l’URL per l'area di lavoro di Azure Databricks, per esempiohttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Il Databricks CLI richiede di salvare le informazioni immesse come profilo di configurazione di Azure Databricks. Premere
Enter
per accettare il nome del profilo suggerito oppure immettere il nome di un profilo nuovo o esistente. Qualsiasi profilo esistente con lo stesso nome viene sovrascritto con le informazioni immesse. È possibile usare i profili per cambiare rapidamente il contesto di autenticazione tra più aree di lavoro.Per ottenere un elenco di tutti i profili esistenti, in un terminale o un prompt dei comandi separato, usare il Databricks CLI per eseguire il comando
databricks auth profiles
. Per visualizzare le impostazioni esistenti di un profilo specifico, eseguire il comandodatabricks auth env --profile <profile-name>
.Nel Web browser completare le istruzioni visualizzate per accedere all'area di lavoro di Azure Databricks.
Per visualizzare il valore corrente del token OAuth di un profilo e il timestamp di scadenza imminente del token, eseguire uno dei comandi seguenti:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Se si dispone di più profili con lo stesso valore
--host
, potrebbe essere necessario specificare insieme le opzioni--host
e-p
per consentire al Databricks CLI di trovare le informazioni corrette corrispondenti sul token OAuth.
È possibile usare il nome del profilo di configurazione in uno o più dei seguenti modi ogni volta che si convalidano, distribuiscono, eseguono o eliminano definitivamente i bundle:
- Con l'opzione
-p <profile-name>
della riga di comando, accodata ai comandidatabricks bundle validate
,databricks bundle deploy
,databricks bundle run
odatabricks bundle destroy
. Consultare Sviluppo dei Databricks Asset Bundle. - Come valore della mappatura
profile
nella mappaturaworkspace
di livello superiore del file di configurazione del pacchetto (sebbene Databricks raccomandi di utilizzare la mappaturahost
impostata sull'URL del workspace di Azure Databricks al posto della mappaturaprofile
, poiché rende i file di configurazione del pacchetto più portabili). Consultare la copertura della mappatura nell'area di lavoroprofile
. - Se il nome del profilo di configurazione è
DEFAULT
, viene usato per impostazione predefinita quando l'opzione della riga di comando-p <profile-name>
o ilprofile
mapping (ohost
) non è specificata.
Per l'autenticazione OAuth M2M, eseguire le operazioni seguenti:
Completare le istruzioni di configurazione dell'autenticazione M2M OAuth. Consultare Autenticare l'accesso ad Azure Databricks con un'entità servizio usando OAuth (OAuth M2M).
Installare il Databricks CLI nella risorsa di calcolo di destinazione in uno dei seguenti modi:
- Per installare manualmente il Databricks CLI nella risorsa di calcolo in tempo reale, consultare Installare o aggiornare il Databricks CLI.
- Per usare GitHub Actions per installare automaticamente il Databricks CLI in una macchina virtuale GitHub, consultare setup-cli in GitHub.
- Per usare altri sistemi CI/CD per installare automaticamente il Databricks CLI in una macchina virtuale, consultare la documentazione del provider di sistema CI/CD e Installare o aggiornare il Databricks CLI.
Impostare le seguenti variabili d’ambiente nella risorsa di calcolo come indicato di seguito:
DATABRICKS_HOST
, impostato sull'URL per workspace di Azure Databricks, ad esempiohttps://adb-1234567890123456.7.azuredatabricks.net
.DATABRICKS_CLIENT_ID
, impostato sul valore dell'ID applicazione dell'entità servizio di Azure Databricks.DATABRICKS_CLIENT_SECRET
, impostato sul valore del Segreto OAuth dell'entità servizio di Azure Databricks.
Per impostare queste variabili d’ambiente, consultare la documentazione relativa al sistema operativo della risorsa di calcolo di destinazione o al sistema CI/CD.
Sviluppare il primo Databricks Asset Bundle
Il modo più rapido per avviare lo sviluppo di bundle consiste nell'usare un modello di progetto bundle. Creare il primo progetto bundle usando il comando init bundle del Databricks CLI. Questo comando presenta una scelta di modelli di impostazioni predefiniti bundle aggregare forniti da Databricks e chiede una serie di domande per inizializzare le variabili di progetto.
databricks bundle init
La creazione del bundle è il primo passaggio del ciclo di vita di un bundle. Il secondo passaggio consiste nello sviluppare il tuo pacchetto, un elemento chiave del quale è la definizione delle impostazioni del pacchetto e delle risorse nei file di configurazione databricks.yml
e delle risorse. Per informazioni sulla configurazione del bundle, consultare Configurazione dei Databricks Asset Bundle.
Suggerimento
Gli esempi di configurazione del bundle sono disponibili in Esempi di configurazione del bundle e nel repository di esempi di bundle in GitHub.
Passaggi successivi
- Creare un bundle che distribuisce un notebook in un'area di lavoro di Azure Databricks e quindi esegue il notebook distribuito come processo di Azure Databricks. Vedere Sviluppare un processo in Azure Databricks usando i bundle di asset di Databricks.
- Creare un bundle che distribuisce un notebook in un'area di lavoro di Azure Databricks e quindi esegue il notebook distribuito come pipeline di tabelle Live Delta. Consultare Sviluppare pipeline di tabelle Live Delta con i Databricks Asset Bundle.
- Creare un bundle che distribuisce ed esegue uno stack MLOps. Consultare Databricks Asset Bundle per stack MLOps.
- Aggiungere un bundle a un flusso di lavoro CI/CD (integrazione continua/distribuzione continua) in GitHub. Consultare Eseguire un flusso di lavoro CI/CD con i Databricks Asset Bundle e GitHub Actions.
- Creare un bundle che compila, distribuisce e chiama un file wheel Python. Consultare Sviluppare un file wheel Python usando i Databricks Asset Bundle.
- Creare un modello personalizzato che gli utenti possono usare per creare un bundle. Un modello personalizzato può includere autorizzazioni predefinite, entità servizio e configurazione CI/CD personalizzata. Consultare Modelli di progetto Databricks Asset Bundle.
- Eseguire la migrazione da dbx a Databricks Asset Bundle. Consultare Eseguire la migrazione da dbx ai bundle.
- Scoprire le nuove funzionalità principali più recenti rilasciate per i Databricks Asset Bundle. Consultare Versioni delle funzionalità dei Databricks Asset Bundle.