Databricks Asset Bundles resources
Met Databricks Asset Bundles kunt u informatie opgeven over de Azure Databricks-resources die door de bundel worden gebruikt in de resources
-koppeling in de bundelconfiguratie. Zie bronnen in kaart brengen en bronnen met een belangrijke verwijzing.
Dit artikel bevat een overzicht van ondersteunde resourcetypen voor bundels en bevat details en een voorbeeld voor elk ondersteund type. Zie Bundelconfiguratievoorbeeldenvoor meer voorbeelden.
Tip (only if context indicates that it refers to a suggestion or advice)
Om YAML te generate voor een bestaande resource, gebruikt u de opdracht databricks bundle generate
. Zie Generate een bundelconfiguratiebestand.
Ondersteunde bronnen
De volgende table bevat ondersteunde resourcetypen voor bundels. Sommige resources kunnen worden gemaakt door ze te definiëren in een bundel en de bundel te implementeren. Sommige resources ondersteunen alleen het verwijzen naar een bestaande resource die in de bundel moet worden opgenomen.
Resources worden gedefinieerd met behulp van de bijbehorende Databricks REST API nettolading voor het maken van bewerkingsaanvragen van het object, where de ondersteunde velden van het object, uitgedrukt als YAML, de ondersteunde eigenschappen van de resource zijn. Koppelingen naar documentatie voor de bijbehorende payloads van elke resource worden vermeld in de table.
Tip (only if context indicates that it refers to a suggestion or advice)
De databricks bundle validate
opdracht retourneert waarschuwingen als onbekende resource-eigenschappen worden gevonden in bundelconfiguratiebestanden.
Hulpbron | Ondersteuning maken | Bijbehorend REST API-object |
---|---|---|
cluster | ✓ | cluster-object |
instrumentenpaneel | Dashboard-object | |
experiment | ✓ | Experiment-object |
taak | ✓ | taakobject |
model (verouderd) | ✓ | Modelobject (verouderd) |
model_serving_endpoint (modelbedieningsendpoint) | ✓ | model voor eindpuntobjecten |
pijplijn | ✓ | [Pijplijnobject]](https://docs.databricks.com/api/azure/workspace/pipelines/create) |
quality_monitor | ✓ | kwaliteitsmonitorobject |
geregistreerd_model (Unity Catalog) | ✓ | geregistreerde modelobjecten |
schema (Unity Catalog) | ✓ | Schema object |
volume (Unity Catalog) | ✓ | volumeobject |
groep
De clusterresource definieert een cluster voor alle doeleinden.
Voorbeeld
In het volgende voorbeeld wordt een cluster met de naam my_cluster
gemaakt en ingesteld als het cluster dat moet worden gebruikt om het notebook uit te voeren in 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"
instrumentenpaneel
Met de dashboardresource kunt u AI/BI-dashboards in een bundel beheren. Zie Dashboardsvoor informatie over AI/BI-dashboards.
Voorbeeld
Het volgende voorbeeld bevat en implementeert het voorbeeld NYC Taxi Trip Analysis dashboard in de Databricks-werkruimte.
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}
Als u de gebruikersinterface gebruikt om het dashboard te wijzigen, worden wijzigingen die via de gebruikersinterface zijn aangebracht, niet toegepast op het JSON-dashboardbestand in de lokale bundel, tenzij u het expliciet update met behulp van bundle generate
. U kunt de optie --watch
gebruiken om continu wijzigingen in het dashboard te peilen en op te halen. Zie Generate een bundelconfiguratiebestand.
Als u bovendien probeert een bundel te implementeren die een JSON-dashboardbestand bevat dat anders is dan het bestand in de externe werkruimte, treedt er een fout op. Gebruik de optie --force
om de implementatie te forceren en het dashboard in de externe werkruimte met die van de lokale werkruimte te overschrijven. Zie Een bundel implementeren.
experiment
De experimentresource stelt u in staat MLflow-experimenten in een bundel te definiëren. Zie Trainingsuitvoeringen organiseren met MLflow-experimentenvoor meer informatie over MLflow-experimenten.
Voorbeeld
In het volgende voorbeeld wordt een experiment gedefinieerd dat alle gebruikers kunnen bekijken:
resources:
experiments:
experiment:
name: my_ml_experiment
permissions:
- level: CAN_READ
group_name: users
description: MLflow experiment used to track runs
baan
Met de jobresource kunt u banen en de bijbehorende taken in uw bundel definiëren. Zie Werkstromen plannen en organiserenvoor meer informatie over taken. Zie Een taak ontwikkelen in Azure Databricks met behulp van Databricks Asset Bundlesvoor een zelfstudie die gebruikmaakt van een Databricks Asset Bundles-sjabloon om een taak te maken.
Voorbeeld
In het volgende voorbeeld wordt een job gedefinieerd met de resourcesleutel hello-job
en bevat deze één notebooktaak.
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
notebook_task:
notebook_path: ./hello.py
Zie Taken toevoegen aan taken in Databricks Asset Bundles, Taaktaken overschrijven in Databricks Asset Bundlesen Clusterinstellingen overschrijven in Databricks Asset Bundlesvoor informatie over het definiëren van taaktaken.
model (verouderd)
Met de modelresource kunt u in bundels verouderde modellen definiëren. Databricks raadt u aan Unity Cataloggeregistreerde modellen te gebruiken.
modelbedieningspunt
Met de model_serving_endpoint resource kunt u model voor eindpunten definiëren. Zie Model beheren voor eindpunten.
Voorbeeld
In het volgende voorbeeld wordt een eindpunt voor een Unity-Catalog-model gedefinieerd:
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"
quality_monitor (Unity Catalog)
Met de resource quality_monitor kunt u een Unity-monitor Catalogtabledefiniëren. Zie Modelkwaliteit en eindpuntstatus bewakenvoor meer informatie over monitors.
Voorbeeld
In het volgende voorbeeld wordt een kwaliteitsmonitor gedefinieerd:
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
geregistreerd_model (Unity Catalog)
Met de geregistreerde modelresource kunt u modellen definiëren in Unity Catalog. Zie
Voorbeeld
In het volgende voorbeeld wordt een geregistreerd model gedefinieerd in 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
pijpleiding
Met de pijplijnresource kunt u Delta Live Tablespijplijnen maken. Voor informatie over pijplijnen, zie Wat is Delta Live Tables?. Zie Delta Live-Tables-pijplijnen ontwikkelen met Databricks Asset Bundlesvoor een zelfstudie waarin de sjabloon Databricks Asset Bundles wordt gebruikt om een pijplijn te maken.
Voorbeeld
In het volgende voorbeeld wordt een pijplijn gedefinieerd met de resource-sleutel 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)
Met het schema resourcetype kunt u Unity Catalog-schema's definiëren voor tables en andere assets in uw werkstromen en pijplijnen die zijn gemaakt als onderdeel van een bundel. Een schema, in tegenstelling tot andere resourcetypen, heeft de volgende beperkingen:
- De eigenaar van een schema resource is altijd de implementatiegebruiker en kan niet worden gewijzigd. Als
run_as
in de bundel is opgegeven, zullen bewerkingen op de schemadeze negeren. - Alleen velden die worden ondersteund door het bijbehorende Schemas-object voor de aanmaak van API zijn beschikbaar voor de schema resource.
enable_predictive_optimization
wordt bijvoorbeeld niet ondersteund omdat deze alleen beschikbaar is op de update API-.
Voorbeelden
In het volgende voorbeeld wordt een pijplijn gedefinieerd met de resourcesleutel my_pipeline
waarmee een Unity-Catalogschema wordt gemaakt met de sleutel my_schema
als doel:
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.
Een toewijzing voor subsidies op topniveau wordt niet ondersteund door Databricks Asset Bundles, dus als u set subsidies voor een schemawilt configureren, definieert u de subsidies voor de schema binnen de toewijzing van schemas
. Voor meer informatie over subsidies, zie Weergeven, grant, en revoke privileges.
In het volgende voorbeeld wordt een Unity-Catalogschema met subsidies gedefinieerd:
resources:
schemas:
my_schema:
name: test-schema
grants:
- principal: users
privileges:
- CAN_MANAGE
- principal: my_team
privileges:
- CAN_READ
catalog_name: main
volume (Unity Catalog)
Met het volumeresourcetype kunt u Unity-Catalogvolumes definiëren en maken als onderdeel van een bundel. Wanneer u een bundel implementeert met een volume dat is gedefinieerd, moet u er rekening mee houden dat:
- Er kan niet naar een volume worden verwezen in de
artifact_path
voor de bundel voordat het in de werkruimte aanwezig is. Dus als u Databricks Asset Bundles wilt gebruiken om het volume te maken, moet u eerst het volume in de bundel definiëren, implementeren om het volume te maken en vervolgens in deartifact_path
in volgende implementaties ernaar verwijzen. -
Volumes in de bundel worden niet met het voorvoegsel
dev_${workspace.current_user.short_name}
geëxpandeerd wanneer het implementatiedoelmode: development
is geconfigureerd. U kunt dit voorvoegsel echter handmatig configureren. Zie Aangepaste voorinstellingen.
Voorbeeld
In het volgende voorbeeld wordt een Unity-Catalog-volume gemaakt met de sleutel my_volume
:
resources:
volumes:
my_volume:
catalog_name: main
name: my_volume
schema_name: my_schema
Zie de GitHub-opslagplaats voor een voorbeeldbundel die een taak uitvoert die naar een bestand schrijft in het Unity Catalog-volume.