使用 Databricks 资产捆绑包可以指定捆绑包在捆绑配置中的 resources 映射中使用的 Azure Databricks 资源的相关信息。 请参阅资源映射和资源密钥参考。
本文概述了捆绑包支持的资源类型,并为每个受支持的类型提供详细信息和示例。 有关其他示例,请参阅捆绑包配置示例。
提示
若要为任何现有资源生成 YAML,请使用 databricks bundle generate 命令。 请参阅 databricks 捆绑包生成。
支持的资源
下表列出了捆绑包支持的资源类型。 可以通过在捆绑包中定义资源并部署捆绑包来创建一些资源,并且某些资源只能通过引用要包含在捆绑包中的现有资产来创建。
资源使用相应的 Databricks REST API 对象的创建操作请求有效负载定义,其中对象支持的字段(以 YAML 表示)是资源支持的属性。 表中列出了每个资源的相应有效负载的文档链接。
提示
如果在捆绑包配置文件中发现未知资源属性,databricks bundle validate 命令将返回警告。
| 资源 | 相应的 REST API 对象 | 
|---|---|
| 群集 | 群集对象 | 
| 仪表板 | 仪表板对象 | 
| 实验 | 试验对象 | 
| 作业 | 作业对象 | 
| 模型(旧版) | 模型(旧版)对象 | 
| 管道 | Pipeline 对象 | 
| 质量监控 | 质量监视器对象 | 
| registered_model (Unity Catalog) | 已注册的模型对象 | 
| 架构 (Unity 目录) | Schema 对象 | 
| 秘密范围 | 机密范围对象 | 
| sql_warehouse | SQL 仓库对象 | 
| 卷 (Unity Catalog) | 卷对象 | 
群集
Type: Map
群集资源定义 群集。
clusters:
  <cluster-name>:
    <cluster-field-name>: <cluster-field-value>
| 密钥 | 类型 | DESCRIPTION | 
|---|---|---|
| apply_policy_default_values | 布尔 | 设置为 true 时,策略中的固定值和默认值将用于省略的字段。 设置为 false 时,将仅应用策略中的固定值。 | 
| autoscale | 地图 | 为了根据负载自动纵向扩展和缩减群集所需的参数。 请参阅 autoscale。 | 
| autotermination_minutes | 整数 | 在群集处于非活动状态(以分钟为单位)后自动终止群集。 如果未设置,则不会自动终止此群集。 如果指定,阈值必须介于 10 到 10000 分钟之间。 用户还可以将此值设置为 0 以显式禁用自动终止。 | 
| aws_attributes | 地图 | 与 Amazon Web Services 上运行的群集相关的属性。 如果未在创建群集时指定,将使用一组默认值。 请参阅 aws_attributes。 | 
| azure_attributes | 地图 | 与 Azure 上运行的群集相关的属性。 如果未在创建群集时指定,将使用一组默认值。 请参阅 azure_attributes。 | 
| cluster_log_conf | 地图 | 用于将 Spark 日志传送到长期存储目标的配置。 请参阅 cluster_log_conf。 | 
| cluster_name | 字符串 | 用户请求的群集名称。 这不必是唯一的。 如果未在创建时指定,群集名称将为空字符串。 | 
| custom_tags | 地图 | 群集资源的其他标记。 除了 default_tags,Databricks 还会使用这些标记来标记所有群集资源(例如,AWS 实例和 EBS 卷)。 请参阅 custom_tags。 | 
| data_security_mode | 字符串 | 从群集访问数据时要使用的数据治理模型。 请参阅 data_security_mode。 | 
| docker_image | 地图 | 自定义 Docker 映像。 请参阅 docker_image。 | 
| driver_instance_pool_id | 字符串 | 群集所属的驱动程序实例池的可选 ID。 如果未分配驱动池,则群集池将使用 ID 为(instance_pool_id)的实例池。 | 
| driver_node_type_id | 字符串 | Spark 驱动程序的节点类型。 请注意,此字段是可选的;如果未设置,驱动程序节点类型将设置为与上面定义的值 node_type_id相同。 如果设置了virtual_cluster_size,则此字段和node_type_id不应被设置。 如果同时指定了driver_node_type_id、node_type_id和virtual_cluster_size,则driver_node_type_id和node_type_id将优先考虑。 | 
| enable_elastic_disk | 布尔 | 自动缩放本地存储:启用后,当 Spark 辅助角色在磁盘空间不足时,此群集将动态获取额外的磁盘空间。 此功能需要特定的 AWS 权限才能正常运行 - 有关详细信息,请参阅用户指南。 | 
| enable_local_disk_encryption | 布尔 | 是否在群集 VM 的本地磁盘上启用 LUKS | 
| gcp_attributes | 地图 | 与 Google Cloud Platform 上运行的群集相关的属性。 如果未在创建群集时指定,将使用一组默认值。 请参阅 gcp_attributes。 | 
| init_scripts | 序列 | 用于存储初始化脚本的配置。 可以指定任意数量的目标。 这些脚本会按照所提供的顺序依次执行。 请参阅 init_scripts。 | 
| instance_pool_id | 字符串 | 群集所属的实例池的可选 ID。 | 
| is_single_node | 布尔 | 仅在满足 kind = CLASSIC_PREVIEW条件时才能使用此字段。 设置为 true 时,Databricks 将自动设置与单节点相关的custom_tags、spark_conf和num_workers | 
| kind | 字符串 | 此计算规范描述的计算类型。 | 
| node_type_id | 字符串 | 此字段通过单个值对提供给此群集中的每个 Spark 节点的资源进行编码。 例如,可以针对内存或计算密集型工作负载对 Spark 节点进行预配和优化。 可以使用 :method:clusters/listNodeTypes API 调用检索可用节点类型的列表。 | 
| num_workers | 整数 | 此群集应该拥有的工作节点的数目。 群集有一个 Spark 驱动器和 num_workers执行器,总共num_workers+ 1 个 Spark 节点。 | 
| permissions | 序列 | 群集权限。 查看 权限。 | 
| policy_id | 字符串 | 用于创建群集(如果适用)的群集策略的 ID。 | 
| runtime_engine | 字符串 | 确定群集的运行时引擎是 STANDARD或PHOTON。 | 
| single_user_name | 字符串 | 如果 data_security_mode 是 SINGLE_USER,则为单个用户名 | 
| spark_conf | 地图 | 一个对象,其中包含一组可选的由用户指定的 Spark 配置键值对。 用户还可以通过 spark.driver.extraJavaOptions和spark.executor.extraJavaOptions分别传入驱动程序和执行程序的额外 JVM 选项字符串。 请参阅 spark_conf。 | 
| spark_env_vars | 地图 | 一个对象,其中包含一组可选的由用户指定的环境变量键值对。 | 
| spark_version | 字符串 | 群集的 Spark 版本,例如 3.3.x-scala2.11可以使用 :method:clusters/sparkVersions API 调用检索可用的 Spark 版本列表。 | 
| ssh_public_keys | 序列 | 将会添加到此群集中各个 Spark 节点的 SSH 公钥内容。 相应的私钥可用于在端口 ubuntu上使用用户名2200登录。 最多可以指定 10 个密钥。 | 
| use_ml_runtime | 布尔 | 仅在满足 kind = CLASSIC_PREVIEW条件时才能使用此字段。effective_spark_version的决定因素为spark_version(DBR 版本)、此字段use_ml_runtime以及node_type_id是否为 gpu 节点。 | 
| workload_type | 地图 | 显示群集工作负荷类型的群集属性。 请参阅 workload_type。 | 
例子
以下示例使用 Databricks Runtime 15.4 LTS 和群集策略为当前用户创建专用(单用户)群集:
resources:
  clusters:
    my_cluster:
      num_workers: 0
      node_type_id: 'i3.xlarge'
      driver_node_type_id: 'i3.xlarge'
      spark_version: '15.4.x-scala2.12'
      spark_conf:
        'spark.executor.memory': '2g'
      autotermination_minutes: 60
      enable_elastic_disk: true
      single_user_name: ${workspace.current_user.userName}
      policy_id: '000128DB309672CA'
      enable_local_disk_encryption: false
      data_security_mode: SINGLE_USER
      runtime_engine": STANDARD
此示例创建一个简单的群集 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'
          existing_cluster_id: ${resources.clusters.my_cluster.id}
仪表板
Type: Map
仪表板资源允许您在捆绑包中管理 AI/BI 仪表板。 有关 AI/BI 仪表板的信息,请参阅仪表板。
如果您部署了一个捆绑包,其中包含本地环境中的仪表板,然后使用 UI 修改该仪表板,则通过 UI 进行的修改不会应用在本地捆绑包中的仪表板 JSON 文件上,除非您使用 bundle generate 显式更新该文件。 可以使用 --watch 持续轮询和检索仪表板的更改。 请参阅 databricks 捆绑包生成。
此外,如果尝试从本地环境部署包含与远程工作区中的仪表板 JSON 文件不同版本的仪表板 JSON 文件的捆绑包,则会发生错误。 若要使用本地工作区强制部署并覆盖远程工作区中的仪表板,请使用 --force 选项。 请参阅 databricks 捆绑包部署。
注释
将 Databricks 资产捆绑包与 仪表板 Git 支持配合使用时,通过添加 同步映射将仪表板排除在以文件形式同步之外,以防止生成重复的仪表板。
sync:
  exclude:
    - src/*.lvdash.json
dashboards:
  <dashboard-name>:
    <dashboard-field-name>: <dashboard-field-value>
| 密钥 | 类型 | DESCRIPTION | 
|---|---|---|
| display_name | 字符串 | 仪表板的显示名称。 | 
| embed_credentials | 布尔 | 捆绑包部署标识凭据是否用于为所有仪表板查看器执行查询。 如果设置为 false,则使用查看者的凭据。 默认值为false。 | 
| etag | 字符串 | 仪表板的实体标记。 可以在更新时选择提供,以确保自上次读取以来仪表板未被修改。 | 
| file_path | 字符串 | 仪表板资产的本地路径,包括文件名。 导出的仪表板始终具有文件扩展名 .lvdash.json。 | 
| permissions | 序列 | 仪表板权限。 查看 权限。 | 
| serialized_dashboard | 任意 | 以序列化字符串形式表示的仪表板的内容。 | 
| warehouse_id | 字符串 | 用于运行仪表板的仓库 ID。 | 
示例:
以下示例包括并将示例的 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}
试验
Type: Map
试验资源允许在捆绑包中定义 MLflow 试验 。 有关 MLflow 试验的信息,请参阅使用 MLflow 试验组织训练运行。
experiments:
  <experiment-name>:
    <experiment-field-name>: <experiment-field-value>
| 密钥 | 类型 | DESCRIPTION | 
|---|---|---|
| artifact_location | 字符串 | 存储试验项目的位置。 | 
| name | 字符串 | 标识试验的易记名称。 例如 /Workspace/Users/someone@example.com/my_experiment,试验名称必须是 Databricks 工作区中的绝对路径。 | 
| permissions | 序列 | 试验的权限。 查看 权限。 | 
| tags | 序列 | 其他元数据键值对。 请参阅 标记。 | 
示例:
以下示例定义所有用户都可以查看的试验:
resources:
  experiments:
    experiment:
      name: /Workspace/Users/someone@example.com/my_experiment
      permissions:
        - level: CAN_READ
          group_name: users
      description: MLflow experiment used to track runs
作业
Type: Map
作业资源允许你在捆绑包中定义 作业及其相应的任务 。 有关工作的更多信息,请参阅 Lakeflow 工作。 有关使用 Databricks 资产捆绑模板创建作业的教程,请参阅 使用 Databricks 资产捆绑包开发作业。
jobs:
  <job-name>:
    <job-field-name>: <job-field-value>
| 密钥 | 类型 | DESCRIPTION | 
|---|---|---|
| budget_policy_id | 字符串 | 要用于此作业的用户指定预算策略的 ID。 如果未指定,则创建或修改作业时,可以应用默认预算策略。 请参阅 effective_budget_policy_id了解此工作负载使用的预算策略。 | 
| continuous | 地图 | 此作业的可选连续属性。 连续属性将确保始终有一个运行在执行。 schedule和continuous中只能使用一个。 请参阅 continuous。 | 
| deployment | 地图 | 由外部源管理的作业的部署信息。 请参阅 部署。 | 
| description | 字符串 | 作业的可选说明。 UTF-8 编码的最大长度为 27700 个字符。 | 
| edit_mode | 字符串 | 作业的编辑模式是 UI_LOCKED或EDITABLE的其中之一。 | 
| email_notifications | 地图 | 一组可选的电子邮件地址,在此作业的运行开始或完成时,以及在删除此作业时,这些电子邮件地址将会收到通知。 请参阅 email_notifications。 | 
| environments | 序列 | 此作业的无服务器任务可以引用的任务执行环境规范列表。 需要存在环境以支持无服务器任务。 对于无服务器笔记本任务,可以在笔记本环境面板中访问环境。 对于其他无服务器任务,需要使用任务设置中的environment_key指定任务环境。 请参阅 environments。 | 
| format | 字符串 | 作业的格式。 | 
| git_source | 地图 | 远程 Git 存储库的可选规范,其中包含任务使用的源代码。 重要:不推荐将 git_source字段和任务source字段设置为GIT用于捆绑包,因为可能导致本地相对路径不会指向 Git 存储库中的相同内容,而捆绑包要求,已部署作业的内容要与部署时使用的本地副本保持一致。相反,会在本地克隆存储库并在此存储库中设置捆绑包项目,以便任务源是工作区。 | 
| health | 地图 | 可为此作业定义的一组可选运行状况规则。 查看 健康。 | 
| job_clusters | 序列 | 此作业的任务可以共享和重复使用的作业群集规范列表。 请参阅 群集。 | 
| max_concurrent_runs | 整数 | 作业的最大允许并发运行数,可选。 如果希望能够以并发方式执行同一作业的多个运行,请设置此值。 请参阅 max_concurrent_runs。 | 
| name | 字符串 | 可选的作业名称。 UTF-8 编码的最大长度为 4096 字节。 | 
| notification_settings | 地图 | 向此作业的每个 email_notifications和webhook_notifications发送通知时使用的可选通知设置。 请参阅 notification_settings。 | 
| parameters | 序列 | 作业级参数定义。 请参阅 参数。 | 
| performance_target | 字符串 | PerformanceTarget 定义在无服务器上执行运行的性能或成本效益应如何。 | 
| permissions | 序列 | 作业的权限。 查看 权限。 | 
| queue | 地图 | 作业的队列设置。 请参阅 queue。 | 
| run_as | 地图 | 仅写入设置。 指定作业运行时所用的用户或服务主体。 如果未指定,作业将作为创建作业的用户运行。 应指定 user_name或service_principal_name其中之一。 否则,将引发错误。 请参阅为 Databricks 资产捆绑包工作流指定运行标识符。 | 
| schedule | 地图 | 此作业的可选定期计划。 默认行为是,只有通过在作业 UI 中单击“立即运行”或向该作业发送 API 请求 runNow来触发时,作业才会运行。 请参阅 计划。 | 
| tags | 地图 | 与作业关联的标记映射。 这些内容作为作业群集的群集标记转发到群集,并且受到与群集标记相同的限制。 最多可以向作业添加 25 个标记。 | 
| tasks | 序列 | 此作业要执行的任务规范列表。 请参阅将任务添加到 Databricks 资产捆绑包中的作业。 | 
| timeout_seconds | 整数 | 可选的超时设置,应用于此作业的每个运行。 值 0意味着无超时。 | 
| trigger | 地图 | 满足某些条件时触发运行的配置。 请参阅 触发器。 | 
| webhook_notifications | 地图 | 此作业的运行开始或完成时要通知的系统通知 ID 的集合。 请参阅 webhook_notifications。 | 
例子
以下示例使用一个笔记本任务定义具有资源键 hello-job 的作业:
resources:
  jobs:
    hello-job:
      name: hello-job
      tasks:
        - task_key: hello-task
          notebook_task:
            notebook_path: ./hello.py
以下示例使用 SQL 笔记本定义作业:
resources:
  jobs:
    job_with_sql_notebook:
      name: 'Job to demonstrate using a SQL notebook with a SQL warehouse'
      tasks:
        - task_key: notebook
          notebook_task:
            notebook_path: ./select.sql
            warehouse_id: 799f096837fzzzz4
有关其他作业配置示例,请参阅 作业配置。
有关如何定义作业任务及覆盖作业设置的信息,请参阅:
模型(旧版)
Type: Map
借助模型资源,可以在捆绑包中定义旧模型。 Databricks 建议改用 Unity Catalog 注册的模型。
管道
Type: Map
使用管道资源可以创建 Lakeflow 声明性 管道。 有关管道的信息,请参阅 Lakeflow 声明性管道。 有关使用 Databricks 资产捆绑包模板创建管道的教程,请参阅 使用 Databricks 资产捆绑开发 Lakeflow 声明性管道。
pipelines:
  <pipeline-name>:
    <pipeline-field-name>: <pipeline-field-value>
| 密钥 | 类型 | DESCRIPTION | 
|---|---|---|
| allow_duplicate_names | 布尔 | 如果为 false,则名称与其他管道的名称冲突时,部署将失败。 | 
| catalog | 字符串 | Unity Catalog 中要将数据从此管道发布到的目录。 如果指定了 target,此管道中的表将在target中的catalog架构内发布(例如catalog.target.table)。 如果未target指定,则不会将任何数据发布到 Unity 目录。 | 
| channel | 字符串 | Lakeflow 声明性管道发布通道,指定要使用的 Lakeflow 声明性管道的版本。 | 
| clusters | 序列 | 此管道部署的群集设置。 请参阅 群集。 | 
| configuration | 地图 | 此管道执行的配置。 | 
| continuous | 布尔 | 管道是连续运行的还是触发运行的。 这将替换 trigger。 | 
| deployment | 地图 | 此管道的部署类型。 请参阅 部署。 | 
| development | 布尔 | 管道是否处于开发模式。 默认值为 false。 | 
| dry_run | 布尔 | 管道是否为干运行管道。 | 
| edition | 字符串 | 管道产品版本。 | 
| environment | 地图 | 此管道的环境规范用于在无服务器计算平台上安装依赖项。 此密钥仅在 Databricks CLI 版本 0.258 及更高版本中受支持。 | 
| event_log | 地图 | 此管道的事件日志配置。 请参阅 event_log。 | 
| filters | 地图 | 该筛选器用于确定要包含在已部署图形中的管道包。 请参阅 筛选器。 | 
| id | 字符串 | 此管道的唯一标识符。 | 
| ingestion_definition | 地图 | 托管引入管道的配置。 这些设置不能与 libraries、schema、target或catalog设置一起使用。 请参阅 ingestion_definition。 | 
| libraries | 序列 | 此部署所需的库或代码。 请参阅 libraries。 | 
| name | 字符串 | 此管道的易记名称。 | 
| notifications | 序列 | 此管道的通知设置。 请参阅 通知。 | 
| permissions | 序列 | 管道的权限。 查看 权限。 | 
| photon | 布尔 | 是否为此管道启用了 Photon。 | 
| root_path | 字符串 | 此管道的根路径。 这在 Databricks 用户界面中编辑管道时用作根目录,并在管道执行期间执行 Python 源时将其添加到 sys.path。 | 
| run_as | 地图 | 管道运行时使用的身份。 如果未指定,则管道将以创建它的用户身份运行。 只能指定 user_name或service_principal_name。 如果同时指定了两者,则会引发错误。 请参阅为 Databricks 资产捆绑包工作流指定运行标识符。 | 
| schema | 字符串 | 作为表的读取来源或发布目标的默认架构(数据库)。 | 
| serverless | 布尔 | 是否为此管道启用了无服务器计算。 | 
| storage | 字符串 | 用于存储检查点和表的 DBFS 根目录。 | 
| tags | 地图 | 与流水线相关的标签映射。 这些内容作为群集标记转发到群集,因此受到相同的限制。 最多可以向管道添加 25 个标记。 | 
| target | 字符串 | 要将此管道中的表添加到的目标架构(数据库)。 必须指定 schema或target中的一个。 若要发布到 Unity 目录,还指定catalog。 用于创建管道的此旧字段已弃用,以支持schema字段。 | 
示例:
以下示例定义了一个使用资源键 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 Catalog)
Type: Map
quality_monitor 资源允许定义 Unity Catalog 表监视器。
quality_monitors:
  <quality_monitor-name>:
    <quality_monitor-field-name>: <quality_monitor-field-value>
| 密钥 | 类型 | DESCRIPTION | 
|---|---|---|
| assets_dir | 字符串 | 用于存储监视资产的目录(例如仪表板、指标表)。 | 
| baseline_table_name | 字符串 | 从中计算偏移指标的基线表的名称。 监视表中的列还应存在于基线表中。 | 
| custom_metrics | 序列 | 用于在受监视表上进行计算的自定义指标。 这些指标可以是聚合指标、派生指标(从已计算的聚合指标)或偏移指标(跨时间窗口比较指标)。 请参阅 custom_metrics。 | 
| inference_log | 地图 | 用于监控推理日志的配置。 请参阅 inference_log。 | 
| notifications | 地图 | 监视器的通知设置。 请参阅 通知。 | 
| output_schema_name | 字符串 | 用于创建输出指标表的架构。 | 
| schedule | 地图 | 自动更新和刷新指标表的计划。 请参阅 计划。 | 
| skip_builtin_dashboard | 布尔 | 是否跳过创建汇总数据质量指标的默认仪表板。 | 
| slicing_exprs | 序列 | 用于切片数据以进行目标分析的列表达式列表。 数据按每个表达式独立分组,从而为每个谓词及其补码生成单独的切片。 对于高基数列,只有按频率排列的前 100 个唯一值才会生成切片。 | 
| snapshot | 地图 | 用于监视快照表的配置。 | 
| table_name | 字符串 | 表的全名。 | 
| time_series | 地图 | 用于监视时序表的配置。 请参阅 time_series。 | 
| warehouse_id | 字符串 | 用于为创建仪表板指定仓库的可选参数。 如果未指定,将使用第一个正在运行的仓库。 | 
例子
以下示例为 InferenceLog、TimeSeries 和快照配置文件类型定义质量监视器。
# InferenceLog profile type
resources:
  quality_monitors:
    my_quality_monitor:
      table_name: dev.mlops_schema.predictions
      output_schema_name: ${bundle.target}.mlops_schema
      assets_dir: /Workspace/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
# TimeSeries profile type
resources:
  quality_monitors:
    my_quality_monitor:
      table_name: dev.mlops_schema.predictions
      output_schema_name: ${bundle.target}.mlops_schema
      assets_dir: /Workspace/Users/${workspace.current_user.userName}/databricks_lakehouse_monitoring
      time_series:
        granularities: [30 minutes]
        timestamp_col: timestamp
      schedule:
        quartz_cron_expression: 0 0 8 * * ? # Run Every day at 8am
        timezone_id: UTC
# Snapshot profile type
resources:
  quality_monitors:
    my_quality_monitor:
      table_name: dev.mlops_schema.predictions
      output_schema_name: ${bundle.target}.mlops_schema
      assets_dir: /Workspace/Users/${workspace.current_user.userName}/databricks_lakehouse_monitoring
      snapshot: {}
      schedule:
        quartz_cron_expression: 0 0 8 * * ? # Run Every day at 8am
        timezone_id: UTC
注册模型(Unity Catalog)
Type: Map
使用注册的模型资源,可以在 Unity Catalog 中定义模型。 有关 Unity Catalog 注册的模型的信息,请参阅在 Unity Catalog 中管理模型生命周期。
registered_models:
  <registered_model-name>:
    <registered_model-field-name>: <registered_model-field-value>
| 密钥 | 类型 | DESCRIPTION | 
|---|---|---|
| catalog_name | 字符串 | 架构和已注册模型所在的目录的名称。 | 
| comment | 字符串 | 附加到已注册模型的注释。 | 
| grants | 序列 | 与注册模型关联的授予。 请参阅 授予。 | 
| name | 字符串 | 已注册模型的名称。 | 
| schema_name | 字符串 | 已注册模型所在的架构的名称。 | 
| storage_location | 字符串 | 存储模型版本数据文件的云存储位置。 | 
示例:
以下示例在 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
架构 (Unity Catalog)
Type: Map
架构资源类型允许您为工作流和管道中的表及其他资产定义 Unity Catalog 架构,这些工作流和管道是作为捆绑包的一部分创建的。 不同于其他资源类型,架构具有以下限制:
- 构架资源的所有者始终是部署用户,不能更改。 如果在捆绑包中指定了 run_as,则构架上的操作将忽略它。
- 只有相应的构架对象创建 API 支持的字段才可用于架构资源。 例如,不支持 enable_predictive_optimization,因为它仅在更新 API 上可用。
schemas:
  <schema-name>:
    <schema-field-name>: <schema-field-value>
| 密钥 | 类型 | DESCRIPTION | 
|---|---|---|
| catalog_name | 字符串 | 父目录的名称。 | 
| comment | 字符串 | 用户提供的自由格式文本说明。 | 
| grants | 序列 | 与架构关联的授予。 请参阅 授予。 | 
| name | 字符串 | 相对于父目录的架构名称。 | 
| properties | 地图 | 附加到架构的键值属性的映射。 | 
| storage_root | 字符串 | 架构中托管表的存储根 URL。 | 
例子
以下示例定义了一个使用资源键 my_pipeline 的管道,该管道会创建一个以键 my_schema 为目标的 Unity Catalog 构架:
resources:
  pipelines:
    my_pipeline:
      name: test-pipeline-{{.unique_id}}
      libraries:
        - notebook:
            path: ../src/nb.ipynb
        - file:
            path: ../src/range.sql
      development: true
      catalog: ${resources.schemas.my_schema.catalog_name}
      target: ${resources.schemas.my_schema.id}
  schemas:
    my_schema:
      name: test-schema-{{.unique_id}}
      catalog_name: main
      comment: This schema was created by Databricks Asset Bundles.
Databricks 资产捆绑包不支持顶级授权映射,因此如果想为架构设置授权,请在 schemas 映射中定义架构的授权。 有关授予的详细信息,请参阅显示、授予和撤销权限。
以下示例使用授予定义 Unity Catalog 架构:
resources:
  schemas:
    my_schema:
      name: test-schema
      grants:
        - principal: users
          privileges:
            - SELECT
        - principal: my_team
          privileges:
            - CAN_MANAGE
      catalog_name: main
密钥范围
Type: Map
secret_scope资源允许在捆绑包中定义 机密范围 。 有关机密范围的信息,请参阅 机密管理。
secret_scopes:
  <secret_scope-name>:
    <secret_scope-field-name>: <secret_scope-field-value>
| 密钥 | 类型 | DESCRIPTION | 
|---|---|---|
| backend_type | 字符串 | 将使用该作用域创建的后端类型。 如果未指定,则默认为 DATABRICKS. | 
| keyvault_metadata | 地图 | 机密范围的元数据(如果为 backend_typeAZURE_KEYVAULT)。 | 
| name | 字符串 | 用户请求的范围名称。 范围名称是唯一的。 | 
| permissions | 序列 | 应适用于密钥作用域的权限。 权限通过机密范围 ACL 进行管理。 查看 权限。 | 
例子
以下示例定义使用密钥保管库后端的机密范围:
resources:
  secret_scopes:
    secret_scope_azure:
      name: test-secrets-azure-backend
      backend_type: 'AZURE_KEYVAULT'
      keyvault_metadata:
        resource_id: my_azure_keyvault_id
        dns_name: my_azure_keyvault_dns_name
以下示例使用机密范围和权限设置自定义 ACL:
resources:
  secret_scopes:
    my_secret_scope:
      name: my_secret_scope
      permissions:
        - user_name: admins
          level: WRITE
        - user_name: users
          level: READ
有关如何在捆绑包中定义机密范围和包含从中读取任务的作业的示例捆绑包,请参阅 捆绑包示例 GitHub 存储库。
SQL数据仓库
Type: Map
SQL 仓库资源允许在捆绑包中定义 SQL 仓库 。 有关 SQL 仓库的信息,请参阅 Azure Databricks 上的数据仓库。
sql_warehouses:
  <sql-warehouse-name>:
    <sql-warehouse-field-name>: <sql-warehouse-field-value>
| 密钥 | 类型 | DESCRIPTION | 
|---|---|---|
| auto_stop_mins | 整数 | SQL 仓库在被自动停止之前,必须处于空闲状态的时间量(例如,没有 RUNNING 查询)。 有效值为 0,表示不自动停止或大于或等于 10。 默认值为 120。 | 
| channel | 字符串 | 通道详细信息。 | 
| cluster_size | 字符串 | 为此仓库分配的群集的大小。 增加 Spark 群集的大小可让你对它运行更大的查询。 如果要增加并发查询数,请优化max_num_clusters。 有关支持的值,请参阅 cluster_size。 | 
| creator_name | 字符串 | 创建仓库的用户的名称。 | 
| enable_photon | 布尔 | 仓库是否应使用 Photon 优化群集。 默认值为 false。 | 
| enable_serverless_compute | 布尔 | 仓库是否应使用无服务器计算。 | 
| instance_profile_arn | 字符串 | 已弃用。 用于将 IAM 角色传递给集群的实例配置文件 | 
| max_num_clusters | 整数 | 自动缩放程序创建的最大群集数,用于处理并发查询。 值必须小于或等于 30 且大于或等于 min_num_clusters。 如果未设置,则默认为min_clusters。 | 
| min_num_clusters | 整数 | 将为此 SQL 仓库维护的可用群集的最小数量。 增加这可确保越来越多的群集始终运行,因此可能会减少新查询的冷启动时间。 这类似于资源管理器中保留核心与可吊销核心的比较。 值必须大于 0 且小于或等于 min(max_num_clusters,30)。 默认值为 1。 | 
| name | 字符串 | 群集的逻辑名称。 该名称在组织内必须唯一且少于 100 个字符。 | 
| spot_instance_policy | 字符串 | 是否使用现成实例。 有效值为 POLICY_UNSPECIFIED,COST_OPTIMIZEDRELIABILITY_OPTIMIZED。 默认值为COST_OPTIMIZED。 | 
| tags | 地图 | 将在与此 SQL 仓库关联的所有资源(例如 AWS 实例和 EBS 卷)上打上标签的一系列键值对。 标记数必须小于 45。 | 
| warehouse_type | 字符串 | 仓库类型, PRO或CLASSIC。 如果要使用无服务器计算,请将此字段设置为PRO,并将该字段enable_serverless_compute设置为true。 | 
示例:
以下示例定义 SQL 仓库:
resources:
  sql_warehouses:
    my_sql_warehouse:
      name: my_sql_warehouse
      cluster_size: X-Large
      enable_serverless_compute: true
      max_num_clusters: 3
      min_num_clusters: 1
      auto_stop_mins: 60
      warehouse_type: PRO
卷 (Unity Catalog)
Type: Map
使用 volume 资源类型,可以将 Unity Catalog 卷作为捆绑包的一部分进行定义并创建。 部署定义了卷的捆绑包时,请注意:
- 在工作区中存在卷之前,不能在捆绑包的 artifact_path中引用卷。 因此,如果要使用 Databricks 资产捆绑包创建卷,必须先在捆绑包中定义卷,对其进行部署以创建卷,然后在后续部署中在artifact_path中引用该卷。
- 部署目标配置了 dev_${workspace.current_user.short_name}后,捆绑包中的卷不会追加mode: development前缀。 但是,可以手动配置此前缀。 请参阅自定义预设。
volumes:
  <volume-name>:
    <volume-field-name>: <volume-field-value>
| 密钥 | 类型 | DESCRIPTION | 
|---|---|---|
| catalog_name | 字符串 | 架构和卷的目录的名称。 | 
| comment | 字符串 | 附加到卷的注释。 | 
| grants | 序列 | 与卷关联的授予。 请参阅 授予。 | 
| name | 字符串 | 卷的名称。 | 
| schema_name | 字符串 | 卷所在的架构的名称。 | 
| storage_location | 字符串 | 云上的存储位置。 | 
| volume_type | 字符串 | 卷类型, EXTERNAL或MANAGED。 外部卷位于指定的外部位置。 托管卷位于由父架构、父目录或元存储指定的默认位置。 请参阅 托管卷与外部卷。 | 
示例:
以下示例创建具有键 my_volume_id 的 Unity Catalog 卷。
resources:
  volumes:
    my_volume_id:
      catalog_name: main
      name: my_volume
      schema_name: my_schema
有关运行写入 Unity Catalog 卷中文件的作业的示例捆绑包,请参阅 bundle-examples GitHub 存储库。
常见对象
授权
Type: Sequence
| 密钥 | 类型 | DESCRIPTION | 
|---|---|---|
| principal | 字符串 | 将被授予特权的主体的名称。 | 
| privileges | 序列 | 给指定实体授予的权限。 |