Prostředky Databricks Asset Bundles
Databricks Asset Bundles umožňují specifikovat informace o prostředcích Azure Databricks používaných balíčkem v mapování resources
v konfiguraci Asset Bundles. Prohlédněte si mapování prostředků a referenční klíč k prostředkům .
Tento článek popisuje podporované typy prostředků pro sady a obsahuje podrobnosti a příklad pro každý podporovaný typ. Další příklady najdete v tématu Příklady konfigurace sady.
Rada
Pokud chcete generate YAML pro jakýkoli existující prostředek, použijte příkaz databricks bundle generate
. Viz Generate konfigurační soubor sady.
podporované prostředky
Následující table uvádí podporované typy prostředků pro balíčky. Některé prostředky je možné vytvořit tak, že je definujete v sadě a nasadíte sadu a některé prostředky podporují odkazování pouze na existující prostředek, který se má zahrnout do sady.
Prostředky se definují pomocí odpovídající rozhraní REST API Databricks datové části požadavku na vytvoření objektu, where podporovaných polí objektu vyjádřených jako YAML jsou podporované vlastnosti prostředku. Odkazy na dokumentaci pro datové zátěže jednotlivých prostředků jsou uvedeny v table.
Rada
Příkaz databricks bundle validate
vrátí upozornění, pokud se v konfiguračních souborech sady nacházejí neznámé vlastnosti prostředku.
Zdroj | Vytvořit podporu | Odpovídající objekt rozhraní REST API |
---|---|---|
clusteru | ✓ | objekt clusteru |
řídicí panel | objekt řídicího panelu | |
experiment | ✓ | Experimentální objekt |
úlohy | ✓ | objekt úlohy |
model (starší verze) | ✓ | Model (starší verze) objekt |
koncový bod pro poskytování modelu | ✓ | model obsluhující objekt koncového bodu |
kanálu | ✓ | [Objekt potrubí]](https://docs.databricks.com/api/azure/workspace/pipelines/create) |
quality_monitor | ✓ | Objekt pro monitorování kvality |
zaregistrovaný_model (Unity Catalog) | ✓ | Zaregistrovaný modelový objekt |
schema (Unity Catalog) | ✓ | objektu |
svazek (Unity Catalog) | ✓ | objekt svazku |
shluk
Prostředek clusteru definuje univerzální cluster.
Příklad
Následující příklad vytvoří cluster s názvem my_cluster
a nastaví ho jako cluster pro spuštění poznámkového bloku v 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"
palubní deska
Prostředek řídicího panelu umožňuje spravovat řídicí panely AI/BI v sadě. Informace o řídicích panelech naleznete v Dashboards.
Příklad
Následující příklad zahrnuje a nasazuje ukázkový dashboard NYC Taxi Trip Analysis do pracovního prostoru Databricks.
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}
Pokud k úpravě řídicího panelu použijete uživatelské rozhraní, nebudou změny provedené prostřednictvím uživatelského rozhraní použity u souboru JSON řídicího panelu v místní sadě, pokud ho explicitně update pomocí bundle generate
. Pomocí možnosti --watch
můžete průběžně dotazovat a načítat změny na dashboardu. Viz Generate konfigurační soubor sady.
Pokud se navíc pokusíte nasadit sadu obsahující soubor JSON řídicího panelu, který se liší od souboru JSON ve vzdáleném pracovním prostoru, dojde k chybě. Pokud chcete vynutit nasazení a přepsání řídicího panelu ve vzdáleném pracovním prostoru místním pracovním prostorem, použijte možnost --force
. Viz Nasazení sady.
experiment
Prostředek experimentu umožňuje definovat experimenty MLflow v balíčku. Informace o experimentech MLflow najdete v tématu Uspořádání trénovacích běhů pomocí experimentů MLflow.
Příklad
Následující příklad definuje experiment, který můžou zobrazit všichni uživatelé:
resources:
experiments:
experiment:
name: my_ml_experiment
permissions:
- level: CAN_READ
group_name: users
description: MLflow experiment used to track runs
práce
Zdroje pro úlohy vám umožňují definovat úlohy a jejich příslušné úkoly ve vašem balíčku. Informace o úlohách najdete v tématu Plánování a orchestrace pracovních postupů. Kurz, který k vytvoření úlohy používá šablonu Sady prostředků Databricks, najdete v tématu Vývoj úlohy v Azure Databricks pomocí sad prostředků Databricks.
Příklad
Následující příklad definuje úlohu s klíčem zdroje hello-job
s jedním úkolem poznámkového bloku:
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
notebook_task:
notebook_path: ./hello.py
Informace o definování úloh a přepsání nastavení úloh naleznete v tématu Přidání úkolů do úloh v sadách prostředků Databricks, Přepsání nastavení úloh v sadě prostředků Databricksa Přepsání nastavení clusteru v sadě prostředků Databricks.
model (starší verze)
Modelový zdroj umožňuje definovat starší modely v balíčcích. Databricks doporučuje místo toho používat zaregistrované modely Unity Catalog.
koncový bod pro obsluhu modelu
Prostředek model_serving_endpoint umožňuje definovat model obsluhující koncové body. Viz Správa modelů obsluhujících koncové body.
Příklad
Následující příklad definuje koncový bod obsluhy modelu Unity Catalog:
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"
monitor kvality (Unity Catalog)
Prostředek quality_monitor umožňuje definovat Unity Catalogtable monitor. Informace o monitorování najdete v tématu Monitorování kvality modelu a stavu koncového bodu.
Příklad
Následující příklad definuje monitorování kvality:
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
registrovaný_model (Unity Catalog)
Registrovaný zdroj modelu umožňuje definovat modely v Unity Catalog. Informace o zaregistrovaných modelech Unity Catalognaleznete v tématu Správa životního cyklu modelu v Unity Catalog.
Příklad
Následující příklad definuje registrovaný model v 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
potrubí
Zdroj potrubí umožňuje vytvoření potrubí Delta Live Tables. Informace o pipelinech najdete v tématu Co je Delta Live Tables?. Kurz, který k vytvoření kanálu používá šablonu Sady prostředků Databricks, najdete v tématu Vývoj kanálů Delta Live Tables pomocí sad prostředků Databricks.
Příklad
Následující příklad definuje pipeline s klíčem prostředku 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)
Typ prostředku schema umožňuje definovat schémata Unity Catalog pro tables a další prostředky v pracovních postupech a pipelinech vytvořených jako součást balíčku. schema, který se liší od jiných typů prostředků, má následující omezení:
- Vlastníkem prostředku schema je vždy uživatel nasazení a nelze ho změnit. Pokud je v sadě zadán
run_as
, operace na schemaho budou ignorovat. - Pro prostředek
jsou k dispozici pouze pole podporovaná odpovídajícími objekty schémat pro vytvoření rozhraní API. Například není podporován, protože je k dispozici pouze v rozhraní API .
Příklady
Následující příklad definuje kanál s klíčem prostředku my_pipeline
, který vytvoří Unity Catalogschema s klíčem my_schema
jako cílový klíč.
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.
Sady prostředků Databricks nepodporují mapování grantů nejvyšší úrovně, takže pokud chcete set granty pro schema, definujte granty pro schema v mapování schemas
. Další informace o grantech naleznete v tématu Zobrazit, granta revoke oprávnění.
Následující příklad definuje Unity Catalogschema s granty:
resources:
schemas:
my_schema:
name: test-schema
grants:
- principal: users
privileges:
- CAN_MANAGE
- principal: my_team
privileges:
- CAN_READ
catalog_name: main
díl (Unity Catalog)
Typ prostředku "volume" vám umožňuje definovat a vytvářet Catalogvolumes v Unity jako součást jednoho balíčku. Při nasazování sady s definovaným svazkem mějte na paměti, že:
- Na svazek nelze odkazovat v balíčku
artifact_path
, dokud neexistuje v pracovním prostoru. Proto pokud chcete k vytvoření svazku použít sady prostředků Databricks, musíte nejprve definovat svazek v sadě, poté ho nasadit, aby byl svazek vytvořen, a pak na něj odkazovat v rámciartifact_path
při následných nasazeních. -
Volumes v sadě nejsou opatřeny předponou
dev_${workspace.current_user.short_name}
, pokud je cíl nasazení nakonfigurován namode: development
. Tuto předponu ale můžete nakonfigurovat ručně. Viz Vlastní předvolby.
Příklad
Následující příklad vytvoří svazek Unity Catalog s klíčem my_volume
:
resources:
volumes:
my_volume:
catalog_name: main
name: my_volume
schema_name: my_schema
Příklad balíku, který spouští úlohu zapisující do souboru ve svazku Unity Catalog, najdete v úložišti GitHub "bundle-examples" .