bundle
opdrachtgroep
Notitie
Deze informatie is van toepassing op Databricks CLI-versies 0.218.0 en hoger. Voer de opdracht uit databricks -v
om uw versie van de Databricks CLI te vinden.
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?.
Belangrijk
Zie De Databricks CLI installeren of bijwerken om de Databricks CLI te installeren of bij te werken. Zie Verificatie voor de Databricks CLI om verificatie voor de Databricks CLI te configureren.
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-assetbundel 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-assetbundel wilt maken met behulp van een niet-standaard 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 configuratieschema van de Databricks Asset Bundle 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.
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 of pijplijn die al bestaat in uw Databricks-werkruimte. Met deze opdracht wordt een *.yml
bestand gegenereerd voor de taak of pijplijn in de resources
map van het bundelproject en worden ook notebooks gedownload waarnaar wordt verwezen in de taak- of pijplijnconfiguratie. Momenteel worden alleen taken met notebooktaken ondersteund door deze opdracht.
Belangrijk
De bundle generate
opdracht wordt geleverd als handig om de resourceconfiguratie automatisch te genereren. Wanneer deze configuratie 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 op de resource is gebruikt.
Voer de bundle generate
opdracht als volgt uit:
databricks bundle generate [job|pipeline] --existing-[job|pipeline]-id [job-id|pipeline-id]
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
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 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 bundel 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 bundel vernietigen
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.