Sviluppo di bundle di asset di Databricks
Questo articolo descrive lo sviluppo e il ciclo di vita di un bundle di asset di Databricks. Per informazioni generali sui bundle di asset di Databricks, si veda Che cosa sono i bundle di asset di Databricks?.
Ciclo di vita di un bundle
Per comprendere come usare in modo efficace i bundle, è necessario comprendere il ciclo di vita di base di un bundle:
- Lo scheletro del bundle viene creato in base a un progetto.
- Il progetto bundle viene sviluppato localmente. Un bundle contiene file di configurazione che definiscono le impostazioni dell'infrastruttura e dell'area di lavoro, come le destinazioni di distribuzione, le impostazioni per le risorse di Databricks, come processi e pipeline, nonché file di origine e altri artefatti.
- Il progetto bundle viene convalidato. La convalida verifica le impostazioni e le definizioni delle risorse nella configurazione del bundle rispetto agli schemi oggetto corrispondenti per garantire che il bundle sia implementabile in Databricks.
- Il bundle viene implementato in un'area di lavoro di destinazione. In genere, un bundle viene prima implementato nell'area di lavoro di sviluppo personale di un utente per i test. Al termine del test del bundle, il bundle può essere implementato nella gestione temporanea e quindi nelle destinazioni di produzione.
- È possibile eseguire le risorse del flusso di lavoro definite nel bundle implementato. Ad esempio, è possibile eseguire un processo.
- Se il bundle non viene più usato, può essere eliminato in modo permanente.
Usare i comandi bundle dell'interfaccia della riga di comando di Databricks per creare, convalidare, distribuire, eseguire ed eliminare bundle, come descritto nelle sezioni seguenti.
Passaggio 1: Creare un bundle
Esistono tre modi per iniziare a creare un bundle:
- Usare il modello di bundle predefinito.
- Usare un modello di bundle personalizzato.
- Creare un bundle manualmente.
Usare un modello di bundle predefinito
Per usare un modello di bundle predefinito di Azure Databricks per creare un bundle di avvio che è quindi possibile personalizzare ulteriormente, utilizzare l'interfaccia della riga di comando di Databricks versione 0.218.0 o successiva per eseguire il comando bundle init
, che consente di scegliere tra un elenco di modelli disponibili. Si veda Crea un bundle da un modello di progetto.
databricks bundle init
È possibile visualizzare l'origine per i modelli di bundle predefiniti nei repository pubblici GitHub di Databricks/cli e databricks/mlops-stacks.
Passare al passaggio 2: Popolare i file di configurazione del bundle.
Usare un modello di bundle personalizzato
er utilizzare un modello di bundle diverso da quello predefinito di Azure Databricks, è necessario conoscere il percorso locale o l'URL della posizione remota del modello di bundle. Usare l'interfaccia della riga di comando di Databricks versione 0.218.0 o successiva per eseguire il comando bundle init
come indicato di seguito:
databricks bundle init <project-template-local-path-or-url>
Per altre informazioni su questo comando, si veda Modelli di progetto per bundle di asset di Databricks. Per informazioni su un modello di bundle specifico, vedere la documentazione del provider di modelli di bundle.
Passare al passaggio 2: Popolare i file di configurazione del bundle.
Creare un bundle manualmente
Per creare un bundle manualmente anziché usando un modello di bundle, creare una directory di progetto nel computer locale o un repository vuoto con un provider Git di terze parti.
Nella directory o nel repository creare uno o più file di configurazione bundle come input. Questi file sono espressi in formato YAML. Deve essere presente almeno un file di configurazione bundle (e solo uno) denominato databricks.yml
. È necessario fare riferimento a file di configurazione bundle aggiuntivi nel mapping include
del file databricks.yml
.
Per creare più facilmente e rapidamente file YAML conformi alla sintassi di configurazione di bundle di asset Databricks, è possibile usare uno strumento come Visual Studio Code, PyCharm Professional o IntelliJ IDEA Ultimate che forniscono supporto per file YAML e file di schema JSON, come indicato di seguito:
Visual Studio Code
Aggiungere il supporto del server di linguaggio YAML a Visual Studio Code, ad esempio installando l'estensione YAML da Visual Studio Code Marketplace.
Generare il file di schema JSON di configurazione del bundle di asset di Databricks usando l'interfaccia della riga di comando di Databricks versione 0.218.0 o successiva per eseguire il comando
bundle schema
e reindirizzare l'output a un file JSON. Ad esempio, generare un file denominatobundle_config_schema.json
all'interno della directory corrente, come indicato di seguito:databricks bundle schema > bundle_config_schema.json
Usare Visual Studio Code per creare o aprire un file di configurazione bundle all'interno della directory corrente. Il nome del file deve essere
databricks.yml
.Aggiungere il commento seguente all'inizio del file di configurazione del bundle:
# yaml-language-server: $schema=bundle_config_schema.json
Nota
Nel commento precedente, se il file di schema JSON di configurazione del bundle di asset di Databricks si trova in un percorso diverso, sostituire
bundle_config_schema.json
con il percorso completo del file di schema.Usare le funzionalità del server di linguaggio YAML aggiunte in precedenza. Per altre informazioni, consultare la documentazione del server del linguaggio YAML.
PyCharm Professional
Generare il file di schema JSON di configurazione del bundle di asset di Databricks usando l'interfaccia della riga di comando di Databricks versione 0.218.0 o successiva per eseguire il comando
bundle schema
e reindirizzare l'output a un file JSON. Ad esempio, generare un file denominatobundle_config_schema.json
all'interno della directory corrente, come indicato di seguito:databricks bundle schema > bundle_config_schema.json
Configurare PyCharm per riconoscere il file di schema JSON di configurazione del bundle e quindi completare il mapping dello schema JSON seguendo le istruzioni riportate in Configurare uno schema JSON personalizzato.
Usare PyCharm per creare o aprire un file di configurazione del bundle. Il nome del file deve essere
databricks.yml
. Durante la digitazione, PyCharm verifica la sintassi e la formattazione dello schema JSON e fornisce hint di completamento del codice.
IntelliJ IDEA Ultimate
Generare il file di schema JSON di configurazione del bundle di asset di Databricks usando l'interfaccia della riga di comando di Databricks versione 0.218.0 o successiva per eseguire il comando
bundle schema
e reindirizzare l'output a un file JSON. Ad esempio, generare un file denominatobundle_config_schema.json
all'interno della directory corrente, come indicato di seguito:databricks bundle schema > bundle_config_schema.json
Configurare IntelliJ IDEA per riconoscere il file di schema JSON di configurazione del bundle e poi completare il mapping dello schema JSON seguendo le istruzioni riportate in Configurare uno schema JSON personalizzato.
Usare IntelliJ IDEA per creare o aprire un file di configurazione del bundle. Il nome del file deve essere
databricks.yml
. Durante la digitazione, IntelliJ IDEA verifica la sintassi e la formattazione dello schema JSON e fornisce hint di completamento del codice.
Passaggio 2: Popolare i file di configurazione del bundle
I file di configurazione del bundle definiscono i flussi di lavoro di Azure Databricks specificando impostazioni come i dettagli dell'area di lavoro, i nomi degli artefatti, i percorsi dei file, i dettagli del processo e i dettagli della pipeline. In genere, la configurazione del bundle contiene anche destinazioni di sviluppo, gestione temporanea e implementazione di produzione. Per informazioni sui file di configurazione del bundle, si veda Configurazione del bundle di asset di Databricks.
È possibile usare il comando bundle generate
per generare automaticamente la configurazione del bundle per una risorsa esistente nell'area di lavoro, poi usare bundle deployment bind
per collegare la configurazione del bundle alla risorsa nell'area di lavoro per mantenerle sincronizzate. Si veda Generare un file di configurazione del bundle e associare le risorse del bundle.
Passaggio 3: convalidare i file di configurazione del bundle
Prima di distribuire gli artefatti o eseguire un processo o una pipeline, è necessario verificare che le definizioni contenute nei file di configurazione del bundle siano valide. Per farlo, eseguire il comando bundle validate
dalla cartella radice del progetto bundle. Si veda Convalidare un bundle.
databricks bundle validate
Se la convalida ha esito positivo, viene restituito un riepilogo dell'identità del bundle insieme a un messaggio di conferma. Per restituire lo schema, usare il comando databricks bundle schema
. Si veda Visualizzare lo schema di configurazione del bundle.
Passaggio 4: Implementare il bundle
Prima di implementare il bundle, assicurarsi che nell'area di lavoro remota siano abilitati i file dell'area di lavoro. Si veda Che cosa sono i file di area di lavoro?.
Per distribuire un bundle in un'area di lavoro remota, eseguire il comando bundle deploy
dalla radice del bundle come descritto in Implementare un bundle. L'interfaccia della riga di comando di Databricks viene implementata nell'area di lavoro di destinazione indicata all'interno dei file di configurazione del bundle. Si veda Destinazioni.
databricks bundle deploy
L'identità univoca di un bundle è definita dal nome, dalla destinazione e dall'identità del deployer. Se questi attributi sono identici in bundle diversi, la distribuzione di questi bundle interferisce tra loro. Per altri dettagli, si veda Implementare un bundle.
Suggerimento
È possibile eseguire comandi databricks bundle
all'esterno della radice del bundle impostando la variabile di ambienteBUNDLE_ROOT
. Se questa variabile di ambiente non è impostata, i comandi databricks bundle
tentano di trovare la radice del bundle eseguendo una ricerca all'interno della directory di lavoro corrente.
Passaggio 5: Eseguire il bundle
Per eseguire un processo o una pipeline specifica, eseguire il bundle run
comando dalla radice del bundle, specificando il processo o la chiave della pipeline dichiarata all'interno dei file di configurazione del bundle, come descritto in Eseguire un processo o una pipeline. La chiave della risorsa è l'elemento di primo livello del blocco YAML della risorsa. Se non si specifica una chiave di processo o di pipeline, viene richiesto di selezionare, all’interno di un elenco di risorse disponibili, una risorsa da eseguire. Se l’opzione -t
non è specificata, si utilizza la destinazione predefinita indicata nei file di configurazione del bundle. Ad esempio, per eseguire un processo con la chiave hello_job
all'interno del contesto della destinazione predefinita:
databricks bundle run hello_job
Per eseguire un processo con una chiave hello_job
nel contesto di una destinazione indicata con il nome dev
:
databricks bundle run -t dev hello_job
Passaggio 6: Eliminare in modo permanente il bundle
Avviso
L'eliminazione definitiva di un bundle elimina definitivamente i processi, le pipeline e gli artefatti distribuiti in precedenza di un bundle. Questa azione non può essere annullata.
Se il bundle è terminato e si vogliono eliminare processi, pipeline e artefatti precedentemente implementati, eseguire il comando bundle destroy
dalla radice del bundle. Questo comando elimina tutti i processi, le pipeline e gli artefatti implementati in precedenza e definiti nei file di configurazione del bundle. Si veda Eliminare in modo permanente un bundle.
databricks bundle destroy
Per impostazione predefinita, viene richiesto di confermare l'eliminazione permanente dei processi, delle pipeline e degli artefatti implementati in precedenza. Per ignorare questi prompt ed eseguire l'eliminazione permanente automatica, aggiungere l'opzione --auto-approve
al comando bundle destroy
.