Condividi tramite


bundle gruppo di comandi

Nota

Queste informazioni si applicano all'interfaccia della riga di comando di Databricks 0.218.0 e versioni successive. Per trovare la versione dell'interfaccia della riga di comando di Databricks, eseguire databricks -v.

Il bundle gruppo di comandi all'interno dell'interfaccia della riga di comando di Databricks consente di convalidare, distribuire ed eseguire flussi di lavoro di Azure Databricks a livello di codice, ad esempio processi di Azure Databricks, pipeline di tabelle live delta e stack MLOps. Vedere Che cosa sono i bundle di asset di Databricks?.

Importante

Per installare l'interfaccia della riga di comando di Databricks, vedere Installare o aggiornare l'interfaccia della riga di comando di Databricks. Per configurare l'autenticazione per l'interfaccia della riga di comando di Databricks, vedere Autenticazione per l'interfaccia della riga di comando di Databricks.

I comandi vengono eseguiti bundle aggiungendoli a databricks bundle. Per visualizzare la Guida per il bundle comando, eseguire databricks bundle -h.

Creare un bundle da un modello di progetto

Per creare un bundle di asset di Databricks usando il modello di bundle di asset di Databricks predefinito per Python, eseguire il bundle init comando come indicato di seguito e quindi rispondere ai prompt sullo schermo:

databricks bundle init

Per creare un bundle di asset di Databricks usando un modello di bundle di asset di Databricks non predefinito, eseguire il bundle init comando come segue:

databricks bundle init <project-template-local-path-or-url> \
--project-dir="</local/path/to/project/template/output>"

Vedere anche:

Visualizzare lo schema di configurazione del bundle

Per visualizzare lo schema di configurazione del bundle di asset di Databricks, eseguire il bundle schema comando come indicato di seguito:

databricks bundle schema

Per restituire lo schema di configurazione del bundle di asset di Databricks come file JSON, eseguire il bundle schema comando e reindirizzare l'output a un file JSON. Ad esempio, è possibile generare un file denominato bundle_config_schema.json all'interno della directory corrente, come indicato di seguito:

databricks bundle schema > bundle_config_schema.json

Convalidare un bundle

Per verificare che i file di configurazione del bundle siano sintatticamente corretti, eseguire il bundle validate comando dalla radice del progetto bundle, come indicato di seguito:

databricks bundle validate

Per impostazione predefinita, questo comando restituisce un riepilogo dell'identità del bundle:

Name: MyBundle
Target: dev
Workspace:
  Host: https://my-host.cloud.databricks.com
  User: someone@example.com
  Path: /Users/someone@example.com/.bundle/MyBundle/dev

Validation OK!

Nota

Il bundle validate comando restituisce avvisi se le proprietà delle risorse vengono definite nei file di configurazione del bundle non trovati nello schema dell'oggetto corrispondente.

Sincronizzare l'albero di un bundle in un'area di lavoro

Usare il bundle sync comando per eseguire la sincronizzazione unidirezionale delle modifiche dei file di un bundle all'interno di una directory del file system locale, in una directory all'interno di un'area di lavoro remota di Azure Databricks.

Nota

bundle sync I comandi non possono sincronizzare le modifiche dei file da una directory all'interno di un'area di lavoro remota di Azure Databricks, in una directory all'interno di un file system locale.

databricks bundle sync i comandi funzionano allo stesso modo dei databricks sync comandi e vengono forniti come praticità per la produttività. Per informazioni sull'utilizzo dei comandi, vedere Gruppo di comandi di sincronizzazione.

Generare un file di configurazione del bundle

È possibile usare il bundle generate comando per generare la configurazione delle risorse per un processo o una pipeline già esistente nell'area di lavoro di Databricks. Questo comando genera un *.yml file per il processo o la pipeline nella resources cartella del progetto bundle e scarica anche tutti i notebook a cui si fa riferimento nella configurazione del processo o della pipeline. Attualmente, solo i processi con attività del notebook sono supportati da questo comando.

Importante

Il bundle generate comando viene fornito per praticità per generare automaticamente la configurazione delle risorse. Tuttavia, quando questa configurazione viene inclusa nel bundle e distribuita, crea una nuova risorsa e non aggiorna la risorsa esistente a meno che bundle deployment bind non sia stata usata per la prima volta nella risorsa.

Eseguire il bundle generate comando come segue:

databricks bundle generate [job|pipeline] --existing-[job|pipeline]-id [job-id|pipeline-id]

Ad esempio, il comando seguente genera un nuovo hello_job.yml file nella resources cartella del progetto bundle contenente il file YAML seguente e scarica nella simple_notebook.py cartella del src progetto.

databricks bundle generate job --existing-job-id 6565621249
# This is the contents of the resulting hello_job.yml file.
resources:
  jobs:
    6565621249:
      name: Hello Job
      format: MULTI_TASK
      tasks:
        - task_key: run_notebook
          existing_cluster_id: 0704-xxxxxx-yyyyyyy
          notebook_task:
            notebook_path: ./src/simple_notebook.py
            source: WORKSPACE
          run_if: ALL_SUCCESS
      max_concurrent_runs: 1

Associare le risorse del bundle

Il bundle deployment bind comando consente di collegare processi e pipeline definiti in bundle a pipeline e processi esistenti nell'area di lavoro di Azure Databricks in modo che diventino gestiti da Bundle di asset di Databricks. Se si associa una risorsa, le risorse di Azure Databricks esistenti nell'area di lavoro vengono aggiornate in base alla configurazione definita nel bundle a cui è associato dopo la successiva bundle deploy.

Suggerimento

È consigliabile confermare l'area di lavoro del bundle prima di eseguire l'associazione.

databricks bundle deployment bind [resource-key] [resource-id]

Ad esempio, il comando seguente associa la risorsa hello_job alla controparte remota nell'area di lavoro. Il comando restituisce un diff e consente di negare l'associazione di risorse, ma, se confermato, eventuali aggiornamenti alla definizione del processo nel bundle vengono applicati al processo remoto corrispondente quando il bundle viene distribuito successivamente.

databricks bundle deployment bind hello_job 6565621249

Usare bundle deployment unbind se si vuole rimuovere il collegamento tra il processo o la pipeline in un bundle e la relativa controparte remota in un'area di lavoro.

databricks bundle deployment unbind [resource-key]

Distribuire un bundle

Per distribuire un bundle nell'area di lavoro remota, eseguire il bundle deploy comando dalla radice del progetto bundle. Se non vengono specificate opzioni di comando, viene usata la destinazione predefinita dichiarata all'interno dei file di configurazione del bundle.

databricks bundle deploy

Per distribuire il bundle in una destinazione specifica, impostare l'opzione -t (o --target) insieme al nome della destinazione come dichiarato all'interno dei file di configurazione del bundle. Ad esempio, per una destinazione dichiarata con il nome dev:

databricks bundle deploy -t dev

Un bundle può essere distribuito in più aree di lavoro, ad esempio sviluppo, gestione temporanea e aree di lavoro di produzione. Fondamentalmente, la proprietà è ciò che determina l'identità root_path univoca di un bundle, che per impostazione predefinita è ~/.bundle/${bundle.name}/${bundle.target}. Di conseguenza, per impostazione predefinita, l'identità di un bundle è costituita dall'identità del deployer, dal nome del bundle e dal nome di destinazione del bundle. Se questi sono identici in bundle diversi, la distribuzione di questi bundle interferisce tra loro.

Inoltre, una distribuzione bundle tiene traccia delle risorse create nell'area di lavoro di destinazione in base ai relativi ID come stato archiviato nel file system dell'area di lavoro. I nomi delle risorse non vengono usati per correlare tra una distribuzione di bundle e un'istanza di risorsa, quindi:

  • Se una risorsa nella configurazione del bundle non esiste nell'area di lavoro di destinazione, viene creata.
  • Se nell'area di lavoro di destinazione è presente una risorsa nella configurazione del bundle, viene aggiornata nell'area di lavoro.
  • Se una risorsa viene rimossa dalla configurazione del bundle, viene rimossa dall'area di lavoro di destinazione se è stata distribuita in precedenza.
  • L'associazione di una risorsa a un bundle può essere dimenticata solo se si modifica il nome del bundle, la destinazione del bundle o l'area di lavoro. È possibile eseguire bundle validate per restituire un riepilogo contenente questi valori.

Eseguire un bundle

Per eseguire un processo o una pipeline specifica, usare il bundle run comando . È necessario specificare la chiave di risorsa del processo o della pipeline dichiarata all'interno dei file di configurazione del bundle. Per impostazione predefinita, viene usato l'ambiente dichiarato all'interno dei file di configurazione del bundle. Ad esempio, per eseguire un processo hello_job nell'ambiente predefinito, eseguire il comando seguente:

databricks bundle run hello_job

Per eseguire un processo con una chiave hello_job nel contesto di una destinazione dichiarata con il nome dev:

databricks bundle run -t dev hello_job

Se si vuole eseguire una convalida della pipeline, usare l'opzione --validate-only , come illustrato nell'esempio seguente:

databricks bundle run --validate-only my_pipeline

Per passare i parametri del processo, usare l'opzione --params , seguita da coppie chiave-valore delimitate da virgole, in cui la chiave è il nome del parametro. Ad esempio, il comando seguente imposta il parametro con il nome message su HelloWorld per il processo hello_job:

databricks bundle run --params message=HelloWorld hello_job

Nota

È possibile passare parametri alle attività di processo usando le opzioni dell'attività di processo, ma l'opzione --params è il metodo consigliato per passare i parametri del processo. Si verifica un errore se per un processo vengono specificati parametri di processo che non dispongono di parametri di processo definiti o se per un processo con parametri di processo definiti vengono specificati parametri di attività.

Per annullare e riavviare un aggiornamento di processo o pipeline esistente, usare l'opzione --restart :

databricks bundle run --restart hello_job

Distruggere un bundle

Per eliminare processi, pipeline e artefatti distribuiti in precedenza, eseguire il bundle destroy comando . Il comando seguente elimina tutti i processi, le pipeline e gli artefatti distribuiti in precedenza definiti nei file di configurazione del bundle:

databricks bundle destroy

Nota

L'identità di un bundle è costituita dal nome del bundle, dalla destinazione del bundle e dall'area di lavoro. Se è stata modificata una di queste e quindi si tenta di eliminare definitivamente un bundle prima della distribuzione, si verificherà un errore.

Per impostazione predefinita, viene richiesto di confermare l'eliminazione permanente dei processi, delle pipeline e degli artefatti distribuiti in precedenza. Per ignorare questi prompt ed eseguire l'eliminazione permanente automatica, aggiungere l'opzione --auto-approve al bundle destroy comando .