Dela via


Databricks Asset Bundles-resurser

Med Databricks-tillgångspaket kan du ange information om de Azure Databricks-resurser som används av paketet i resources mappning i paketkonfigurationen. Se resursmappning och resursnyckelreferens.

Den här artikeln beskriver resurstyper som stöds för paket och innehåller information och ett exempel för varje typ som stöds. Ytterligare exempel finns i Bundle-konfigurationsexempel.

Tips

Om du vill generera YAML för alla befintliga resurser använder du kommandot databricks bundle generate. Se Generera en paketkonfigurationsfil.

resurser som stöds

I följande tabell visas resurstyper som stöds för paket. Vissa resurser kan skapas genom att definiera dem i ett paket och distribuera paketet, och vissa resurser stöder endast hänvisning till en befintlig resurs som ska ingå i paketet.

Resurser definieras med hjälp av motsvarande Databricks REST API objektets skapa-åtgärdsbegärans nyttolast, där objektets fält som stöds, uttryckta i YAML, är resursens egenskaper som stöds. Länkar till dokumentationen för varje resurs motsvarande nyttolaster visas i tabellen.

Tips

Kommandot databricks bundle validate returnerar varningar om okända resursegenskaper finns i paketkonfigurationsfiler.

Resurs Skapa stöd Motsvarande REST API-objekt
applikation App-objekt
kluster klusterobjekt
instrumentpanel instrumentpanelsobjekt
experiment experimentobjekt
jobb jobbobjekt
modell (äldre) modellobjekt (äldre)
modell_serving_endpoint modell som betjänar slutpunktsobjekt
rörledning [Pipelineobjekt]](https://docs.databricks.com/api/azure/workspace/pipelines/create)
quality_monitor kvalitetsövervakningsobjekt
registrerad_modell (Unity Catalog) Registrerade modellobjekt
schema (Unity Catalog) schemaobjekt
volym (Unity Catalog) volymobjekt

applikation

Appresursen definierar en Databricks-app. Information om Databricks-appar finns i Vad är Databricks-appar?.

Tips

Du kan initiera ett paket med en Streamlit Databricks-app med hjälp av följande kommando:

databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app

Om du vill lägga till en app anger du objektfält som definierar appen, samt följande:

  • source_code_path – den ./app lokala sökvägen för Databricks-appens källkod. Det här fältet krävs.
  • config – Appkonfigurationskommandon och miljövariabler. Du kan använda detta för att ange olika distributionsmål för appar.

Exempel

I följande exempel skapas en app med namnet my_app som hanterar ett jobb som skapats av paketet:

resources:
  jobs:
    # Define a job in the bundle
    hello_world:
      name: hello_world
      tasks:
        - task_key: task
          spark_python_task:
            python_file: ../src/main.py
          environment_key: default

      environments:
        - environment_key: default
          spec:
            client: "1"

  # Define an app that manages the job in the bundle
  apps:
    job_manager:
      name: "job_manager_app"
      description: "An app which manages a job created by this bundle"

      # The location of the source code for the app
      source_code_path: ../src/app

      # The configuration for running the app
      config:
        command:
          - flask
          - --app
          - app
          - run
          - --debug
        env:
          - name: JOB_ID
            value: ${resources.jobs.hello_world.id}

      # The resources in the bundle which this app has access to. This binds the resource in the app with the DABs resource.
      resources:
        - name: "app-job"
          job:
            id: ${resources.jobs.hello_world.id}
            permission: "CAN_MANAGE_RUN"

Det fullständiga Databricks-appexemplepaketet finns i github-lagringsplatsen bundle-examples.

kluster

Klusterresursen definierar ett kluster för alla syften.

Exempel

I följande exempel skapas ett kluster med namnet my_cluster och anger det som det kluster som ska användas för att köra notebook-filen i my_job:

bundle:
  name: clusters

resources:
  clusters:
    my_cluster:
      num_workers: 2
      node_type_id: "i3.xlarge"
      autoscale:
        min_workers: 2
        max_workers: 7
      spark_version: "13.3.x-scala2.12"
      spark_conf:
        "spark.executor.memory": "2g"

  jobs:
    my_job:
      tasks:
        - task_key: test_task
          notebook_task:
            notebook_path: "./src/my_notebook.py"

kontrollpanel

Med instrumentpanelsresursen kan du hantera AI/BI-instrumentpaneler i ett paket. Information om AI/BI-dashboards finns i Dashboards.

Exempel

I följande exempel visas och distribueras exemplet NYC Taxi Trip Analysis dashboard till Databricks-arbetsytan.

resources:
  dashboards:
    nyc_taxi_trip_analysis:
      display_name: "NYC Taxi Trip Analysis"
      file_path: ../src/nyc_taxi_trip_analysis.lvdash.json
      warehouse_id: ${var.warehouse_id}

Om du använder användargränssnittet för att ändra instrumentpanelen tillämpas inte ändringar som görs via användargränssnittet på instrumentpanelens JSON-fil i det lokala paketet om du inte uttryckligen uppdaterar den med hjälp av bundle generate. Du kan använda alternativet --watch för att kontinuerligt avsöka och hämta ändringar på instrumentpanelen. Se Generera en paketkonfigurationsfil.

Om du försöker distribuera ett paket som innehåller en JSON-instrumentpanelsfil som skiljer sig från den på fjärrarbetsytan uppstår dessutom ett fel. Använd alternativet --force för att framtvinga distributionen och skriva över instrumentpanelen på fjärrarbetsytan med den lokala. Se Distribuera ett paket.

experiment

Med experimentresursen kan du definiera MLflow-experiment i ett paket. Information om MLflow-experiment finns i Organisera träningskörningar med MLflow-experiment.

Exempel

I följande exempel definieras ett experiment som alla användare kan visa:

resources:
  experiments:
    experiment:
      name: my_ml_experiment
      permissions:
        - level: CAN_READ
          group_name: users
      description: MLflow experiment used to track runs

jobb

Med jobbresursen kan du definiera jobb och deras motsvarande uppgifter i ditt paket. Information om jobb finns i Översikt över orkestrering på Databricks. En självstudiekurs som använder en Databricks Asset Bundles-mall för att skapa ett jobb finns i Utveckla ett jobb på Azure Databricks med Databricks Asset Bundles.

Exempel

I följande exempel definieras ett jobb med resursnyckeln hello-job med en notebook-uppgift:

resources:
  jobs:
    hello-job:
      name: hello-job
      tasks:
        - task_key: hello-task
          notebook_task:
            notebook_path: ./hello.py

Information om hur du definierar jobbaktiviteter och åsidosätter jobbinställningar finns i Lägg till aktiviteter i jobb i Databricks-tillgångspaketåsidosätt jobbuppgifter i Databricks Tillgångspaketoch Åsidosätta klusterinställningar i Databricks-tillgångspaket.

modell (föråldrad)

Med modellresursen kan du definiera äldre modeller i paket. Databricks rekommenderar i stället att du använder Unity Catalog registrerade modeller.

modell_serving-endpoint

Med model_serving_endpoint resurs kan du definiera modell som betjänar slutpunkter. Se Hantera modell som betjänar slutpunkter.

Exempel

I följande exempel definieras en Unity Catalog-modell som betjänar slutpunkten:

resources:
  model_serving_endpoints:
    uc_model_serving_endpoint:
      name: "uc-model-endpoint"
      config:
        served_entities:
        - entity_name: "myCatalog.mySchema.my-ads-model"
          entity_version: "10"
          workload_size: "Small"
          scale_to_zero_enabled: "true"
        traffic_config:
          routes:
          - served_model_name: "my-ads-model-10"
            traffic_percentage: "100"
      tags:
      - key: "team"
        value: "data science"

kvalitetsövervakning (Unity Catalog)

Med quality_monitor resurs kan du definiera en Unity Catalog-tabellövervakare. Information om bildskärmar finns i Bildskärmsmodellers kvalitet och slutpunkters hälsa.

Exempel

I följande exempel definieras en kvalitetsövervakare:

resources:
  quality_monitors:
    my_quality_monitor:
      table_name: dev.mlops_schema.predictions
      output_schema_name: ${bundle.target}.mlops_schema
      assets_dir: /Users/${workspace.current_user.userName}/databricks_lakehouse_monitoring
      inference_log:
        granularities: [1 day]
        model_id_col: model_id
        prediction_col: prediction
        label_col: price
        problem_type: PROBLEM_TYPE_REGRESSION
        timestamp_col: timestamp
      schedule:
        quartz_cron_expression: 0 0 8 * * ? # Run Every day at 8am
        timezone_id: UTC

registrerad_modell (Unity Catalog)

Med den registrerade modellresursen kan du definiera modeller i Unity Catalog. Information om Unity Catalog registrerade modellerfinns i Hantera modelllivscykel i Unity Catalog.

Exempel

I följande exempel definieras en registrerad modell i Unity Catalog:

resources:
  registered_models:
      model:
        name: my_model
        catalog_name: ${bundle.target}
        schema_name: mlops_schema
        comment: Registered model in Unity Catalog for ${bundle.target} deployment target
        grants:
          - privileges:
              - EXECUTE
            principal: account users

rörledning

Med pipelineresursen kan du skapa Delta Live Tables pipelines. Information om pipelines finns i Vad är Delta Live Tables?. En självstudiekurs som använder mallen Databricks Asset Bundles för att skapa en pipeline finns i Utveckla Delta Live Tables-pipelines med Databricks Asset Bundles.

Exempel

I följande exempel definieras en pipeline med resursnyckeln hello-pipeline:

resources:
  pipelines:
    hello-pipeline:
      name: hello-pipeline
      clusters:
        - label: default
          num_workers: 1
      development: true
      continuous: false
      channel: CURRENT
      edition: CORE
      photon: false
      libraries:
        - notebook:
            path: ./pipeline.py

schema (Unity Catalog)

Med schemaresurstypen kan du definiera Unity Catalog scheman för tabeller och andra tillgångar i dina arbetsflöden och pipelines som skapats som en del av ett paket. Ett schema, som skiljer sig från andra resurstyper, har följande begränsningar:

  • Ägaren till en schemaresurs är alltid distributionsanvändaren och kan inte ändras. Om run_as anges i paketet ignoreras det av åtgärder i schemat.
  • Endast fält som stöds av motsvarande Schemas-objektet skapar API är tillgängliga för schemaresursen. Till exempel stöds inte enable_predictive_optimization eftersom den endast är tillgänglig i uppdaterings-API:et.

Exempel

I följande exempel definieras en pipeline med resursnyckeln my_pipeline som skapar ett Unity Catalog-schema med nyckeln my_schema som mål:

resources:
  pipelines:
    my_pipeline:
      name: test-pipeline-{{.unique_id}}
      libraries:
        - notebook:
            path: ./nb.sql
      development: true
      catalog: main
      target: ${resources.schemas.my_schema.id}

  schemas:
    my_schema:
      name: test-schema-{{.unique_id}}
      catalog_name: main
      comment: This schema was created by DABs.

Toppnivå-behörighetsmappning stöds inte av Databricks Asset Bundles, så om du vill ställa in behörigheter för ett schema definierar du behörigheterna för schemat i schemas mappning. Mer information om bidrag finns i Visa, bevilja och återkalla behörigheter.

I följande exempel definieras ett Unity Catalog-schema med bidrag:

resources:
  schemas:
    my_schema:
      name: test-schema
      grants:
        - principal: users
          privileges:
            - SELECT
        - principal: my_team
          privileges:
            - CAN_MANAGE
      catalog_name: main

volym (Unity Catalog)

Med volymresurstypen kan du definiera och skapa Unity Catalog volymer som en del av ett paket. Observera att när du distribuerar ett paket med en definierad volym:

  • Det går inte att referera till en volym i artifact_path för paketet förrän den finns på arbetsytan. Om du vill använda Databricks-tillgångspaket för att skapa volymen måste du först definiera volymen i paketet, distribuera den för att skapa volymen och sedan referera till den i artifact_path i efterföljande distributioner.
  • Volymer i paketet föregås inte av prefixet dev_${workspace.current_user.short_name} om distributionsmålet är konfigurerat med mode: development. Du kan dock konfigurera prefixet manuellt. Se Anpassade förinställningar.

Exempel

I följande exempel skapas en Unity Catalog-volym med nyckeln my_volume:

resources:
  volumes:
    my_volume:
      catalog_name: main
      name: my_volume
      schema_name: my_schema

Ett exempelpaket som kör ett jobb som skriver till en fil i Unity Catalog-volymen finns i github-lagringsplatsen bundle-examples.