Databricks Asset Bundles-erőforrások
A Databricks-eszközcsomagok lehetővé teszik a csomag által használt Azure Databricks-erőforrásokra vonatkozó információk megadását a csomagkonfiguráció resources
leképezésében. Lásd: erőforrások leképezése és erőforrás-kulcs referencia.
Ez a cikk a csomagok támogatott erőforrástípusait ismerteti, és részletes információkat és példákat tartalmaz az egyes támogatott típusokhoz. További példákért lásd Csomagkonfigurációs példákat.
Borravaló
A YAML bármely meglévő erőforráshoz való létrehozásához használja a databricks bundle generate
parancsot. Lásd: Csomagkonfigurációs fájl létrehozása.
támogatott erőforrások
Az alábbi táblázat a csomagok támogatott erőforrástípusait sorolja fel. Egyes erőforrások úgy hozhatók létre, hogy egy csomagban definiálják őket, és üzembe helyezik a csomagot, és egyes erőforrások csak egy meglévő erőforrásra hivatkoznak, amelyet belefoglalhatnak a csomagba.
Az erőforrásokat a Databricks REST API objektum létrehozási műveletének kérés adatainak törzse alapján definiáljuk, ahol az objektum által támogatott mezők, a YAML formátum szerint, az erőforrás támogatott tulajdonságai. Az egyes erőforrások megfelelő payloadjainak dokumentációjára mutató hivatkozások szerepelnek a táblázatban.
Borravaló
A databricks bundle validate
parancs figyelmeztetéseket ad vissza, ha ismeretlen erőforrástulajdonságok találhatók a csomagkonfigurációs fájlokban.
Erőforrás | Támogatás létrehozása | Megfelelő REST API-objektum |
---|---|---|
alkalmazás | ✓ | alkalmazásobjektum |
klaszter | ✓ | klaszter objektum |
irányítópult | irányítópult-objektum | |
kísérlet | ✓ | kísérletobjektum |
feladat | ✓ | feladatobjektum |
modell (örökölt) | ✓ | Modell (örökölt) objektum |
modell_kiszolgáló_végpont | ✓ | végpontobjektumot kiszolgáló modell |
csővezeték | ✓ | folyamatobjektum |
minőség_ellenőrző | ✓ | Minőségfigyelő objektum |
regisztrált_modell (Unity Katalógus) | ✓ | regisztrált modellobjektum |
séma (Unity Catalog) | ✓ | séma-objektum |
tárolóegység (Unity Catalog) | ✓ | Kötet objektum |
alkalmazás
Az alkalmazáserőforrás definiál egy Databricks-alkalmazást. További információ a Databricks Appsről: Mi az a Databricks Apps?.
Borravaló
Streamlit Databricks-alkalmazással inicializálhat egy csomagot az alábbi paranccsal:
databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app
Alkalmazás hozzáadásához adja meg az alkalmazást meghatározó
-
source_code_path
– A Databricks alkalmazás forráskódjának./app
helyi elérési útja. Ez a mező kötelező. -
config
– Az alkalmazáskonfigurációs parancsok és a környezeti változók. Ezzel különböző alkalmazástelepítési célokat adhat meg.
Példa
Az alábbi példa egy my_app
nevű alkalmazást hoz létre, amely kezeli a csomag által létrehozott feladatot:
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'
A Databricks alkalmazás teljes példacsomagját a példacsomagok GitHub-adattárban találja.
klaszter
A klasztererőforrás egy minden célra használható klasztert határoz meg .
Példa
Az alábbi példa létrehoz egy my_cluster
nevű fürtöt, és beállítja azt, mint a jegyzetfüzet futtatására használt fürtet a my_job
-ben.
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'
irányítópult
Az irányítópult-erőforrás lehetővé teszi AI/BI-irányítópultok csomagban kezelését. Az AI/BI-irányítópultokról további információt Irányítópultokcímű témakörben talál.
Példa
Az alábbi példa bemutatja, hogyan lehet a NYC Taxi Trip Analysis irányítópultot telepíteni a Databricks munkaterületre.
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}
Ha a felhasználói felületen módosítja az irányítópultot, a felhasználói felületen végrehajtott módosítások nem lesznek alkalmazva az irányítópult JSON-fájljára a helyi csomagban, kivéve, ha explicit módon frissíti azt a bundle generate
használatával. A --watch
lehetőséggel folyamatos lekérdezéseket végezhet és frissítheti az irányítópult módosításait. Lásd: Csomagkonfigurációs fájl létrehozása.
Ezenkívül, ha olyan csomagot próbál üzembe helyezni, amely egy olyan irányítópult JSON-fájlt tartalmaz, amely eltér a távoli munkaterületen találhatótól, hiba történik. Ha a távoli munkaterületen a helyivel szeretné kényszeríteni az irányítópult üzembe helyezését és felülírását, használja a --force
lehetőséget. Lásd a csomagüzembe helyezését.
kísérlet
A kísérleterőforrás lehetővé teszi, hogy MLflow-kísérleteket egy csomagban definiáljon. További információ az MLflow-kísérletekről: Betanítási futtatások rendszerezése MLflow-kísérletekkel.
Példa
Az alábbi példa egy olyan kísérletet határoz meg, amelyet minden felhasználó megtekinthet:
resources:
experiments:
experiment:
name: my_ml_experiment
permissions:
- level: CAN_READ
group_name: users
description: MLflow experiment used to track runs
feladat
A munkaforrás lehetővé teszi, hogy munkákat és azok hozzátartozó feladatait a csomagban definiálja. További információ a feladatokról: A Databricksvezénylésének áttekintése. A Databricks Asset Bundles-sablont a feladat létrehozásához használó oktatóanyagért lásd: Feladat fejlesztése az Azure Databricksben a Databricks Asset Bundleshasználatával.
Példa
Az alábbi példa meghatároz egy munkát az hello-job
erőforrás kulcsával, amely egy jegyzetfüzet-feladatot tartalmaz:
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
notebook_task:
notebook_path: ./hello.py
A feladattevékenységek meghatározásáról és a feladatbeállítások felülbírálásáról további információt a Feladatok hozzáadása a Databricks Asset Bundles, a Databricks Asset Bundles feladatbeállításainak felülbírálása, valamint a Databricks Asset Bundles fürtbeállításainak felülbírálásaszakaszban talál.
modell (örökölt)
A modellerőforrás lehetővé teszi, hogy örökölt modelleket kötegekben definiálja. A Databricks inkább azt javasolja, hogy a Unity Catalog által regisztrált modelleket használja.
modellszolgáltatási végpont
A model_serving_endpoint erőforrás lehetővé teszi modellek kiszolgálási végpontjainak definiálását. Lásd: Végpontokat kiszolgáló modell kezelése.
Példa
Az alábbi példa egy végpontot kiszolgáló Unity Catalog-modellt határoz meg:
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)
A quality_monitor erőforrás lehetővé teszi egy Unity Catalog táblamonitormeghatározását. A monitorokról további információt a Modell minőségének és a végpont állapotának figyelésecímű témakörben talál.
Példa
Az alábbi példa egy minőségi monitorozást határoz meg:
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
regisztrált_modell (Unity Catalog)
A regisztrált modellerőforrás lehetővé teszi modellek meghatározását a Unity Catalogban. További információ a Unity Catalog regisztrált modellekrőla "A modell életciklusának kezelése a Unity Katalógusban"című témakörben található.
Példa
Az alábbi példa egy regisztrált modellt határoz meg a Unity Catalogban:
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
adatfolyam
A pipeline erőforrás lehetővé teszi DLT-csővezetékeklétrehozását. További információ a csővezetékekről: lásd Mi az a DLT?. A Databricks-eszközcsomagok sablont folyamat létrehozásához használó oktatóanyagért tekintse meg DLT-folyamatok fejlesztése Databricks-eszközcsomagokkal.
Példa
Az alábbi példa egy pipeline-t határoz meg az erőforráskulcs hello-pipeline
segítségével.
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
séma (Unity Catalog)
A sémaerőforrás-típus lehetővé teszi, hogy a Unity Catalog sémáit meghatározza a táblákhoz és egyéb erőforrásokhoz a csomag részeként létrehozott munkafolyamatok és adatcsővezetétek során. A más erőforrástípusoktól eltérő sémákra a következő korlátozások vonatkoznak:
- A sémaerőforrás tulajdonosa mindig az üzembe helyezés felhasználója, és nem módosítható. Ha a csomagban
run_as
van megadva, azt a séma műveletei figyelmen kívül hagyják. - Csak azok a mezők érhetők el a séma erőforráshoz, amelyeket a megfelelő Sémaobjektum létrehozó API támogat. A
enable_predictive_optimization
például nem támogatott, mivel csak a frissítési API-érhető el.
Példák
Az alábbi példa egy my_pipeline
erőforráskulccsal rendelkező folyamatot határoz meg, amely létrehoz egy Unity Catalog sémát my_schema
kulccsal, mint célt.
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.
A Databricks-eszközcsomagok nem támogatják a legfelső szintű vissza nem térítendő támogatásokat, ezért ha egy sémához szeretne támogatást beállítani, adja meg a sémához tartozó támogatásokat a schemas
leképezésen belül. További információ a támogatásokról: Jogosultságok megjelenítése, megadása és visszavonása.
Az alábbi példa egy Unity Catalog-sémát határoz meg támogatásokkal:
resources:
schemas:
my_schema:
name: test-schema
grants:
- principal: users
privileges:
- SELECT
- principal: my_team
privileges:
- CAN_MANAGE
catalog_name: main
kötet (Unity Catalog)
A kötet erőforrástípusa lehetővé teszi a Unity Catalog kötetek definiálását és létrehozását csomag részeként. Amikor egy kötettel rendelkező csomagot helyez üzembe, vegye figyelembe, hogy:
- Addig nem lehet hivatkozni egy kötetre a
artifact_path
csomagban, amíg az a munkaterületen nem létezik. Ezért ha a Databricks Asset Bundles segítségével szeretné létrehozni a kötetet, először meg kell határoznia a kötetet a csomagban, telepítenie kell, hogy létrehozza a kötetet, majd hivatkoznia kell rá aartifact_path
a későbbi telepítések során. - A csomagban lévő kötetek nincsenek
dev_${workspace.current_user.short_name}
előtaggal ellátva, ha a telepítési célpontmode: development
konfigurálva van. Ezt az előtagot azonban manuálisan is konfigurálhatja. Lásd: Egyéni beállítások.
Példa
Az alábbi példa egy Unity Catalog-kötetet hoz létre a my_volume
kulccsal:
resources:
volumes:
my_volume:
catalog_name: main
name: my_volume
schema_name: my_schema
A Unity Catalog-kötetben egy fájlba író feladatot futtató példacsomagért tekintse meg a csomagpéldák GitHub-adattárát.