Databricks 資產組合資源
Databricks 資產套件組合可讓您指定套件組合在套件組合組態中 resources
對應中使用的 Azure Databricks 資源相關信息。 請參閱 的資源對應。
本文概述套件組合支援的資源類型,並提供每個支援類型的詳細數據和範例。
支援的資源
下表列出套件組合支援的資源類型。 某些資源可以藉由在套件組合中定義並部署套件組合來建立,而某些資源僅支持參考現有資源以包含在套件組合中。
資源是使用對應的 Databricks REST API 來定義資源, 物件的建立作業要求承載,其中物件支援的欄位,以 YAML 表示,是資源的支持屬性。 每個資源對應承載的文件連結都會列在表格中。
提示
如果套件組合組態檔中找到未知的資源屬性,則 databricks bundle validate
命令會傳回警告。
資源 | 建立支援 | 資源屬性 |
---|---|---|
叢集 | ✓ | 叢集屬性:POST /api/2.1/clusters/create |
儀錶板 | 儀錶板屬性:POST /api/2.0/lakeview/dashboards | |
實驗 | ✓ | 實驗屬性:POST /api/2.0/mlflow/experiments/create |
作業 | ✓ | 作業屬性:POST /api/2.1/jobs/create |
模型(舊版) | ✓ | 模型屬性:POST /api/2.0/mlflow/registered-models/create |
模型服務端點 | ✓ | 模型提供端點屬性:POST /api/2.0/serving-endpoints |
管線 | ✓ | 管線屬性:POST /api/2.0/pipelines |
quality_monitor | ✓ | 品質監視器屬性:POST /api/2.1/unity-catalog/tables/{table_name}/monitor |
registered_model (Unity 目錄) | ✓ | Unity 目錄模型屬性:POST /api/2.1/unity-catalog/models |
架構 (Unity 目錄) | ✓ | Unity 目錄架構屬性:POST /api/2.1/unity-catalog/schemas |
磁碟區 (Unity 目錄) | ✓ | Unity 目錄磁碟區屬性:POST /api/2.1/unity-catalog/volumes |
叢集
叢集資源可讓您建立所有用途的叢集。 下列範例會建立名為 my_cluster
的叢集,並將該叢集設定為用來在 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"
儀表板
儀錶板資源可讓您管理套件組合中的 AI/BI 儀錶板。 如需 AI/BI 儀錶板的相關信息,請參閱 儀錶板。
下列範例包含並將範例 NYC 計程車車程分析 儀錶板部署到 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}
如果您使用 UI 來修改控制板,除非您使用 bundle generate
明確更新它,否則透過 UI 所做的修改不會套用到本地套件中的控制板 JSON 文件。 您可以使用 [--watch
] 選項持續輪詢和擷取儀錶板的變更。 請參閱 產生套件組合元件檔。
此外,如果您嘗試部署套件組合,其中包含與遠端工作區中不同的儀錶板 JSON 檔案,則會發生錯誤。 若要使用本機工作區強制部署和覆寫遠端工作區中的儀錶板,請使用 [--force
] 選項。 請參閱 部署套件。
實驗
實驗資源可讓您在套件組合中定義 MLflow 實驗。 如需 MLflow 實驗的相關信息,請參閱
下列範例會定義所有使用者都可以檢視的實驗:
resources:
experiments:
experiment:
name: my_ml_experiment
permissions:
- level: CAN_READ
group_name: users
description: MLflow experiment used to track runs
工作
作業資源可讓您在套件組合中定義作業及其對應的工作。 如需作業的相關信息,請參閱 排程及協調工作流程。 如需使用 Databricks 資產組合範本建立作業的教學課程,請參閱 使用 Databricks Asset Bundles在 Azure Databricks 上開發作業。
下列範例會定義一個使用資源索引鍵 hello-job
並包含一個筆記本任務的作業:
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
notebook_task:
notebook_path: ./hello.py
如需定義作業工作和覆寫作業設定的相關信息,請參閱 將工作新增至 Databricks Asset Bundles中的作業、覆寫 Databricks Asset Bundles中的作業工作設定,以及 在 Databricks Asset Bundles中覆寫叢集設定。
model_serving_endpoint
model_serving_endpoint資源可讓您定義服務端點的模型。 請參閱 管理服務端點的模型。
下列範例會定義提供端點的 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"
quality_monitor (Unity 目錄)
quality_monitor 資源允許您定義 Unity Catalog 資料表監控器。 如需有關顯示器的資訊,請參閱 顯示器型號品質和端點健康情況。
下列範例會定義品質監視器:
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
註冊模型(Unity Catalog)
已註冊的模型資源可讓您在 Unity 目錄中定義模型。 如需 Unity 目錄已註冊模型的詳細資訊,請參閱 在 Unity 類別目錄中管理模型生命週期。
下列範例會在 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
管道
管線資源可讓您建立 Delta Live Tables 管線。 如需管線的相關資訊,請參閱 什麼是 Delta Live Tables?。 如需使用 Databricks 資產包範本建立管線的教學,請參閱 使用 Databricks 資產包開發 Delta Live Tables 管線。
下列範例會定義資源金鑰為 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
架構 (Unity 目錄)
模式資源類型允許您在工作流程和管線中,為做為套件一部分的資料表及其他資產定義 Unity Catalog 模式。 架構與其他資源類型不同,具有下列限制:
- 架構資源的擁有者一律是部署使用者,而且無法變更。 如果在套件組合中定義
run_as
,在架構上的操作將會忽略它。 - 只有對應 Schemas 物件建立 API 支援的欄位可供架構資源使用。 例如,不支援
enable_predictive_optimization
,因為它僅適用於 更新 API。
下列範例會定義具有資源密鑰的管線 my_pipeline
,此管線會使用索引鍵 my_schema
作為目標來建立 Unity 目錄架構:
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.
Databricks Asset Bundle 不支援頂層授權對應,因此如果您想設定架構的授權,請在 schemas
對應中定義架構的授權。 如需有關授與、顯示和撤銷許可權的更多資訊,請參閱 。
下列範例定義了具有授權的 Unity Catalog 綱要:
resources:
schemas:
my_schema:
name: test-schema
grants:
- principal: users
privileges:
- CAN_MANAGE
- principal: my_team
privileges:
- CAN_READ
catalog_name: main
磁碟區 (Unity 目錄)
磁碟區資源類型可讓您定義和建立 Unity 目錄磁碟區作為套件組合的一部分。 部署有定義磁碟區的套件組合時,請注意:
- 除非磁碟區已存在於工作區,否則無法在套件組合的
artifact_path
中參考該磁碟區。 因此,如果您想要使用 Databricks 資產組合來建立磁碟區,您必須先定義套件組合中的磁碟區、部署磁碟區以建立磁碟區,然後在後續部署的artifact_path
中參考磁碟區。 - 當部署目標設定為
mode: development
時,套件組合中的卷不會加上dev_${workspace.current_user.short_name}
前綴。 不過,您可以手動設定此字首。 請參閱 自訂預設值。
下列範例會建立具有索引鍵 my_volume
的 Unity 目錄磁碟區:
resources:
volumes:
my_volume:
catalog_name: main
name: my_volume
schema_name: my_schema