bundle
opdrachtgroep
Notitie
Deze informatie is van toepassing op Databricks CLI-versies 0.205 en hoger. De Databricks CLI bevindt zich in openbare preview.
Databricks CLI-gebruik is onderhevig aan de Databricks-licentie en de privacyverklaring van Databricks, met inbegrip van alle bepalingen voor gebruiksgegevens.
bundle
Met de opdrachtgroep in de Databricks CLI kunt u azure Databricks-werkstromen zoals Azure Databricks-taken, Delta Live Tables-pijplijnen en MLOps-stacks programmatisch valideren, implementeren en uitvoeren. Bekijk wat zijn Databricks Asset Bundles?.
U voert opdrachten uit bundle
door ze toe te voegen aan databricks bundle
. Als u help voor de bundle
opdracht wilt weergeven, voert u het volgende uit databricks bundle -h
.
Een bundel maken op basis van een projectsjabloon
Als u een Databricks Asset Bundle wilt maken met behulp van de standaardsjabloon Databricks Asset Bundle voor Python, voert u de bundle init
opdracht als volgt uit en beantwoordt u de aanwijzingen op het scherm:
databricks bundle init
Als u een Databricks Asset Bundle wilt maken met behulp van een aangepaste Databricks Asset Bundle-sjabloon, voert u de bundle init
opdracht als volgt uit:
databricks bundle init <project-template-local-path-or-url> \
--project-dir="</local/path/to/project/template/output>"
Zie ook:
- Projectsjablonen voor Databricks Asset Bundle
- Een taak ontwikkelen in Azure Databricks met behulp van Databricks Asset Bundles
- Pijplijnen voor Delta Live Tables ontwikkelen met Databricks Asset Bundles
- Databricks-assetbundels voor MLOps-stacks
Het bundelconfiguratieschema weergeven
Als u het bundelconfiguratieschema wilt weergeven, voert u de bundle schema
opdracht als volgt uit:
databricks bundle schema
Als u het configuratieschema van de Databricks Asset Bundle wilt uitvoeren als een JSON-bestand, voert u de bundle schema
opdracht uit en stuurt u de uitvoer om naar een JSON-bestand. U kunt bijvoorbeeld als volgt een bestand genereren met de naam bundle_config_schema.json
in de huidige map:
databricks bundle schema > bundle_config_schema.json
Een bundel valideren
Als u wilt controleren of uw bundelconfiguratiebestanden syntactisch juist zijn, voert u de bundle validate
opdracht uit vanuit de hoofdmap van het bundelproject:
databricks bundle validate
Deze opdracht retourneert standaard een samenvatting van de bundelidentiteit:
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!
Notitie
De bundle validate
opdracht voert waarschuwingen uit als resource-eigenschappen zijn gedefinieerd in de bundelconfiguratiebestanden die niet worden gevonden in het bijbehorende objectschema.
Als u alleen een samenvatting van de identiteit en resources van de bundel wilt uitvoeren, gebruikt u de bundelsamenvatting.
De structuur van een bundel synchroniseren met een werkruimte
Gebruik de bundle sync
opdracht om eenrichtingssynchronisatie uit te voeren van bestandswijzigingen in een lokale bestandssysteemmap naar een map binnen een externe Azure Databricks-werkruimte.
Notitie
bundle sync
opdrachten kunnen geen bestandswijzigingen vanuit een map in een externe Azure Databricks-werkruimte synchroniseren, terug naar een map binnen een lokaal bestandssysteem.
databricks bundle sync
opdrachten werken op dezelfde manier als databricks sync
opdrachten en worden geleverd als productiviteitsgemak. Zie de synchronisatieopdrachtgroep voor informatie over het gebruik van opdrachten.
Een bundelconfiguratiebestand genereren
U kunt de bundle generate
opdracht gebruiken om resourceconfiguratie te genereren voor een taak, pijplijn of dashboard dat al bestaat in uw Databricks-werkruimte. Met deze opdracht wordt een *.yml
bestand gegenereerd voor de taak, pijplijn of dashboard in de resources
map van het bundelproject en worden ook bestanden, zoals notebooks, gedownload waarnaar in de configuratie wordt verwezen.
Taak- of pijplijnconfiguratie genereren
Belangrijk
De bundle generate
opdracht wordt geleverd als handig om de resourceconfiguratie automatisch te genereren. Wanneer deze taak of pijplijnconfiguratie echter is opgenomen in de bundel en geïmplementeerd, wordt er een nieuwe resource gemaakt en wordt de bestaande resource niet bijgewerkt, tenzij bundle deployment bind
deze voor het eerst is gebruikt. Zie Bind-bundelbronnen.
Als u een configuratie voor een taak of pijplijn wilt genereren, voert u de bundle generate
opdracht als volgt uit:
databricks bundle generate [job|pipeline] --existing-[job|pipeline]-id [job-id|pipeline-id]
Notitie
Momenteel worden alleen taken met notebooktaken ondersteund door deze opdracht.
Met de volgende opdracht wordt bijvoorbeeld een nieuw hello_job.yml
bestand gegenereerd in de resources
bundelprojectmap met de YAML hieronder en wordt de simple_notebook.py
map gedownload naar de src
projectmap.
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
Dashboardconfiguratie genereren
Als u een configuratie voor een bestaand dashboard in de werkruimte wilt genereren, voert u het volgende uit bundle generate
:
databricks bundle generate dashboard --existing-id [dashboard-id]
databricks bundle generate dashboard --existing-path [dashboard-workspace-path]
U kunt het werkruimtepad voor een dashboard kopiëren vanuit de gebruikersinterface van de werkruimte.
Met de volgende opdracht wordt bijvoorbeeld een nieuw baby_gender_by_county.dashboard.yml
bestand gegenereerd in de resources
bundelprojectmap met de YAML hieronder en wordt het baby_gender_by_county.lvdash.json
bestand gedownload naar de src
projectmap.
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
Tip
Als u het .lvdash.json
bestand wilt bijwerken nadat u al een dashboard hebt geïmplementeerd, gebruikt u de --resource
optie wanneer u dat bestand voor de bestaande dashboardresource genereert bundle generate dashboard
. Gebruik de --force
en --watch
opties om continu updates voor een dashboard te peilen en op te halen.
Bundelbronnen binden
bundle deployment bind
Met de opdracht kunt u bundelgedefinieerde taken en pijplijnen koppelen aan bestaande taken en pijplijnen in de Azure Databricks-werkruimte, zodat ze worden beheerd door Databricks Asset Bundles. Als u een resource bindt, worden bestaande Azure Databricks-resources in de werkruimte bijgewerkt op basis van de configuratie die in de bundel is gedefinieerd.bundle deploy
Tip
Het is een goed idee om de bundel in de werkruimte te bevestigen voordat u binding uitvoert.
databricks bundle deployment bind [resource-key] [resource-id]
Met de volgende opdracht wordt de resource hello_job
bijvoorbeeld gekoppeld aan de externe tegenhanger in de werkruimte. Met de opdracht wordt een diff uitgevoerd en kunt u de resourcebinding weigeren, maar indien bevestigd, worden eventuele updates van de taakdefinitie in de bundel toegepast op de bijbehorende externe taak wanneer de bundel de volgende implementatie uitvoert.
databricks bundle deployment bind hello_job 6565621249
Gebruik bundle deployment unbind
deze optie als u de koppeling tussen de taak of pijplijn in een bundel en de externe tegenhanger in een werkruimte wilt verwijderen.
databricks bundle deployment unbind [resource-key]
Een bundelsamenvatting uitvoeren
De bundle summary
opdracht voert een samenvatting uit van de identiteit en resources van een bundel, inclusief dieptekoppelingen voor resources, zodat u eenvoudig naar de resource in de Databricks-werkruimte kunt navigeren.
databricks bundle summary
De volgende voorbeelduitvoer is de samenvatting van een bundel met de naam my_pipeline_bundle
die een taak en een pijplijn definieert:
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
Tip
U kunt ook bundle open
naar een resource in de Databricks-werkruimte navigeren. Zie Een bundelresource openen.
Een bundel implementeren
Als u een bundel wilt implementeren in de externe werkruimte, voert u de bundle deploy
opdracht uit vanuit de hoofdmap van het bundelproject. Als er geen opdrachtopties zijn opgegeven, wordt het standaarddoel zoals gedeclareerd in de bundelconfiguratiebestanden gebruikt.
databricks bundle deploy
Als u de bundel wilt implementeren op een specifiek doel, stelt u de -t
optie (of --target
) in, samen met de naam van het doel, zoals gedeclareerd in de bundelconfiguratiebestanden. Bijvoorbeeld voor een doel dat is gedeclareerd met de naam dev
:
databricks bundle deploy -t dev
Een bundel kan worden geïmplementeerd in meerdere werkruimten, zoals ontwikkeling, fasering en productiewerkruimten. De eigenschap bepaalt in principe root_path
de unieke identiteit van een bundel, die standaard wordt gebruikt ~/.bundle/${bundle.name}/${bundle.target}
. Daarom bestaat de identiteit van een bundel standaard uit de identiteit van de deployer, de naam van de bundel en de doelnaam van de bundel. Als deze identiek zijn in verschillende bundels, zal de implementatie van deze bundels elkaar verstoren.
Bovendien houdt een bundelimplementatie de resources bij die worden gemaakt in de doelwerkruimte door hun id's als een status die is opgeslagen in het bestandssysteem van de werkruimte. Resourcenamen worden niet gebruikt om te correleren tussen een bundelimplementatie en een resource-exemplaar, dus:
- Als er geen resource in de bundelconfiguratie bestaat in de doelwerkruimte, wordt deze gemaakt.
- Als er een resource in de bundelconfiguratie bestaat in de doelwerkruimte, wordt deze bijgewerkt in de werkruimte.
- Als een resource uit de bundelconfiguratie wordt verwijderd, wordt deze verwijderd uit de doelwerkruimte als deze eerder is geïmplementeerd.
- De koppeling van een resource met een bundel kan alleen worden vergeten als u de bundelnaam, het bundeldoel of de werkruimte wijzigt. U kunt uitvoeren om een samenvatting met deze waarden uit te voeren
bundle validate
.
Een taak of pijplijn uitvoeren
Gebruik de bundle run
opdracht om een specifieke taak of pijplijn uit te voeren. U moet de resourcesleutel opgeven van de taak of pijplijn die is gedeclareerd in de bundelconfiguratiebestanden. Standaard wordt de omgeving die in de bundelconfiguratiebestanden is gedeclareerd, gebruikt. Als u bijvoorbeeld een taak hello_job
wilt uitvoeren in de standaardomgeving, voert u de volgende opdracht uit:
databricks bundle run hello_job
Een taak uitvoeren met een sleutel hello_job
binnen de context van een doel dat is gedeclareerd met de naam dev
:
databricks bundle run -t dev hello_job
Als u een pijplijnvalidatieuitvoering wilt uitvoeren, gebruikt u de --validate-only
optie, zoals wordt weergegeven in het volgende voorbeeld:
databricks bundle run --validate-only my_pipeline
Als u taakparameters wilt doorgeven, gebruikt u de --params
optie, gevolgd door door komma's gescheiden sleutel-waardeparen, waarbij de sleutel de parameternaam is. Met de volgende opdracht wordt bijvoorbeeld de parameter ingesteld met de naam message
voor HelloWorld
de taak hello_job
:
databricks bundle run --params message=HelloWorld hello_job
Notitie
U kunt parameters doorgeven aan taaktaken met behulp van de taaktaakopties, maar de --params
optie is de aanbevolen methode voor het doorgeven van taakparameters. Er treedt een fout op als taakparameters zijn opgegeven voor een taak waarvoor geen taakparameters zijn gedefinieerd of als taakparameters zijn opgegeven voor een taak waarvoor taakparameters zijn gedefinieerd.
Als u een bestaande taakuitvoering of pijplijnupdate wilt annuleren en opnieuw wilt starten, gebruikt u de --restart
volgende optie:
databricks bundle run --restart hello_job
Een bundelresource openen
Als u naar een bundelresource in de werkruimte wilt navigeren, voert u de bundle open
opdracht uit vanuit de hoofdmap van het bundelproject en geeft u de resource op die u wilt openen. Als er geen resourcesleutel is opgegeven, voert deze opdracht een lijst uit van de resources van de bundel waaruit u kunt kiezen.
databricks bundle open [resource-key]
Met de volgende opdracht wordt bijvoorbeeld een browser gestart en gaat u naar het baby_gender_by_county dashboard in de bundel in de Databricks-werkruimte die is geconfigureerd voor de bundel:
databricks bundle open baby_gender_by_county
Een bundel vernietigen
Waarschuwing
Als u een bundel vernietigt, worden de eerder geïmplementeerde taken, pijplijnen en artefacten van een bundel definitief verwijderd. Deze actie kan niet ongedaan worden gemaakt.
Als u taken, pijplijnen en artefacten wilt verwijderen die eerder zijn geïmplementeerd, voert u de bundle destroy
opdracht uit. Met de volgende opdracht worden alle eerder geïmplementeerde taken, pijplijnen en artefacten verwijderd die zijn gedefinieerd in de bundelconfiguratiebestanden:
databricks bundle destroy
Notitie
De identiteit van een bundel bestaat uit de bundelnaam, het bundeldoel en de werkruimte. Als u een van deze hebt gewijzigd en vervolgens een bundel probeert te vernietigen voordat u implementeert, treedt er een fout op.
Standaard wordt u gevraagd om het permanent verwijderen van de eerder geïmplementeerde taken, pijplijnen en artefacten te bevestigen. Als u deze prompts wilt overslaan en automatische permanente verwijdering wilt uitvoeren, voegt u de --auto-approve
optie toe aan de bundle destroy
opdracht.