Condividi tramite


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:

Informazioni generali sui bundle di asset di Databricks

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:

  1. 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 esempio https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. 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 comando databricks auth env --profile <profile-name>.

  3. Nel Web browser, completare le istruzioni visualizzate per accedere all'area di lavoro di Azure Databricks.

  4. 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 comandi databricks bundle validate, databricks bundle deploy, databricks bundle run o databricks bundle destroy. Vedere Sviluppo di bundle di asset di Databricks.
  • Come valore del mapping profile nel mapping di primo livello workspace del file di configurazione del bundle (anche se Databricks consiglia di usare il mapping host impostato sull'URL dell'area di lavoro di Azure Databricks anziché sul mapping profile, in quanto rende i file di configurazione del bundle più portatili). Vedere copertura del mapping profile 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 mapping profile (o host) non viene specificato.

Per l'autenticazione OAuth M2M, eseguire le operazioni seguenti:

  1. Completare le istruzioni di configurazione dell'autenticazione M2M OAuth. Consultare Autenticare l'accesso ad Azure Databricks con un'entità servizio usando OAuth (OAuth M2M).

  2. Installare l'interfaccia della riga di comando di Databricks nella risorsa di calcolo di destinazione in uno dei modi seguenti:

  3. 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 esempio https://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