Modalità di distribuzione del bundle di asset di Databricks
Questo articolo descrive la sintassi per le modalità di distribuzione del bundle di asset di Databricks. I bundle consentono di gestire i flussi di lavoro di Azure Databricks a livello di codice. Vedere Che cosa sono i bundle di asset di Databricks?
Nei flussi di lavoro CI/CD, gli sviluppatori in genere codificano, testano, distribuiscono ed eseguono soluzioni in varie fasi o modalità. Ad esempio, il set di modalità più semplice include una modalità mode
o configurare presets
per una destinazione nel mapping di configurazione targets
. Per informazioni su targets
, vedere Mapping delle destinazioni di configurazione del bundle.
Modalità di sviluppo
Per distribuire il bundle in modalità di sviluppo, è prima necessario aggiungere il mapping mode
, impostato su development
, nella destinazione desiderata. Ad esempio, questa destinazione denominata dev
viene considerata come destinazione di sviluppo:
targets:
dev:
mode: development
La distribuzione di una destinazione in modalità di sviluppo eseguendo il databricks bundle deploy -t <target-name>
comando implementa i comportamenti seguenti, che possono essere personalizzati usando i set di impostazioni:
- Antepone tutte le risorse non distribuite come file o notebook con il prefisso
[dev ${workspace.current_user.short_name}]
e contrassegna ogni processo e pipeline distribuiti con undev
tag Azure Databricks. - Contrassegna tutte le pipeline Delta Live Tables distribuite correlate come
development: true
. - Abilita l'uso di nelle chiamate correlate al
--compute-id <cluster-id>
comando , che esegue l'override dibundle deploy
tutte le definizioni di cluster esistenti già specificate nel file di configurazione del bundle correlato. Anziché usare--compute-id <cluster-id>
nelle chiamate correlate al comandobundle deploy
, è possibile impostare il mappingcompute_id
qui o come mapping figlio del mappingbundle
, sull'ID del cluster da usare. - Sospende tutte le pianificazioni e i trigger sulle risorse distribuite, ad esempio processi o monitoraggi qualitativi. Annullare l'uso di pianificazioni e trigger per un singolo processo impostando
schedule.pause_status
suUNPAUSED
. - Abilita le esecuzioni simultanee in tutti i processi distribuiti per un'iterazione più rapida. Disabilitare le esecuzioni simultanee per un singolo processo impostando
max_concurrent_runs
su1
. - Disabilita il blocco di distribuzione per un'iterazione più veloce. Questo blocco impedisce conflitti di distribuzione che potrebbero verificarsi in modalità di sviluppo. Riabilitare il blocco impostando
bundle.deployment.lock.enabled
sutrue
.
Modalità di produzione
Per distribuire il bundle in modalità di produzione, devi innanzitutto aggiungere il mapping mode
, impostato su production
, sulla destinazione desiderata. Ad esempio, questa destinazione denominata prod
viene considerata come destinazione di produzione:
targets:
prod:
mode: production
La distribuzione di una destinazione in modalità di produzione eseguendo il databricks bundle deploy -t <target-name>
comando implementa i comportamenti seguenti:
Verifica che tutte le pipeline distribuite Delta Live Tables correlate siano contrassegnate come
development: false
.Verifica che il ramo Git corrente sia uguale al ramo Git specificato nella destinazione. La specifica di un ramo Git nella destinazione è facoltativa e può essere eseguita con una proprietà aggiuntiva
git
come indicato di seguito:git: branch: main
Questa convalida può essere sottoposta a override specificando
--force
durante la distribuzione.Databricks consiglia di usare le entità servizio per le distribuzioni di produzione. È possibile applicare questa impostazione impostando
run_as
su un'entità servizio. Vedere Gestire le entità servizio e Specificare un'identità di esecuzione per un flusso di lavoro dei bundle di asset di Databricks. Se non si usano entità servizio, tenere presenti i comportamenti aggiuntivi seguenti:- Verifica che
artifact_path
i mapping ,file_path
,root_path
ostate_path
non vengano sottoposti a override a un utente specifico. - Verifica che i
run_as
mapping epermissions
siano specificati per chiarire quali identità dispongono di autorizzazioni specifiche per le distribuzioni.
- Verifica che
A differenza del comportamento precedente per impostare il
mode
mapping sudevelopment
, l'impostazione delmode
mapping suproduction
non consente l'override di eventuali definizioni di cluster esistenti specificate nel file di configurazione del bundle correlato, ad esempio usando l'opzione--compute-id <cluster-id>
o ilcompute_id
mapping.
Set di impostazioni personalizzati
I bundle di asset di Databricks supportano set di impostazioni configurabili per le destinazioni, che consentono di personalizzare i comportamenti per le destinazioni. I set di impostazioni disponibili sono elencati nella tabella seguente:
Preset | Descrizione |
---|---|
name_prefix |
Stringa di prefisso da anteporre ai nomi delle risorse. |
pipelines_development |
Indica se la pipeline è in modalità di sviluppo. I valori validi sono true o false . |
trigger_pause_status |
Stato di pausa da applicare a tutti i trigger e le pianificazioni. I valori validi sono PAUSED o UNPAUSED . |
jobs_max_concurrent_runs |
Numero massimo di esecuzioni simultanee consentite per i processi. |
tags |
Insieme di tag chiave:valore che si applicano a tutte le risorse che supportano i tag, inclusi processi ed esperimenti. I bundle di asset di Databricks non supportano i tag per la schema risorsa. |
source_linked_deployment |
Riservato per uso futuro. Indica se le risorse create durante la distribuzione puntano ai file di origine nell'area di lavoro anziché alle loro copie nell'area di lavoro. |
Nota
Se vengono impostati sia mode
che presets
, i set di impostazioni sostituiscono il comportamento della modalità predefinita e le impostazioni delle singole risorse sostituiscono i set di impostazioni. Ad esempio, se una pianificazione è impostata su UNPAUSED
, ma il preset trigger_pause_status
è impostato su PAUSED
, la pianificazione è riattivata.
L'esempio seguente mostra una configurazione predefinita personalizzata per la destinazione denominata dev
:
targets:
dev:
presets:
name_prefix: "testing_" # prefix all resource names with testing_
pipelines_development: true # set development to true for pipelines
trigger_pause_status: PAUSED # set pause_status to PAUSED for all triggers and schedules
jobs_max_concurrent_runs: 10 # set max_concurrent runs to 10 for all jobs
tags:
department: finance