共用方式為


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 實驗的相關信息,請參閱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