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 vygenerovat YAML pro jakýkoli existující prostředek, použijte příkaz databricks bundle generate
. Viz Vygenerování konfiguračního souboru sady.
podporované prostředky
Následující tabulka uvádí podporované typy prostředků pro sady. 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 jsou definovány pomocí odpovídající Databricks REST API žádosti o vytvoření objektu, kde podporovaná pole objektu jsou vlastnosti prostředku vyjádřené ve formátu YAML. Odkazy na dokumentaci pro payloady jednotlivých prostředků jsou uvedeny v tabulce.
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 |
---|---|---|
aplikace | ✓ | Objekt aplikace |
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 |
registrovaný_model (Unity Catalog) | ✓ | Zaregistrovaný modelový objekt |
schématu (katalog Unity) | ✓ | objekt schématu |
svazku (katalog Unity) | ✓ | objekt svazku |
aplikace
Prostředek aplikace definuje aplikaci Databricks s . Informace o aplikacích Databricks najdete v tématu Co je Databricks Apps?.
Rada
Sadu můžete inicializovat pomocí aplikace Streamlit Databricks pomocí následujícího příkazu:
databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app
Pokud chcete přidat aplikaci, zadejte pole objektu definující aplikaci a také následující:
-
source_code_path
– místní cesta./app
zdrojového kódu aplikace Databricks. Toto pole je povinné. -
config
– příkazy konfigurace aplikace a proměnné prostředí. Můžete ho použít k určení různých cílů nasazení aplikací.
Příklad
Následující příklad vytvoří aplikaci s názvem my_app
, která spravuje úlohu vytvořenou balíčkem:
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"
Kompletní sadu ukázek aplikace Databricks najdete v příklady úložiště GitHub.
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 na soubor JSON řídicího panelu v místní sadě, pokud ho explicitně neaktualizujete pomocí bundle generate
. Pomocí možnosti --watch
můžete průběžně dotazovat a načítat změny na dashboardu. Viz Vygenerování konfiguračního souboru 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 Přehled orchestrace na Databricks. 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 modely registrované v katalogu Unity .
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 obsluhující model katalogu Unity:
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 (katalog Unity)
Prostředek quality_monitor umožňuje definovat monitortabulek katalogu Unity
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
registered_model (Unity Catalog)
Registrovaný prostředek modelu umožňuje definovat modely v katalogu Unity. Informace o registrovaných modelech v Unity Catalognaleznete v Katalogu Unity v tématu Správa životního cyklu modelu.
Příklad
Následující příklad definuje registrovaný model v Katalogu Unity:
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 kanálu vám umožňuje vytvářet Delta Live Tables kanály. Informace o kanálech najdete v tématu Co jsou dynamické tabulky Delta?. Kurz, který používá šablonu Databricks Asset Bundles k vytvoření datového toku, najdete v části Vývoj datových toků Delta Live Tables pomocí Databricks Asset Bundles.
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
schéma (katalog Unity)
Typ prostředku schématu umožňuje definovat schémata katalogu Unity pro tabulky a další zdroje ve vašich pracovních postupech a pipelinech vytvořených jako součást balíčku. Schéma, které se liší od jiných typů prostředků, má následující omezení:
- Vlastníkem prostředku schématu je vždy uživatel, který provádí nasazení, a nelze jej změnit. Pokud je v balíčku zadán
run_as
, bude operacemi ve schématu ignorován. - Pro prostředek schématu jsou k dispozici pouze pole podporovaná odpovídajícím objektem schémat v rámci rozhraní API pro vytváření. Například
enable_predictive_optimization
se nepodporuje, protože je k dispozici pouze v rozhraní API aktualizace.
Příklady
Následující příklad definuje kanál s klíčem prostředku my_pipeline
, který vytvoří schéma katalogu Unity s klíčem my_schema
jako cí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.
Sady prostředků Databricks nepodporují mapování grantů nejvyšší úrovně, takže pokud chcete nastavit granty pro schéma, definujte granty pro schéma v rámci mapování schemas
. Další informace o grantech naleznete v tématu Zobrazit, udělit a odvolat oprávnění.
Následující příklad definuje schéma katalogu Unity s granty:
resources:
schemas:
my_schema:
name: test-schema
grants:
- principal: users
privileges:
- SELECT
- principal: my_team
privileges:
- CAN_MANAGE
catalog_name: main
svazek (Unity Catalog)
Typ prostředku svazku umožňuje definovat a vytvářet svazky katalogu Unity jako součást sady. 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. - Svazky v sadě nejsou opatřeny předponou
dev_${workspace.current_user.short_name}
, kdy je cíl nasazení nakonfigurovánmode: development
. Tuto předponu ale můžete nakonfigurovat ručně. Viz Vlastní předvolby.
Příklad
Následující příklad vytvoří svazek katalogu Unity s klíčem my_volume
:
resources:
volumes:
my_volume:
catalog_name: main
name: my_volume
schema_name: my_schema
Příklad sady, která spouští úlohu, která zapisuje do souboru ve svazku katalogu Unity, najdete v příklady úložiště GitHub.