Condividi tramite


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:

Panoramica Databricks Asset 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 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.
  • 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.
  • 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.

Configurare l'ambiente per l'uso di 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 gli scenari di autenticazione presenti per, ad esempio 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 a riga di comando Databricks (CLI)), usare 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 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 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 esempio https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. 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 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 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 comandi databricks bundle validate, databricks bundle deploy, databricks bundle run o databricks bundle destroy. Consultare Sviluppo dei Databricks Asset Bundle.
  • Come valore del mapping profile nel mapping di primo livello del file di configurazione del bundle workspace (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ù portabili). Consultare la copertura della mappatura nell'area profile.
  • Se il nome del profilo di configurazione è DEFAULT, viene usato per impostazione predefinita quando l'opzione della riga di comando -p <profile-name> o il profile mapping (o host) non è specificata.

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 il Databricks CLI nella risorsa di calcolo di destinazione in uno dei seguenti modi:

  3. Impostare le variabili di ambiente seguenti nella risorsa di calcolo come indicato di seguito:

    • DATABRICKS_HOST, impostare l'URL per area di lavoro di Azure Databricks , ad esempio https://adb-1234567890123456.7.azuredatabricks.net.
    • , impostare sul valore dell'entità servizio dell'entità servizio di Azure Databricks.
    • impostare sul valore OAuth Secret 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 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