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 iartifact_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 medmode: 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.