bundle
kommandogrupp
Kommentar
Den här informationen gäller för Databricks CLI-versionerna 0.205 och senare. Databricks CLI finns i offentlig förhandsversion.
Databricks CLI-användning omfattas av Databricks-licensen och Databricks sekretessmeddelande, inklusive eventuella användningsdatabestämmelser.
Med bundle
kommandogruppen i Databricks CLI kan du programmatiskt verifiera, distribuera och köra Azure Databricks-arbetsflöden som Azure Databricks-jobb, Delta Live Tables-pipelines och MLOps Stacks. Se Vad är Databricks-tillgångspaket?.
Du kör bundle
kommandon genom att lägga till dem i databricks bundle
. Om du vill visa hjälp för bundle
kommandot kör du databricks bundle -h
.
Skapa ett paket från en projektmall
Om du vill skapa ett Databricks-tillgångspaket med databricks-standardmallen för tillgångspaket för Python kör bundle init
du kommandot på följande sätt och svarar sedan på anvisningarna på skärmen:
databricks bundle init
Om du vill skapa ett Databricks-tillgångspaket med en anpassad Databricks-mall för tillgångspaket kör bundle init
du kommandot på följande sätt:
databricks bundle init <project-template-local-path-or-url> \
--project-dir="</local/path/to/project/template/output>"
Se även:
- Databricks Asset Bundle-projektmallar
- Utveckla ett jobb på Azure Databricks med databricks-tillgångspaket
- Utveckla Delta Live Tables-pipelines med Databricks-tillgångspaket
- Databricks-tillgångspaket för MLOps Stacks
Visa paketkonfigurationsschemat
Om du vill visa paketkonfigurationsschemat bundle schema
kör du kommandot enligt följande:
databricks bundle schema
Om du vill mata ut konfigurationsschemat för Databricks Asset Bundle som en JSON-fil kör bundle schema
du kommandot och omdirigerar utdata till en JSON-fil. Du kan till exempel generera en fil med namnet bundle_config_schema.json
i den aktuella katalogen enligt följande:
databricks bundle schema > bundle_config_schema.json
Verifiera ett paket
Kontrollera att paketkonfigurationsfilerna är syntaktiskt korrekta genom att köra bundle validate
kommandot från paketprojektets rot enligt följande:
databricks bundle validate
Som standard returnerar det här kommandot en sammanfattning av paketidentiteten:
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!
Kommentar
Kommandot bundle validate
matar ut varningar om resursegenskaper definieras i paketkonfigurationsfilerna som inte finns i motsvarande objekts schema.
Om du bara vill mata ut en sammanfattning av paketets identitet och resurser använder du samlingssammanfattning.
Synkronisera ett pakets träd till en arbetsyta
bundle sync
Använd kommandot för att utföra enkelriktad synkronisering av ett pakets filändringar i en lokal filsystemkatalog till en katalog i en fjärransluten Azure Databricks-arbetsyta.
Kommentar
bundle sync
kommandon kan inte synkronisera filändringar från en katalog i en fjärransluten Azure Databricks-arbetsyta, tillbaka till en katalog i ett lokalt filsystem.
databricks bundle sync
kommandon fungerar på samma sätt som databricks sync
kommandon och tillhandahålls som en produktivitets bekvämlighet. Information om kommandoanvändning finns i synkroniseringskommandogrupp.
Generera en paketkonfigurationsfil
Du kan använda bundle generate
kommandot för att generera resurskonfiguration för ett jobb, en pipeline eller en instrumentpanel som redan finns på databricks-arbetsytan. Det här kommandot genererar en *.yml
fil för jobbet, pipelinen eller instrumentpanelen i mappen för resources
paketprojektet och laddar även ned alla filer, till exempel notebook-filer, som refereras till i konfigurationen.
Generera jobb- eller pipelinekonfiguration
Viktigt!
Kommandot bundle generate
tillhandahålls som en bekvämlighet för att generera resurskonfiguration automatiskt. Men när det här jobbet eller pipelinekonfigurationen ingår i paketet och distribueras skapar den en ny resurs och uppdaterar inte den befintliga resursen om den inte bundle deployment bind
först har använts. Se Bind paketresurser.
Om du vill generera konfiguration för ett jobb eller en pipeline kör bundle generate
du kommandot på följande sätt:
databricks bundle generate [job|pipeline] --existing-[job|pipeline]-id [job-id|pipeline-id]
Kommentar
För närvarande stöds endast jobb med notebook-uppgifter med det här kommandot.
Följande kommando genererar till exempel en ny hello_job.yml
fil i paketprojektmappen resources
som innehåller YAML nedan och laddar ned simple_notebook.py
till projektmappen src
.
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
Generera instrumentpanelskonfiguration
Om du vill generera konfiguration för en befintlig instrumentpanel på arbetsytan kör du bundle generate
och anger antingen ID:t eller arbetsytans sökväg för instrumentpanelen:
databricks bundle generate dashboard --existing-id [dashboard-id]
databricks bundle generate dashboard --existing-path [dashboard-workspace-path]
Du kan kopiera arbetsytesökvägen för en instrumentpanel från arbetsytans användargränssnitt.
Följande kommando genererar till exempel en ny baby_gender_by_county.dashboard.yml
fil i paketprojektmappen resources
som innehåller YAML nedan och laddar ned baby_gender_by_county.lvdash.json
filen till projektmappen src
.
databricks bundle generate dashboard --existing-path "/Workspace/Users/someone@example.com/baby_gender_by_county.lvdash.json"
# This is the contents of the resulting baby_gender_by_county.dashboard.yml file.
resources:
dashboards:
baby_gender_by_county:
display_name: "Baby gender by county"
warehouse_id: aae11o8e6fe9zz79
file_path: ../src/baby_gender_by_county.lvdash.json
Dricks
Om du vill uppdatera .lvdash.json
filen när du redan har distribuerat en instrumentpanel använder --resource
du alternativet när du kör bundle generate dashboard
för att generera filen för den befintliga instrumentpanelsresursen. Använd alternativen och --force
för att kontinuerligt avsöka och hämta uppdateringar till en instrumentpanel--watch
.
Binda paketresurser
Med bundle deployment bind
kommandot kan du länka paketdefinierade jobb och pipelines till befintliga jobb och pipelines på Azure Databricks-arbetsytan så att de hanteras av Databricks Asset Bundles. Om du binder en resurs uppdateras befintliga Azure Databricks-resurser på arbetsytan baserat på konfigurationen som definierats i paketet som den är bunden till efter nästa bundle deploy
.
Dricks
Det är en bra idé att bekräfta paketet på arbetsytan innan bindningen körs.
databricks bundle deployment bind [resource-key] [resource-id]
Följande kommando binder till exempel resursen hello_job
till dess fjärrmotsvarighet på arbetsytan. Kommandot matar ut ett diff och gör att du kan neka resursbindningen, men om det bekräftas tillämpas alla uppdateringar av jobbdefinitionen i paketet på motsvarande fjärrjobb när paketet distribueras nästa år.
databricks bundle deployment bind hello_job 6565621249
Använd bundle deployment unbind
om du vill ta bort länken mellan jobbet eller pipelinen i ett paket och dess fjärrmotsvarighet på en arbetsyta.
databricks bundle deployment unbind [resource-key]
Mata ut en samlingssammanfattning
Kommandot bundle summary
visar en sammanfattning av ett pakets identitet och resurser, inklusive djupa länkar för resurser så att du enkelt kan navigera till resursen på Databricks-arbetsytan.
databricks bundle summary
Följande exempelutdata är sammanfattningen av ett paket med namnet my_pipeline_bundle
som definierar ett jobb och en pipeline:
Name: my_pipeline_bundle
Target: dev
Workspace:
Host: https://myworkspace.cloud.databricks.com
User: someone@example.com
Path: /Users/someone@example.com/.bundle/my_pipeline/dev
Resources:
Jobs:
my_project_job:
Name: [dev someone] my_project_job
URL: https://myworkspace.cloud.databricks.com/jobs/206000809187888?o=6051000018419999
Pipelines:
my_project_pipeline:
Name: [dev someone] my_project_pipeline
URL: https://myworkspace.cloud.databricks.com/pipelines/7f559fd5-zztz-47fa-aa5c-c6bf034b4f58?o=6051000018419999
Dricks
Du kan också använda bundle open
för att navigera till en resurs på Databricks-arbetsytan. Se Öppna en paketresurs.
Distribuera ett paket
Om du vill distribuera ett paket till fjärrarbetsytan kör bundle deploy
du kommandot från paketprojektets rot. Om inga kommandoalternativ anges används standardmålet som deklarerats i paketkonfigurationsfilerna.
databricks bundle deploy
Om du vill distribuera paketet till ett specifikt mål anger du -t
alternativet (eller --target
) tillsammans med målets namn enligt beskrivningen i paketkonfigurationsfilerna. Till exempel för ett mål som deklarerats med namnet dev
:
databricks bundle deploy -t dev
Ett paket kan distribueras till flera arbetsytor, till exempel arbetsytor för utveckling, mellanlagring och produktion. I grunden är egenskapen det root_path
som avgör ett pakets unika identitet, som standard är ~/.bundle/${bundle.name}/${bundle.target}
. Därför består ett pakets identitet som standard av identiteten för distribueraren, paketets namn och paketets målnamn. Om dessa är identiska i olika paket stör distributionen av dessa paket varandra.
Dessutom spårar en paketdistribution de resurser som skapas på målarbetsytan med deras ID:n som ett tillstånd som lagras i arbetsytans filsystem. Resursnamn används inte för att korrelera mellan en paketdistribution och en resursinstans, så:
- Om det inte finns någon resurs i paketkonfigurationen på målarbetsytan skapas den.
- Om det finns en resurs i paketkonfigurationen på målarbetsytan uppdateras den på arbetsytan.
- Om en resurs tas bort från paketkonfigurationen tas den bort från målarbetsytan om den tidigare distribuerades.
- En resursassociation med ett paket kan bara glömmas om du ändrar paketnamnet, paketmålet eller arbetsytan. Du kan köra för att mata
bundle validate
ut en sammanfattning som innehåller dessa värden.
Köra ett jobb eller en pipeline
Om du vill köra ett visst jobb eller en pipeline använder du bundle run
kommandot . Du måste ange resursnyckeln för jobbet eller pipelinen som deklarerats i paketkonfigurationsfilerna. Som standard används miljön som deklareras i paketkonfigurationsfilerna. Kör till exempel följande kommando för att köra ett jobb hello_job
i standardmiljön:
databricks bundle run hello_job
Så här kör du ett jobb med en nyckel hello_job
i kontexten för ett mål som deklarerats med namnet dev
:
databricks bundle run -t dev hello_job
Om du vill utföra en pipelineverifieringskörning använder du --validate-only
alternativet, som du ser i följande exempel:
databricks bundle run --validate-only my_pipeline
Om du vill skicka jobbparametrar använder du --params
alternativet följt av kommaavgränsade nyckel/värde-par, där nyckeln är parameternamnet. Följande kommando anger till exempel parametern med namnet message
på HelloWorld
för jobbet hello_job
:
databricks bundle run --params message=HelloWorld hello_job
Kommentar
Du kan skicka parametrar till jobbaktiviteter med hjälp av jobbaktivitetsalternativen --params
, men alternativet är den rekommenderade metoden för att skicka jobbparametrar. Ett fel uppstår om jobbparametrar anges för ett jobb som inte har definierat jobbparametrar eller om aktivitetsparametrar har angetts för ett jobb som har definierat jobbparametrar.
Om du vill avbryta och starta om en befintlig jobbkörning eller pipelineuppdatering använder du alternativet --restart
:
databricks bundle run --restart hello_job
Öppna en paketresurs
Om du vill navigera till en paketresurs på arbetsytan kör bundle open
du kommandot från paketprojektroten och anger vilken resurs som ska öppnas. Om en resursnyckel inte har angetts matar det här kommandot ut en lista över paketets resurser som du vill välja bland.
databricks bundle open [resource-key]
Följande kommando startar till exempel en webbläsare och navigerar till instrumentpanelen baby_gender_by_county i paketet på Databricks-arbetsytan som har konfigurerats för paketet:
databricks bundle open baby_gender_by_county
Förstöra ett paket
Varning
Om du förstör ett paket tas ett pakets tidigare distribuerade jobb, pipelines och artefakter bort permanent. Det går inte att ångra den här åtgärden.
Kör kommandot för att ta bort jobb, pipelines och artefakter som tidigare distribuerades bundle destroy
. Följande kommando tar bort alla tidigare distribuerade jobb, pipelines och artefakter som definieras i paketkonfigurationsfilerna:
databricks bundle destroy
Kommentar
En paketidentitet består av paketnamnet, paketmålet och arbetsytan. Om du har ändrat något av dessa och sedan försöker förstöra ett paket före distributionen uppstår ett fel.
Som standard uppmanas du att bekräfta permanent borttagning av tidigare distribuerade jobb, pipelines och artefakter. Om du vill hoppa över dessa frågor och utföra automatisk permanent borttagning lägger du till --auto-approve
alternativet i bundle destroy
kommandot .