Delen via


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:

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.