Che cosa sono i bundle di asset di Databricks?
I bundle di asset di Databricks (DAB) sono uno strumento per facilitare l'adozione delle procedure consigliate di ingegneria del software, tra cui controllo del codice sorgente, revisione del codice, test e recapito continuo (CI/CD), per i progetti di dati e 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 dei 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 parti seguenti:
- 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 offre una visualizzazione generale 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. Utilizzarli quando si desidera 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, si adattano bene agli scenari in cui IaC è un approccio appropriato.
Alcuni degli scenari ideali per i bundle includono:
- Sviluppare progetti di dati, analisi e ML 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 ML più velocemente. Gestire le risorse della pipeline di ML (ad esempio processi di training e inferenza batch) usando progetti di ML 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 bundle di asset di Databricks?
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. L'interfaccia della riga di comando di Databricks 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 usa l'interfaccia della riga di comando di Databricks.
I bundle possono essere creati manualmente o in base a un modello. L'interfaccia della riga di comando di Databricks fornisce modelli predefiniti per use case 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 altre informazioni sulla configurazione YAML usata per esprimere i bundle di asset di Databricks, vedere Configurazione del bundle di asset di Databricks.
Configurare l'ambiente per usare i bundle
Usare l'interfaccia della riga di comando di Databricks per distribuire facilmente bundle dalla riga di comando. Per installare l'interfaccia della riga di comando di Databricks, si veda Installare o aggiornare l'interfaccia della riga di comando di Databricks.
I bundle di asset di Databricks sono disponibili nell'interfaccia della riga di comando di Databricks versione 0.218.0 o successiva. Per scoprire quale versione dell'interfaccia della riga di comando di Databricks è stata installata, eseguire il comando seguente:
databricks --version
Dopo aver installato l'interfaccia della riga di comando di Databricks, 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 file .py
e .yml
. Se si usa Databricks Runtime versione 11.3 LTS o successiva, questa funzionalità è abilitata per impostazione predefinita.
Autenticazione
Azure Databricks offre diversi metodi di autenticazione:
- Per gli scenari di autenticazione con intervento dell’utente, 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 dall'interfaccia della riga di comando di Databricks), usare l'autenticazione da utente a computer (U2M) OAuth. Questo metodo è ideale per sperimentare le esercitazioni introduttive per i bundle di asset di Databricks 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 l'interfaccia della riga di comando di Databricks per avviare la gestione dei token OAuth in locale eseguendo il comando seguente per ogni area di lavoro di destinazione.
Nel seguente comando, sostituire
<workspace-url>
con l'URL di singole aree di lavoro di Azure Databricks, ad esempiohttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
L'interfaccia della riga di comando di Databricks 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 l'interfaccia della riga di comando 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 all'interfaccia della riga di comando di Databricks di trovare le informazioni corrette corrispondenti sul token OAuth.
È possibile usare il nome del profilo di configurazione in uno o più dei modi seguenti ogni volta che si convalidano, distribuiscono, eseguono o eliminano definitivamente i bundle:
- Con l'opzione della riga di comando
-p <profile-name>
, aggiunta ai comandidatabricks bundle validate
,databricks bundle deploy
,databricks bundle run
odatabricks bundle destroy
. Vedere Sviluppo di bundle di asset di Databricks. - Come valore del mapping
profile
nel mapping di primo livelloworkspace
del file di configurazione del bundle (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ù portatili). Vedere copertura del mappingprofile
nell'area di lavoro. - Se il nome del profilo di configurazione è
DEFAULT
, viene usato per impostazione predefinita quando l'opzione-p <profile-name>
della riga di comando o il mappingprofile
(ohost
) non viene specificato.
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 l'interfaccia della riga di comando di Databricks nella risorsa di calcolo di destinazione in uno dei modi seguenti:
- 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 l'interfaccia della riga di comando di Databricks in una macchina virtuale GitHub, vedere setup-cli in GitHub.
- Per usare altri sistemi CI/CD per installare automaticamente l'interfaccia della riga di comando di Databricks in una macchina virtuale, vedere la documentazione del provider di sistema CI/CD e Installare o aggiornare l'interfaccia della riga di comando di Databricks.
Impostare le variabili di ambiente seguenti nella risorsa di calcolo come indicato di seguito:
DATABRICKS_HOST
, impostare sull'URL per singola area di lavoro di Azure Databricks, ad esempiohttps://adb-1234567890123456.7.azuredatabricks.net
.DATABRICKS_CLIENT_ID
, impostare sul valore dell'ID applicazione dell'entità servizio di Azure Databricks.DATABRICKS_CLIENT_SECRET
, impostare sul valore del segreto OAuth 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 bundle di asset di Databricks
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 dell'interfaccia della riga di comando di Databricks. Questo comando presenta una scelta di modelli di bundle predefiniti 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 sviluppo del bundle, un elemento chiave di cui vengono definite le impostazioni e le risorse del bundle nei file di configurazione del databricks.yml
e delle risorse. Per informazioni sulla configurazione del bundle, vedere Configurazione del bundle di asset di Databricks.
Suggerimento
Gli esempi di configurazione del bundle sono disponibili negli 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. Vedere Sviluppare pipeline di Delta Live Table con bundle di asset di Databricks.
- Creare un bundle che distribuisce ed esegue uno stack MLOps. Vedere Bundle di asset di Databricks per stack MLOps.
- Aggiungere un bundle a un flusso di lavoro CI/CD (integrazione continua/distribuzione continua) in GitHub. Vedere Eseguire un flusso di lavoro CI/CD con un bundle di asset databricks e GitHub Actions.
- Creare un bundle che compila, distribuisce e chiama un file wheel python. Vedere Sviluppare un file wheel Python usando i bundle di asset di Databricks.
- Creare un modello personalizzato che l'utente e altri utenti possono usare per creare un bundle. Un modello personalizzato può includere autorizzazioni predefinite, entità servizio e configurazione CI/CD personalizzata. Vedere Modelli di progetto del bundle di asset di Databricks.
- Eseguire la migrazione da dbx al bundle di asset di Databricks. Vedere Eseguire la migrazione da dbx a bundle.
- Scopri le funzionalità principali più recenti pubblicate per i bundle di asset di Databricks. Vedere le Note sulla versione delle funzionalità dei bundle di asset di Databricks.