Che cosa sono i Databricks Asset Bundle?
Databricks Asset Bundles (DABs) sono uno strumento per facilitare l'adozione delle migliori pratiche di ingegneria del software, tra cui controllo del codice sorgente, revisione del codice, test e integrazione e consegna continua (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 DLT, endpoint di gestione dei modelli, esperimenti MLflow e modelli registrati MLflow
- Test unitari e test di integrazione
Il diagramma seguente fornisce una visualizzazione di alto livello di una pipeline CI/CD e di sviluppo con pacchetti.
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 più collaboratori e automazione sono essenziali e l'integrazione e la distribuzione continue (CI/CD) sono un requisito. 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.
- Iterare sui problemi di Machine Learning più rapidamente. Gestire le risorse della pipeline di ML (ad esempio processi di addestramento e inferenza batch) usando progetti di Machine Learning che seguono le best practice produttive fin dall'inizio.
- Definire gli standard organizzativi per i nuovi progetti creando modelli di pacchetto personalizzati che includano autorizzazioni predefinite, principali di servizio, e configurazioni CI/CD.
- Conformità alle normative: nei settori in cui la conformità alle normative è una preoccupazione significativa, i pacchetti possono contribuire a mantenere una cronologia delle versioni del codice e del lavoro delle infrastrutture. 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.
Configura l'ambiente per l'uso dei bundle
Si utilizza il CLI di Databricks per implementare bundle dalla riga di comando. Per installare il Databricks CLI, vedere 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. Per i bundle è necessario abilitare la funzionalità di gestione dei file nell'area di lavoro. 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 scenari di autenticazione assistiti, come flussi di lavoro manuali in cui si utilizza il web browser per accedere alla workspace di destinazione di Azure Databricks (quando richiesto dal CLI di Databricks), si consiglia di utilizzare l'autenticazione OAuth da utente a macchina (U2M). 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 principali di servizio di Azure Databricks ed è ideale per utilizzare Asset Bundles 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 profili esistenti, in un terminale o un prompt dei comandi separato, usare la CLI di Databricks 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
. Vedere Sviluppo degli Databricks Asset Bundles. - Come valore del mapping
profile
nel mapping di primo livello del file di configurazione del bundleworkspace
(anche se Databricks consiglia di usare il mappinghost
impostato sull'URL dell'area di lavoro di Azure Databricks anziché sul mappingprofile
, in quanto rende i file di configurazione del bundle più portabili). Consultare la copertura della mappatura nell'areaprofile
. - Se il nome del profilo di configurazione è
DEFAULT
, viene usato per impostazione predefinita quando non è specificata l'opzione della riga di comando-p <profile-name>
o il mappingprofile
(ohost
).
Per l'autenticazione OAuth M2M, eseguire le operazioni seguenti:
Completare le istruzioni di configurazione dell'autenticazione M2M OAuth. Vedere Autorizzare l'accesso non presidiato alle risorse di Azure Databricks con un'entità servizio utilizzando OAuth.
Installare il Databricks CLI nella risorsa di calcolo di destinazione in uno dei seguenti modi:
- Per installare manualmente l'interfaccia della riga di comando di Databricks nella risorsa di calcolo in tempo reale, vedere installare o aggiornare l'interfaccia della riga di comando di Databricks.
- Per usare GitHub Actions per installare automaticamente il Databricks CLI in una macchina virtuale GitHub, consultare setup-cli in GitHub.
- Per utilizzare altri sistemi CI/CD per installare automaticamente la CLI di Databricks su una macchina virtuale, consultare la documentazione del fornitore del sistema CI/CD e Installare o aggiornare la CLI di Databricks.
Impostare le variabili di ambiente seguenti nella risorsa di calcolo come indicato di seguito:
, impostare su l'URL per-area di lavoro di Azure Databricks , ad esempio . , impostato sul valore dell'ID applicazione dell'entità servizio di Azure Databricks. impostare sul valore OAuth Segreto dell'entità servizio di Azure Databricks.
Per impostare queste variabili di ambiente, vedere 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 predefiniti di bundle forniti da Databricks e pone 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 job in Azure Databricks usando Databricks Asset Bundles.
- Creare un pacchetto che distribuisce un notebook in un'area di lavoro di Azure Databricks e che successivamente esegue il notebook distribuito come una pipeline DLT. Vedere Sviluppo di pipeline DLT con i Databricks Asset Bundles.
- Creare un bundle che implementa ed esegue uno stack automatizzato di 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 costruisce, distribuisce e chiama un file wheel di Python. Consultare Sviluppa un file wheel di Python usando i Databricks Asset Bundles.
- Creare un modello personalizzato che tu e altri utenti possano usare per creare un pacchetto. 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. Vedi Eseguire la migrazione da dbx a bundle.
- Scoprire le nuove funzionalità principali più recenti rilasciate per i Databricks Asset Bundle. Consultare Note di rilascio sulle funzionalità dei Databricks Asset Bundles.