Databricks 资产捆绑包资源

使用 Databricks 资产捆绑包,可以指定捆绑包在捆绑配置中的 resources 映射中使用的 Azure Databricks 资源的相关信息。 请参阅 资源映射 和资源 密钥参考

本页提供捆绑包支持的所有资源类型的配置参考,并提供了每个受支持类型的详细信息和示例。 有关其他示例,请参阅 捆绑包配置示例

用于验证 YAML 配置的捆绑包的 JSON 架构位于 Databricks CLI GitHub 存储库中。

Tip

若要为任何现有资源生成 YAML,请使用 databricks bundle generate 命令。 请参阅 databricks 捆绑包生成

支持的资源

下表列出了捆绑包(YAML 和 Python(如果适用)支持的资源类型。 可以通过在捆绑包中定义资源并部署捆绑包来创建一些资源,并且某些资源只能通过引用要包含在捆绑包中的现有资产来创建。

资源配置定义与 Databricks REST API 对象相对应的 Databricks 对象。 REST API 对象支持的创建请求字段(以 YAML 表示)是资源支持的密钥。 下表中提供了每个资源的相应对象的文档链接。

Tip

如果在捆绑包配置文件中发现未知的资源属性,databricks bundle validate 命令将返回警告。

Resource Python 支持 相应的 REST API 对象
警报 警报对象
app 应用对象
cluster 群集对象
dashboard 仪表板对象
database_catalog 数据库目录对象
database_instance 数据库实例对象
experiment 试验对象
job 作业 作业对象
模型(旧版) Model (旧版) 对象
model_serving_endpoint 为终结点对象提供服务的模型
pipeline 管道 Pipeline 对象
quality_monitor 质量监视器对象
registered_model (Unity Catalog) 已注册的模型对象
架构 (Unity 目录) Schemas Schema 对象
secret_scope 机密范围对象
sql_warehouse SQL 仓库对象
synced_database_table 同步的数据库表对象
(Unity Catalog) 卷对象

警报

Type: Map

警报资源定义 SQL 警报(v2)。

alerts:
  <alert-name>:
    <alert-field-name>: <alert-field-value>
Key 类型 Description
custom_description String 可选。 警报的自定义说明。 支持胡须模板。
custom_summary String 可选。 警报的自定义摘要。 支持胡须模板。
display_name String 必填。 警报的显示名称,例如 Example alert
evaluation Map 必填。 警报评估配置 请参阅 alert.evaluation
parent_path String 可选。 包含警报的文件夹的工作区路径。 只能在创建时设置,不能更新。 示例:/Users/someone@example.com
permissions Sequence 警报权限。 查看 权限
query_text String 必填。 要运行的查询的文本,例如SELECT 1
run_as Map 可选。 指定用于运行警报的身份。 此字段允许将警报配置为作为特定用户或服务主体运行。 请参阅 run_as
  • 对于用户标识:将user_name设置为活动工作区用户的电子邮件。 用户只能将其设置为自己的电子邮件。
  • 对于服务主帐户:将 service_principal_name 设为应用程序 ID。 需要拥有 servicePrincipal 或 user 角色。 如果未指定,警报将作为请求用户运行。
schedule Map 必填。 警报的调度配置。 请参阅 alert.schedule
warehouse_id String 必填。 附加到警报的 SQL 仓库的 ID,例如a7066a8ef796be84

警报.评估

Type: Map

警报的评估配置。

Key 类型 Description
comparison_operator String 用于在警报评估中进行比较的运算符。
empty_result_state String 如果结果为空,则为警报状态。 避免将此字段设置为 UNKNOWN,因为 UNKNOWN 的状态计划弃用。
notification Map 当警报触发时需通知的用户或其他对象。 请参阅 alert.evaluation.notification
source Map 用于评估警报的结果中的源列。 请参阅 alert.evaluation.source
threshold Map 用于警报评估的阈值。 这可以是列或值。 请参阅 alert.evaluation.threshold

警报.评估.通知

Type: Map

触发警报时通知的用户或其他目标。

Key 类型 Description
notify_on_ok 布尔 可选。 警报返回正常时是否通知警报订阅者。
retrigger_seconds Integer 可选。 警报在允许发送另一个通知之前触发后等待的秒数。 如果设置为 0 或省略,则警报不会在第一个触发器之后发送任何进一步通知。 设置此值为1可使警报在每次评估满足条件时发送通知,从而有效地使警报始终重新触发以进行通知。
subscriptions Sequence 可选。 通知订阅的无序列表。 请参阅 alert.evaluation.notification.subscriptions
alert.evaluation.notification.subscriptions

Type: Sequence

无序的通知订阅列表。

列表中的每个项都是一个 AlertSubscription

Key 类型 Description
destination_id String 通知目标的 ID。
user_email String 要通知的用户的电子邮件地址。

alert.evaluation.source

Type: Map

用于评估警报的结果中的源列。

Key 类型 Description
aggregation String 要应用于源列的聚合方法。 有效值为SUM、、COUNT、、COUNT_DISTINCTAVGMEDIAN、、 MINMAXSTDDEV
display String 源数据列的显示名称。
name String 查询结果中的源列的名称。

alert.evaluation.threshold

Type: Map

应用于警报评估的阈值可以是一个列或一个值。

Key 类型 Description
column Map 用于作为阈值的列引用。 请参阅 alert.evaluation.source
value Map 要用作阈值的文本值。 请参阅 alert.evaluation.threshold.value
警报.评估.阈值.值

Type: Map

要用作阈值的字面值。 指定以下值类型之一。

Key 类型 Description
bool_value 布尔 可选。 阈值的布尔值,例如 true
double_value Double 可选。 阈值的数值,例如 1.25
string_value String 可选。 阈值的字符串值,例如 test

警报计划

Type: Map

警报的调度配置。

Key 类型 Description
pause_status String 可选。 此计划是否处于暂停状态。 有效值: UNPAUSEDPAUSED。 默认值:UNPAUSED
quartz_cron_schedule String 必填。 使用硅语法的 cron 表达式,指定此管道的计划。 Quartz 格式以 Quartz 调度器格式进行描述。
timezone_id String 必填。 Java 时区标识符。计划将根据此时区进行调整。 这将与 quartz_cron_schedule 结合使用,以确定时间表。 有关详细信息,请参阅 SET TIME ZONE

Examples

以下示例配置使用简单的评估定义警报:

resources:
  alerts:
    my_alert:
      display_name: my_alert
      evaluation:
        comparison_operator: EQUAL
        source:
          name: '1'
        threshold:
          value:
            double_value: 2
      query_text: select 2
      schedule:
        quartz_cron_schedule: '44 19 */1 * * ?'
        timezone_id: Europe/Amsterdam
      warehouse_id: 799f096837fzzzz4

以下示例配置定义了一个警报,其中包含使用聚合评估并发送通知的权限:

resources:
  alerts:
    my_alert:
      permissions:
        - level: CAN_MANAGE
          user_name: someone@example.com
      custom_summary: 'My alert'
      display_name: 'My alert'
      evaluation:
        comparison_operator: 'EQUAL'
        notification:
          notify_on_ok: false
          retrigger_seconds: 1
        source:
          aggregation: 'MAX'
          display: '1'
          name: '1'
        threshold:
          value:
            double_value: 2
      query_text: 'select 2'
      schedule:
        pause_status: 'UNPAUSED'
        quartz_cron_schedule: '44 19 */1 * * ?'
        timezone_id: 'Europe/Amsterdam'
      warehouse_id: 799f096837fzzzz4

应用

Type: Map

应用资源定义 Databricks 应用。 有关 Databricks 应用的信息,请参阅 Databricks Apps

若要添加应用,请指定用于定义应用的设置,包括所需的 source_code_path设置。

Tip

可以使用以下命令通过 Streamlit Databricks 应用初始化捆绑包:

databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app
apps:
  <app-name>:
    <app-field-name>: <app-field-value>
Key 类型 Description
budget_policy_id String 应用的预算策略 ID。
compute_size String 应用的计算大小。 有效值为 MEDIUMLARGE 依赖于工作区配置。
config Map Deprecated. 请改为在 app.yaml 文件中定义应用配置命令和环境变量。 请参阅 配置 Databricks 应用
description String 应用的说明。
lifecycle Map 部署或销毁资源时的行为。 请参阅 生命周期
name String 应用的名称。 名称必须仅包含小写字母数字字符和连字符。 在工作区中,它必须是唯一的。
permissions Sequence 应用的权限。 查看 权限
resources Sequence 应用计算资源。 请参阅 app.resources
source_code_path String Databricks 应用源代码的 ./app 本地路径。
user_api_scopes Sequence 用户 API 范围。

应用程序.资源

Type: Sequence

应用的计算资源列表。

列表中的每个项都是一个 AppResource

Key 类型 Description
description String 应用资源的说明。
database Map 标识要使用的 Lakebase 数据库的设置。 请参阅 app.resources.database
genie_space Map 标识要使用的 Genie 空间的设置。 请参阅 app.resources.genie_space
job Map 该设置用于标识要使用的作业资源。 请参阅 app.resources.job
name String 应用资源的名称。
secret Map 标识要使用的 Azure Databricks 机密资源的设置。 请参阅 app.resources.secret
serving_endpoint Map 标识要使用的终结点资源的模型的设置。 请参阅 app.resources.serving_endpoint
sql_warehouse Map 标识要使用的 SQL 仓库资源的设置。 请参阅 app.resources.sql_warehouse
uc_securable Map 标识要使用的 Unity 目录卷的设置。 请参阅 app.resources.uc_securable

应用资源数据库

Type: Map

标识要使用的 Lakebase 数据库的设置。

Key 类型 Description
database_name String 数据库的名称。
instance_name String 数据库实例的名称。
permission String 数据库的权限级别。 有效值为:CAN_CONNECT_AND_CREATE

app.resources.genie_space

Type: Map

标识要使用的 Genie 空间的设置。

Key 类型 Description
name String Genie 空间的名称。
permission String 空间的权限级别。 有效值包括CAN_VIEW,,CAN_EDITCAN_MANAGECAN_RUN
space_id String 例如 550e8400-e29b-41d4-a716-999955440000,Genie 空间的 ID。

app.resources.job

Type: Map

该设置用于标识要使用的作业资源。

Key 类型 Description
id String 作业 ID。
permission String 作业的权限级别。 有效值包括CAN_VIEW,,CAN_MANAGE_RUNCAN_MANAGEIS_OWNER

应用程序.资源.机密

Type: Map

标识要使用的 Azure Databricks 机密资源的设置。

Key 类型 Description
key String 用于授予权限的密钥。
permission String 机密的权限级别。 有效值包括 READWRITEMANAGE
scope String 机密范围的名称。

app.resources.服务端点

Type: Map

标识要使用的终结点资源的模型的设置。

Key 类型 Description
name String 服务终结点的名称。
permission String 服务终结点的权限级别。 有效值包括 CAN_QUERYCAN_MANAGECAN_VIEW

app.resources.sql仓库

Type: Map

标识要使用的 SQL 仓库的设置。

Key 类型 Description
id String SQL 仓库的 ID。
permission String SQL 仓库的权限级别。 有效值包括 CAN_USECAN_MANAGEIS_OWNER

app.resources.uc_securable

Type: Map

标识要使用的 Unity 目录卷的设置。

Key 类型 Description
permission String Unity 目录安全对象的权限级别。 有效值为 READ_VOLUMEWRITE_VOLUME
securable_full_name String Unity 目录中可安全访问项的全名格式 catalog.schema.volume
securable_type String Unity 目录安全对象的类型。 有效值为:VOLUME

Example

以下示例创建一个名为 my_app 的应用,用于管理捆绑包创建的作业:

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:
            environment_version: '2'

  # 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 resources in the bundle which this app has access to. This binds the resource in the app with the bundle resource.
      resources:
        - name: 'app-job'
          job:
            id: ${resources.jobs.hello_world.id}
            permission: 'CAN_MANAGE_RUN'

相应的 app.yaml 定义用于运行应用的配置:

command:
  - flask
  - --app
  - app
  - run
  - --debug
env:
  - name: JOB_ID
    valueFrom: 'app-job'

有关完整的 Databricks 应用示例捆绑包,请参阅 捆绑包示例 GitHub 存储库

群集

Type: Map

群集资源定义 群集

clusters:
  <cluster-name>:
    <cluster-field-name>: <cluster-field-value>
Key 类型 Description
apply_policy_default_values 布尔 设置为 true 时,策略中的固定值和默认值将用于省略的字段。 设置为 false 时,将仅应用策略中的固定值。
autoscale Map 为了根据负载自动纵向扩展和缩减群集所需的参数。 请参阅 autoscale
autotermination_minutes Integer 在群集处于非活动状态(以分钟为单位)后自动终止群集。 如果未设置,则不会自动终止此群集。 如果指定,阈值必须介于 10 到 10000 分钟之间。 用户还可以将此值设置为 0 以显式禁用自动终止。
aws_attributes Map 与 Amazon Web Services 上运行的群集相关的属性。 如果未在创建群集时指定,将使用一组默认值。 请参阅 aws_attributes
azure_attributes Map 与Microsoft Azure 上运行的群集相关的属性。 如果未在创建群集时指定,将使用一组默认值。 请参阅 azure_attributes
cluster_log_conf Map 用于将 Spark 日志传送到长期存储目标的配置。 请参阅 cluster_log_conf
cluster_name String 用户请求的群集名称。 这不必是唯一的。 如果未在创建时指定,群集名称将为空字符串。
custom_tags Map 群集资源的其他标记。 除了 default_tags,Databricks 还会使用这些标记来标记所有群集资源(例如,AWS 实例和 EBS 卷)。
data_security_mode String 从群集访问数据时要使用的数据治理模型。 有效值包括NONESINGLE_USER、、USER_ISOLATIONLEGACY_SINGLE_USERLEGACY_TABLE_ACLLEGACY_PASSTHROUGH
docker_image Map 自定义 Docker 映像。 请参阅 docker_image
driver_instance_pool_id String 群集所属的驱动程序实例池的可选 ID。 如果未分配驱动池,则群集池将使用 ID 为(instance_pool_id)的实例池。
driver_node_type_id String 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 Map 与 Google Cloud Platform 上运行的群集相关的属性。 如果未在创建群集时指定,将使用一组默认值。 请参阅 gcp_attributes
init_scripts Sequence 用于存储初始化脚本的配置。 可以指定任意数量的目标。 这些脚本会按照所提供的顺序依次执行。 请参阅 init_scripts
instance_pool_id String 群集所属的实例池的可选 ID。
is_single_node 布尔 仅在满足kind = CLASSIC_PREVIEW条件时才能使用此字段。 设置为 true 时,Databricks 将自动设置与单节点相关的custom_tagsspark_confnum_workers
kind String 此计算规范描述的计算类型。
node_type_id String 此字段通过单个值对提供给此群集中的每个 Spark 节点的资源进行编码。 例如,可以针对内存或计算密集型工作负载对 Spark 节点进行预配和优化。 可以使用 :method:clusters/listNodeTypes API 调用检索可用节点类型的列表。
num_workers Integer 此群集应该拥有的工作器节点的数目。 群集有一个 Spark 驱动器和 num_workers 执行器,总共 num_workers + 1 个 Spark 节点。
permissions Sequence 群集权限。 查看 权限
policy_id String 用于创建群集(如果适用)的群集策略的 ID。
runtime_engine String 确定群集的运行时引擎是 STANDARDPHOTON
single_user_name String 如果 data_security_mode 是 SINGLE_USER,则为单个用户名
spark_conf Map 一个对象,其中包含一组可选的由用户指定的 Spark 配置键值对。 用户还可以通过spark.driver.extraJavaOptionsspark.executor.extraJavaOptions分别传入驱动程序和执行程序的额外 JVM 选项字符串。
spark_env_vars Map 一个对象,其中包含一组可选的由用户指定的环境变量键值对。
spark_version String 群集的 Spark 版本,例如 3.3.x-scala2.11 可以使用 :method:clusters/sparkVersions API 调用检索可用的 Spark 版本列表。
ssh_public_keys Sequence 将会添加到此群集中各个 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 Map 显示群集工作负荷类型的群集属性。 请参阅 workload_type

cluster.autoscale

Type: Map

用于根据负载自动纵向扩展和缩减群集的参数。

Key 类型 Description
min_workers Integer 群集在未充分利用时可缩减到的最小辅助角色数。 这也是群集在创建后将具有的初始辅助角色数。
max_workers Integer 群集在重载时可以纵向扩展的最大辅助角色数。 max_workers 必须严格大于 min_workers

集群.aws属性

Type: Map

与 Amazon Web Services 上运行的群集相关的属性。

Key 类型 Description
zone_id String 群集所在的可用性区域/数据中心的标识符。 此字符串的格式如下 us-west-2a
availability String 用于在 first_on_demand 节点之后的所有节点的可用性类型。 有效值为 SPOTON_DEMANDSPOT_WITH_FALLBACK
spot_bid_price_percent Integer AWS Spot 实例的最大价格,占对应实例类型按需价格的百分比。
instance_profile_arn String 此群集的节点将仅放置在具有此实例配置文件的 AWS 实例上。
first_on_demand Integer 群集的第一个 first_on_demand 节点将放置在按需实例上。 此值应大于 0,以确保将群集驱动程序节点放置在按需实例上。
ebs_volume_type String 将使用此群集启动的 EBS 卷的类型。 有效值为 GENERAL_PURPOSE_SSDTHROUGHPUT_OPTIMIZED_HDD
ebs_volume_count Integer 每个实例创建的卷数。
ebs_volume_size Integer 为每个实例启动的每个 EBS 卷(以 GiB 为单位)的大小。
ebs_volume_iops Integer 每个 EBS gp3 卷的 IOPS 数。
ebs_volume_throughput Integer 每个 EBS gp3 卷的吞吐量(以 MiB/秒为单位)。

cluster.azure_attributes

Type: Map

与Microsoft Azure 上运行的群集相关的属性。

Key 类型 Description
first_on_demand Integer 群集的第一个 first_on_demand 节点将放置在按需实例上。
availability String 用于在 first_on_demand 节点之后的所有节点的可用性类型。 有效值为 SPOT_AZUREON_DEMAND_AZURESPOT_WITH_FALLBACK_AZURE
spot_bid_max_price 编号 Azure 现成实例的最大价格。 使用 -1 指定最低价格。

cluster.gcp_attributes

Type: Map

与 Google Cloud Platform 上运行的群集相关的属性。

Key 类型 Description
use_preemptible_executors 布尔 是否使用抢占执行器。 GCE 抢占执行程序是可随时被 GCE 回收的抢占实例。
google_service_account String Databricks 群集 VM 实例使用的 Google 服务帐户。
local_ssd_count Integer 要为集群中每个节点附加的本地 SSD 的数量。 默认值为 0
zone_id String 群集所在的可用性区域/数据中心的标识符。
availability String 用于所有节点的可用性类型。 有效值为 PREEMPTIBLE_GCPON_DEMAND_GCPPREEMPTIBLE_WITH_FALLBACK_GCP
boot_disk_size Integer 启动磁盘的大小(以 GB 为单位)。 值通常范围为 100 到 1000。

cluster.cluster_log_conf

用于将 Spark 日志传送到长期存储目标的配置。

Key 类型 Description
dbfs Map 群集日志传递的 DBFS 位置。 请参阅 dbfs
s3 Map 群集日志传输的 S3 位置。 请参阅 s3
volumes Map 用于群集日志传送的卷的位置。 请参阅

cluster.cluster_log_conf.dbfs

Type: Map

群集日志传递的 DBFS 位置。

Key 类型 Description
destination String 群集日志传递的 DBFS 路径(例如, dbfs:/cluster-logs)。

cluster.cluster_log_conf.s3

Type: Map

群集日志传输的 S3 位置。

Key 类型 Description
destination String 群集日志传递的 S3 URI(例如,s3://my-bucket/cluster-logs)。
region String S3 存储桶的 AWS 区域。
endpoint String S3 终结点 URL(可选)。
enable_encryption 布尔 是否为群集日志启用加密。
encryption_type String 加密类型。 有效值包括 SSE_S3SSE_KMS.
kms_key String 用于加密的 KMS 密钥 ARN(当使用 SSE_KMS 时)。
canned_acl String 要应用于群集日志的预定义 ACL。

cluster.cluster_log_conf.volumes

Type: Map

用于群集日志传送的卷的位置。

Key 类型 Description
destination String 群集日志传送的卷路径(例如, /Volumes/catalog/schema/volume/cluster_log)。

cluster.docker_image

Type: Map

自定义 Docker 映像配置。

Key 类型 Description
url String Docker 映像的 URL。
basic_auth Map Docker 存储库的基本身份验证。 请参阅 basic_auth

cluster.docker_image.basic_auth

Type: Map

Docker 存储库的基本身份验证。

Key 类型 Description
username String Docker 注册表身份验证的用户名。
password String Docker 注册表身份验证的密码。

集群初始脚本

Type: Map

用于存储初始化脚本的配置。 必须至少指定一个位置类型。

Key 类型 Description
dbfs Map init 脚本的 DBFS 位置。 请参阅 dbfs
workspace Map init 脚本的工作区位置。 请参阅 workspace
s3 Map 初始化脚本的 S3 位置。 请参阅 s3
abfss Map init 脚本的 ABFSS 位置。 请参阅 abfss
gcs Map init 脚本的 GCS 位置。 请参阅 gcs
volumes Map UC 卷的 init 脚本位置。 请参阅

cluster.init_scripts.dbfs

Type: Map

init 脚本的 DBFS 位置。

Key 类型 Description
destination String init 脚本的 DBFS 路径。

cluster.init_scripts.workspace(集群初始化脚本工作区)

Type: Map

init 脚本的工作区位置。

Key 类型 Description
destination String init 脚本的工作区路径。

cluster.init_scripts.s3

Type: Map

初始化脚本的 S3 位置。

Key 类型 Description
destination String init 脚本的 S3 URI。
region String S3 存储桶的 AWS 区域。
endpoint String S3 终结点 URL(可选)。

cluster.init_scripts.abfss

Type: Map

init 脚本的 ABFSS 位置。

Key 类型 Description
destination String 初始化脚本的 ABFSS 路径。

cluster.init_scripts.gcs

Type: Map

init 脚本的 GCS 位置。

Key 类型 Description
destination String init 脚本的 GCS 路径。

cluster.init_scripts.volumes

Type: Map

init 脚本的卷位置。

Key 类型 Description
destination String "init" 脚本的 UC 卷路径。

cluster.workload_type(群集定义工作负载类型)

Type: Map

显示群集工作负荷类型的群集属性。

Key 类型 Description
clients Map 定义客户端可以使用群集的类型。 请参阅 客户端

集群.工作负载类型.客户端

Type: Map

此计算工作负荷的客户端类型。

Key 类型 Description
jobs 布尔 群集是否可以运行作业。
notebooks 布尔 群集是否可以运行笔记本。

Examples

以下示例使用 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 捆绑包部署

Note

将 Databricks 资产捆绑包与仪表板 Git 支持配合使用时,通过添加同步映射来防止生成重复的仪表板,避免将仪表板作为文件进行同步。

sync:
  exclude:
    - src/*.lvdash.json
dashboards:
  <dashboard-name>:
    <dashboard-field-name>: <dashboard-field-value>
Key 类型 Description
display_name String 仪表板的显示名称。
embed_credentials 布尔 捆绑包部署标识凭据是否用于为所有仪表板查看器执行查询。 如果设置为 false,则使用查看者的凭据。 默认值为 false
etag String 仪表板的实体标记。 可以在更新时选择提供,以确保自上次读取以来仪表板未被修改。
file_path String 仪表板资产的本地路径,包括文件名。 导出的仪表板始终具有文件扩展名 .lvdash.json
permissions Sequence 仪表板权限。 查看 权限
serialized_dashboard Any 以序列化字符串形式表示的仪表板的内容。
warehouse_id String 用于运行仪表板的仓库 ID。

Example

以下示例包含在 Databricks 工作区中部署 NYC 出租车行程分析 仪表板的步骤。

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

使用数据库目录资源可以定义与捆绑包中的数据库实例对应的 数据库目录 。 数据库目录是注册为 Unity 目录的 Lakebase 数据库。

有关数据库目录的信息,请参阅 “创建目录”。

database_catalogs:
  <database_catalog-name>:
    <database_catalog-field-name>: <database_catalog-field-value>
Key 类型 Description
create_database_if_not_exists 布尔 如果数据库不存在,则是否创建数据库。
database_instance_name String 包含数据库的实例的名称。
database_name String 与目录关联的数据库(实例中)的名称。
lifecycle Map 包含资源的生命周期设置,包括部署或销毁资源时资源的行为。 请参阅 生命周期
name String Unity 目录中目录的名称。

Example

以下示例使用相应的数据库目录定义 数据库实例

resources:
  database_instances:
    my_instance:
      name: my-instance
      capacity: CU_1
  database_catalogs:
    my_catalog:
      database_instance_name: ${resources.database_instances.my_instance.name}
      name: example_catalog
      database_name: my_database
      create_database_if_not_exists: true

数据库实例

Type: Map

通过数据库实例资源,可以在捆绑包中定义 数据库实例 。 Lakebase 数据库实例管理存储和计算资源,并提供用户连接到的终结点。

重要

使用数据库实例部署捆绑包时,该实例会立即开始运行,并受定价约束。 请参阅 Lakebase 定价

有关数据库实例的信息,请参阅什么是数据库实例?

database_instances:
  <database_instance-name>:
    <database_instance-field-name>: <database_instance-field-value>
Key 类型 Description
capacity String 实例的 SKU。 有效值为 CU_1,, CU_2CU_4CU_8
custom_tags Sequence 指定与实例关联的自定义标签的键值对列表。
enable_pg_native_login 布尔 实例是否启用了 PG 本机密码登录。 默认为 true
enable_readable_secondaries 布尔 是否启用辅助数据库来提供只读流量。 默认为 false
lifecycle Map 包含资源的生命周期设置。 它在部署或销毁资源时控制资源的行为。 请参阅 生命周期
name String 实例的名称。 这是实例的唯一标识符。
node_count Integer 实例中的节点数,由 1 个主节点和 0 个或多个辅助数据库组成。 默认为 1 个主副本和 0 个辅助数据库。
parent_instance_ref Map 父实例的引用。 仅当实例为子实例时,此实例才可用。 请参阅 父实例
permissions Sequence 数据库实例的权限。 查看 权限
retention_window_in_days Integer 实例的保留时段。 这是保留历史数据的时间范围(以天为单位)。 默认值为 7 天。 有效值为 2 到 35 天。
stopped 布尔 实例是否已停止。
usage_policy_id String 要与实例关联的所需使用策略。

database_instance.parent_instance_ref(数据库实例的父实例引用)

Type: Map

父实例的引用。 仅当实例为子实例时,此实例才可用。

Key 类型 Description
branch_time String ref 数据库实例的分支时间。 对于父 ref 实例,这是创建实例的父实例的时间点。 对于子引用实例,这是创建子实例的实例的时间点。
lsn String 用户指定的 ref 数据库实例的 WAL LSN。
name String ref 数据库实例的名称。

Example

以下示例使用相应的 数据库目录定义数据库实例:

resources:
  database_instances:
    my_instance:
      name: my-instance
      capacity: CU_1
  database_catalogs:
    my_catalog:
      database_instance_name: ${resources.database_instances.my_instance.name}
      name: example_catalog
      database_name: my_database
      create_database_if_not_exists: true

有关演示如何定义数据库实例和相应数据库目录的示例捆绑包,请参阅 捆绑包示例 GitHub 存储库

试验

Type: Map

试验资源允许在捆绑包中定义 MLflow 试验 。 有关 MLflow 试验的信息,请参阅 使用 MLflow 试验组织训练运行

experiments:
  <experiment-name>:
    <experiment-field-name>: <experiment-field-value>
Key 类型 Description
artifact_location String 存储试验项目的位置。
lifecycle Map 包含资源的生命周期设置。 它在部署或销毁资源时控制资源的行为。 请参阅 生命周期
name String 标识试验的易记名称。 例如 /Workspace/Users/someone@example.com/my_experiment,试验名称必须是 Databricks 工作区中的绝对路径。
permissions Sequence 试验的权限。 查看 权限
tags Sequence 其他元数据键值对。 请参阅 标记

Example

以下示例定义了所有用户都可以查看的试验:

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

Databricks 资产捆绑包的 Python 支持作业。 请参阅 databricks.bundles.jobs

作业资源允许你在捆绑包中定义 作业及其相应的任务

有关工作的更多信息,请参阅 Lakeflow 工作。 有关使用 Databricks 资产捆绑模板创建作业的教程,请参阅 使用 Databricks 资产捆绑包开发作业

jobs:
  <job-name>:
    <job-field-name>: <job-field-value>
Key 类型 Description
budget_policy_id String 要用于此作业的用户指定预算策略的 ID。 如果未指定,则创建或修改作业时,可以应用默认预算策略。 请参阅 effective_budget_policy_id 了解此工作负载使用的预算策略。
continuous Map 此作业的可选连续属性。 连续属性将确保始终有一个运行在执行。 schedulecontinuous 中只能使用一个。 请参阅 continuous
deployment Map 由外部源管理的作业的部署信息。 请参阅 部署
description String 作业的可选说明。 UTF-8 编码的最大长度为 27700 个字符。
edit_mode String 作业的编辑模式是 UI_LOCKEDEDITABLE 的其中之一。
email_notifications Map 一组可选的电子邮件地址,在此作业的运行开始或完成时,以及在删除此作业时,这些电子邮件地址将会收到通知。 请参阅 email_notifications
environments Sequence 此作业的无服务器任务可以引用的任务执行环境规范列表。 需要存在环境以支持无服务器任务。 对于无服务器笔记本任务,可以在笔记本环境面板中访问环境。 对于其他无服务器任务,需要使用任务设置中的environment_key指定任务环境。 请参阅 environments
format String Deprecated. 作业的格式。
git_source Map 远程 Git 存储库的可选规范,其中包含任务使用的源代码。 请参阅 job.git_source
重要:不建议将git_source字段和任务source字段设置为GIT,因为本地相对路径可能不会指向 Git 存储库中的相同内容,而捆绑包要求部署的作业内容与其从中部署的本地副本相同。
相反,会在本地克隆存储库并在此存储库中设置捆绑包项目,以便任务源是工作区。
health Map 可为此作业定义的一组可选运行状况规则。 查看 健康
job_clusters Sequence 此作业的任务可以共享和重复使用的作业群集规范列表。 请参阅 job_clusters
max_concurrent_runs Integer 作业的最大允许并发运行数,可选。 如果希望能够以并发方式执行同一作业的多个运行,请设置此值。
name String 可选的作业名称。 UTF-8 编码的最大长度为 4096 字节。
notification_settings Map 向此作业的每个 email_notificationswebhook_notifications 发送通知时使用的可选通知设置。 请参阅 notification_settings
parameters Sequence 作业级参数定义。
performance_target String 定义在无服务器上运行的执行的性能或成本效益。
permissions Sequence 作业的权限。 查看 权限
queue Map 作业的队列设置。 请参阅 queue
run_as Map 仅写入设置。 指定作业运行时所用的用户或服务主体。 如果未指定,作业将作为创建作业的用户运行。 应指定user_nameservice_principal_name其中之一。 否则,将引发错误。 请参阅 run_as
schedule Map 此作业的可选定期计划。 默认行为是,只有通过在作业 UI 中单击“立即运行”或向该作业发送 API 请求 runNow来触发时,作业才会运行。 请参阅 计划
tags Map 与作业关联的标记映射。 这些内容作为作业群集的群集标记转发到群集,并且受到与群集标记相同的限制。 最多可以向作业添加 25 个标记。
tasks Sequence 此作业要执行的任务规范列表。 请参阅将任务添加到 Databricks 资产捆绑包中的作业
timeout_seconds Integer 可选的超时设置,应用于此作业的每个运行。 值 0 意味着无超时。
trigger Map 满足某些条件时触发运行的配置。 请参阅 触发器
webhook_notifications Map 此作业的运行开始或完成时要通知的系统通知 ID 的集合。 请参阅 webhook_notifications

作业.连续

Type: Map

连续作业执行的配置。

Key 类型 Description
pause_status String 是否暂停连续作业。 有效值: PAUSEDUNPAUSED
task_retry_mode String 说明持续作业如何应用任务级别重试。 有效值为 NEVERON_FAILURE。 默认为 NEVER

任务.部署

Type: Map

由外部源管理的作业的部署信息。

Key 类型 Description
kind String 部署类型。 例如,BUNDLE
metadata_file_path String 用于部署的元数据文件路径

job.email_notifications # 电子邮件通知

Type: Map

作业运行的电子邮件通知设置。

Key 类型 Description
on_start Sequence 运行启动时要通知的电子邮件地址列表。
on_success Sequence 运行成功时要通知的电子邮件地址列表。
on_failure Sequence 运行失败时要通知的电子邮件地址列表。
on_duration_warning_threshold_exceeded Sequence 当运行持续时间超过警告阈值时通知的电子邮件地址列表。
no_alert_for_skipped_runs 布尔 是否选择跳过发送运行被跳过时的警报。

作业.环境

Type: Sequence

任务执行环境规范的列表,供作业中的无服务器任务引用。

列表中的每一项都是一个JobEnvironment:

Key 类型 Description
environment_key String 环境的关键。 它必须在作业中是唯一的。
spec Map 表示无服务器环境的实体。 请参阅 job.environments.spec

job.environments.spec

Type: Map

表示无服务器环境的实体。

Key 类型 Description
client String Deprecated. 客户端版本。
dependencies Sequence 此环境中的 pip 版本支持的 pip 依赖项列表。
environment_version String 必填。 环境使用的环境版本。 每个版本都有一个特定的 Python 版本和一组 Python 包。 版本是一个字符串,由整数组成。

job.git_source

Type: Map

作业源代码的 Git 存储库配置。

Key 类型 Description
git_branch String 要签出和使用此作业的分支的名称。 此字段不能与 git_taggit_commit 同时指定。
git_commit String 要签出和使用此作业的提交。 此字段不能与 git_branchgit_tag 同时指定。
git_provider String 用于托管 Git 存储库的服务的唯一标识符。 该值不区分大小写。 有效值为 gitHub:、bitbucketCloud、、gitLabazureDevOpsServicesgitHubEnterprisebitbucketServer. gitLabEnterpriseEdition
git_snapshot Map 运行作业时远程存储库的只读状态。 此字段仅在作业执行时包含。 请参阅 git_snapshot
git_tag String 要签出和使用此作业的标记的名称。 此字段不能与 git_branchgit_commit 同时指定。
git_url String 要由此作业克隆的存储库的 URL。

job.git_source.git_snapshot

Type: Map

只读提交信息快照。

Key 类型 Description
used_commit String 用于执行运行的提交。 如果 git_branch 已指定,则指向运行时分支的 HEAD。如果 git_tag 已指定,则指向提交标记所指向的提交。

任务.健康

Type: Map

健康监控配置用于作业。

Key 类型 Description
rules Sequence 作业健康规则列表。 每个规则都包含一个 metricop (运算符) 和 value。 请参阅 job.health.rules

作业健康规则

Type: Sequence

作业健康规则列表。

列表中的每一项都是一个JobHealthRule:

Key 类型 Description
metric String 指定正在针对特定健康规则进行评估的健康指标。
  • RUN_DURATION_SECONDS:运行所需的总时间(以秒为单位)。
  • STREAMING_BACKLOG_BYTES:估计所有流中等待使用的数据的最大字节数。 此度量处于公共预览阶段。
  • STREAMING_BACKLOG_RECORDS:估计所有流之间的最大偏移滞后时间。 此度量处于公共预览阶段。
  • STREAMING_BACKLOG_SECONDS:估计所有流的最大使用者延迟。 此度量处于公共预览阶段。
  • STREAMING_BACKLOG_FILES:估计所有流中未处理文件的最大数目。 此度量处于公共预览阶段。
op String 指定用于将运行状况指标值与指定阈值进行比较的运算符。
value Integer 指定运行状况指标应遵循的阈值以满足运行状况规则。

job.job_clusters

Type: Sequence

此作业的任务可以共享和重复使用的作业群集规范列表。 无法在共享作业群集中声明库。 必须在任务设置中声明依赖库。

列表中的每一项都是一个JobCluster:

Key 类型 Description
job_cluster_key String 作业群集的唯一名称。 此字段是必需的,并且必须在作业中是唯一的。 JobTaskSettings 可以引用此字段来确定要为任务执行启动的群集。
new_cluster Map 如果new_cluster,则说明为每个任务创建的群集。 请参阅 群集

job.通知设置

Type: Map

适用于作业中所有通知的通知设置。

Key 类型 Description
no_alert_for_skipped_runs 布尔 是否选择跳过发送运行被跳过时的警报。
no_alert_for_canceled_runs 布尔 是否跳过发送已取消运行的警报。

作业队列

Type: Map

作业的队列设置。

Key 类型 Description
enabled 布尔 是否为作业启用排队。

任务.调度

Type: Map

定时计划配置用于定期执行作业。

Key 类型 Description
quartz_cron_expression String 使用 Quartz 语法的 Cron 表达式,用于指定任务的运行时间。 例如, 0 0 9 * * ? 每天上午 9:00 UTC 运行作业。
timezone_id String 计划安排所用的时区。 例如,America/Los_AngelesUTC
pause_status String 计划是否暂停。 有效值: PAUSEDUNPAUSED

作业.触发器

Type: Map

事件驱动作业执行的触发器配置。

Key 类型 Description
file_arrival Map 基于文件到达的触发器。 请参阅 file_arrival
table Map 基于表的触发器。 请参阅
table_update Map 基于表更新的触发器。 请参阅 table_update
periodic Map 定期触发器。 请参阅 定期

job.trigger.file_arrival

Type: Map

根据文件到达事件进行配置触发。

Key 类型 Description
url String 要监视新文件的文件路径。
min_time_between_triggers_seconds Integer 触发器事件之间的最短时间(以秒为单位)。
wait_after_last_change_seconds Integer 在触发前最后一个文件更改后的等待时间(以秒为单位)。

作业.触发.表

Type: Map

基于表的触发器配置。

Key 类型 Description
table_names Sequence 要监视的表名列表。
condition String 触发作业必须满足的 SQL 条件。

job.trigger.table_update(触发器更新表)

Type: Map

基于表更新的触发配置。

Key 类型 Description
table_names Sequence 要监视更新的表名列表。
condition String 触发作业必须满足的 SQL 条件。
wait_after_last_change_seconds Integer 在最新一次的表更新后触发之前的等待时间(以秒为单位)。

工作.触发.周期性

Type: Map

定时触发配置。

Key 类型 Description
interval Integer 定期触发器的间隔值。
unit String 间隔的时间单位。 有效值:SECONDS、、MINUTESHOURSDAYSWEEKS

作业.网络钩子通知

Type: Map

作业运行的 Webhook 通知设置。

Key 类型 Description
on_start Sequence 在运行开始时需要通知的 Webhook 通知 ID 列表。
on_success Sequence 运行成功时要通知的 Webhook 通知 ID 的列表。
on_failure Sequence 运行失败时要通知的 Webhook 通知 ID 的列表。
on_duration_warning_threshold_exceeded Sequence 当运行持续时间超过警告阈值时要通知的 Webhook 通知 ID 的列表。

Examples

以下示例定义了一个资源键为 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 目录 注册的模型

模型服务端点

Type: Map

model_serving_endpoint资源允许定义 模型服务终结点。 请参阅管理模型服务终结点

model_serving_endpoints:
  <model_serving_endpoint-name>:
    <model_serving_endpoint-field-name>: <model_serving_endpoint-field-value>
Key 类型 Description
ai_gateway Map 服务终结点的 AI 网关配置。 注意:目前仅支持外部模型和预配的吞吐量终结点。 请参阅 ai_gateway
config Map 服务终结点的核心配置。 请参阅 配置
name String 服务终结点的名称。 此字段是必需的,并且必须在 Databricks 工作区中是唯一的。 终结点名称可以包含字母数字字符、短划线和下划线。
permissions Sequence 模型服务终结点的权限。 查看 权限
rate_limits Sequence Deprecated. 要应用于服务终结点的速率限制。 使用 AI 网关管理速率限制。
route_optimized 布尔 为服务终结点启用路由优化。
tags Sequence 要附加到服务终结点并自动传播到计费日志的标记。

模型服务端点.ai网关

Type: Map

服务终结点的 AI 网关配置。

Key 类型 Description
guardrails Map 护栏配置。 请参阅 护栏
inference_table_config Map 配置用于将推理日志记录到 Unity 目录表。 请参阅 inference_table_config
rate_limits Sequence 限流配置。
usage_tracking_config Map 用于跟踪使用情况的配置。 请参阅 usage_tracking_config

模型服务端点.ai_gateway.护栏

Type: Map

AI 网关防护配置。

Key 类型 Description
input Map 输入护栏配置,字段如下所示safetypii
output Map 输出防护栏配置,字段如下所示safetypii
invalid_keywords Sequence 要阻止的关键字列表。

model_serving_endpoint.ai_gateway.inference_table_config

Type: Map

配置用于将推理日志记录到 Unity 目录表。

Key 类型 Description
catalog_name String Unity 目录中目录的名称。
schema_name String Unity 目录中架构的名称。
table_name_prefix String 推断表名的前缀。
enabled 布尔 是否启用推理表日志。

模型服务端点.AI网关.使用跟踪配置

Type: Map

用于跟踪使用情况的 AI 网关配置。

Key 类型 Description
enabled 布尔 是否启用使用情况跟踪。

模型服务端点.config

Type: Map

服务终结点的核心配置。

Key 类型 Description
served_entities Sequence 用于终结点服务的实体列表。 每个服务实体都包含字段,例如entity_nameentity_versionworkload_sizescale_to_zero_enabledworkload_typeenvironment_vars
served_models Sequence (已弃用:改用 served_entities )终结点要提供服务的模型列表。
traffic_config Map 定义如何将调用请求路由到服务终结点的流量配置。 请参阅 traffic_config
auto_capture_config Map 用于自动记录对 Unity Catalog 的请求和响应的推断表配置。 请参阅 auto_capture_config

模型服务端点.config.traffic_config

Type: Map

定义如何将调用请求路由到服务终结点的流量配置。

Key 类型 Description
routes Sequence 用于流量分配的路由列表。 每个路由都包含 served_model_nametraffic_percentage

model_serving_endpoint.config.auto_capture_config

Type: Map

用于自动记录对 Unity Catalog 的请求和响应的推断表配置。

Key 类型 Description
catalog_name String Unity 目录中目录的名称。
schema_name String Unity 目录中架构的名称。
table_name_prefix String 推断表名的前缀。
enabled 布尔 是否启用推理表日志。

Example

以下示例定义了 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'

管道

Type: Map

在 Databricks 资产捆绑包中,管道支持 Python。 请参阅 databricks.bundles.pipelines

使用管道资源可以创建 管道。 有关管道的信息,请参阅 Lakeflow Spark 声明性管道。 有关使用 Databricks 资产捆绑包模板创建管道的教程,请参阅 使用 Databricks 资产捆绑包开发 Lakeflow Spark 声明性管道

pipelines:
  <pipeline-name>:
    <pipeline-field-name>: <pipeline-field-value>
Key 类型 Description
allow_duplicate_names 布尔 如果为 false,则名称与其他管道的名称冲突时,部署将失败。
budget_policy_id String 此管道的预算政策。
catalog String Unity Catalog 中要将数据从此管道发布到的目录。 如果指定了target,此管道中的表将在target中的catalog架构内发布(例如 catalog.target.table)。 如果未 target 指定,则不会将任何数据发布到 Unity 目录。
channel String Lakeflow Spark 声明性管道发布通道,指定要使用的 Lakeflow Spark 声明性管道的版本。
clusters Sequence 此管道部署的群集设置。 请参阅 群集
configuration Map 此管道执行的配置。
continuous 布尔 管道是连续运行的还是触发运行的。 这会替换 trigger
deployment Map 此管道的部署类型。 请参阅 部署
development 布尔 管道是否处于开发模式。 默认值为 false。
dry_run 布尔 管道是否为干运行管道。
edition String 管道产品版本。
environment Map 此管道的环境规范,用于在无服务器计算上安装依赖项。 查看 环境。 此密钥仅在 Databricks CLI 版本 0.258 及更高版本中受支持。
event_log Map 此管道的事件日志配置。 请参阅 event_log
filters Map 该筛选器用于确定要包含在已部署图形中的管道包。 请参阅 筛选器
id String 此管道的唯一标识符。
ingestion_definition Map 托管引入管道的配置。 这些设置不能与librariesschematargetcatalog设置一起使用。 请参阅 ingestion_definition
libraries Sequence 此部署所需的库或代码列表。 请参阅 pipeline.libraries
lifecycle Map 包含资源的生命周期设置。 它在部署或销毁资源时控制资源的行为。 请参阅 生命周期
name String 此管道的易记名称。
notifications Sequence 此管道的通知设置。
permissions Sequence 管道的权限。 查看 权限
photon 布尔 是否为此管道启用了 Photon。
root_path String 此管道的根路径。 这在 Databricks 用户界面中编辑管道时用作根目录,并在管道执行期间执行 Python 源时将其添加到 sys.path。
run_as Map 管道运行时使用的身份。 如果未指定,则管道将以创建它的用户身份运行。 只能指定user_nameservice_principal_name。 如果同时指定了两者,则会引发错误。 请参阅 run_as
schema String 作为表的读取来源或发布目标的默认架构(数据库)。
serverless 布尔 是否为此管道启用了无服务器计算。
storage String 用于存储检查点和表的 DBFS 根目录。
tags Map 与流水线相关的标签映射。 这些内容作为群集标记转发到群集,因此受到相同的限制。 最多可以向管道添加 25 个标记。
target String 要将此管道中的表添加到的目标架构(数据库)。 必须指定 schematarget 中的一个。 若要发布到 Unity 目录,还指定 catalog。 用于创建管道的此旧字段已弃用,以支持 schema 字段。

管道.部署

Type: Map

管道的部署类型配置。

Key 类型 Description
kind String 部署类型。 例如,BUNDLE
metadata_file_path String 用于部署的元数据文件路径

pipeline.environment (管道环境)

Type: Map

用于在无服务器计算上安装依赖项的环境规范。

Key 类型 Description
dependencies Sequence 此环境中的 pip 版本支持的 pip 依赖项列表。 每个依赖项都是 pip 需求文件中的一行

pipeline.event_log(管道事件日志)

Type: Map

管道的事件日志配置。

Key 类型 Description
catalog String 事件日志被发布在 Unity Catalog 所属的目录下。
name String 在 Unity Catalog 中发布事件日志的名称。
schema String 活动日志发布于 Unity Catalog 架构下。

管道.过滤器

Type: Map

用于确定在已部署图表中需纳入的管道包的筛选器。

Key 类型 Description
include Sequence 要包含的包名称的列表。
exclude Sequence 要排除的包名称的列表。

pipeline.ingestion_definition

Type: Map

托管引入管道的配置。 这些设置不能与librariesschematargetcatalog设置一起使用。

Key 类型 Description
connection_name String 要用于引入的连接的名称。
ingestion_gateway_id String 引入网关的 ID。
objects Sequence 必填。 指定要复制的表和复制表的目标的设置。 每个对象可以是 SchemaSpecTableSpecReportSpec
source_configuration Map 目录级源配置参数。 请参阅 source_configuration
table_configuration Map 引入表的配置。 请参阅 table_configuration

SchemaSpec

Type: Map

用于从架构中引入所有表的架构对象规范。

Key 类型 Description
source_schema String 要引入的源架构的名称。
destination_catalog String Unity Catalog 中目标目录的名称。
destination_schema String Unity 目录中的目标架构的名称。
table_configuration Map 应用于该架构中所有表的配置。 请参阅 pipeline.ingestion_definition.table_configuration

TableSpec

Type: Map

用于导入特定表的表对象规范。

Key 类型 Description
source_schema String 包含表的源架构的名称。
source_table String 要引入的源表的名称。
destination_catalog String Unity Catalog 中目标目录的名称。
destination_schema String Unity 目录中的目标架构的名称。
destination_table String Unity Catalog中的目标表名称。
table_configuration Map 此特定表的配置。 请参阅 pipeline.ingestion_definition.table_configuration

ReportSpec

Type: Map

用于引入分析报表的报表对象规范。

Key 类型 Description
source_url String 源报表的 URL。
source_report String 源报表的名称或标识符。
destination_catalog String Unity Catalog 中目标目录的名称。
destination_schema String Unity 目录中的目标架构的名称。
destination_table String 报告数据目标表的名称。
table_configuration Map 报表表的配置。 请参阅 pipeline.ingestion_definition.table_configuration

管道.摄取_定义.源_配置

Type: Map

源的配置。

Key 类型 Description
catalog Map 目录级源配置参数。 请参阅 目录
pipeline.摄取定义.源配置.catalog

Type: Map

目录级源配置参数

Key 类型 Description
postgres Map 特定于 Postgres 的目录级配置参数。 包含一个slot_config键,该键是一个Map,代表用于逻辑复制的 Postgres 插槽配置。
source_catalog String 源目录名称。

管道.摄入_定义.表_配置

Type: Map

引入表的配置选项。

Key 类型 Description
exclude_columns Sequence 列出要在数据摄取过程中排除的列名。 未指定时,include_columns 完全控制要引入的列。 指定后,所有其他列(包括未来的列)将自动纳入数据引入过程。 此字段与 include_columns 互斥。
include_columns Sequence 要包含用于引入的列名的列表。 如果未指定,将包含除其中列 exclude_columns 以外的所有列。 将来的列将被自动包含。 指定后,所有其他将来的列将自动排除在引入之外。 此字段与 exclude_columns 互斥。
primary_keys Sequence 用于作为表主键的列名列表。
sequence_by Sequence 指定源数据中事件的逻辑顺序的列名。 Spark 声明性管道使用此排序来处理顺序无序到达的更改事件。

管道.库

Type: Sequence

定义此管道所需的库或代码列表。

列表中的每个项都是一个定义:

Key 类型 Description
file Map 存储在 Databricks Repos 中的定义管道的文件路径。 请参阅 pipeline.libraries.file
glob Map 用于包含源代码的统一字段。 每个条目可以是笔记本路径、文件路径或结束 /**的文件夹路径。 此字段不能与 notebookfile 一起使用。 请参阅 pipeline.libraries.glob
notebook Map 定义管道并存放在 Databricks 工作区的笔记本的路径。 请参阅 pipeline.libraries.notebook
whl String 此字段已弃用

pipeline.libraries.file(管道.库.文件)

Type: Map

存储在 Databricks Repos 中用于定义管道的文件路径。

Key 类型 Description
path String 源代码的绝对路径。

pipeline.libraries.glob

Type: Map

用于包含源代码的统一字段。 每个条目可以是笔记本路径、文件路径或结束 /**的文件夹路径。 此字段不能与 notebookfile 一起使用。

Key 类型 Description
include String 要包含管道的源代码

pipeline.libraries.notebook

Type: Map

定义管道并存放在 Databricks 工作区的笔记本的路径。

Key 类型 Description
path String 源代码的绝对路径。

Example

以下示例定义了一个具有资源键 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

有关其他管道配置示例,请参阅 管道配置

quality_monitor(Unity Catalog)

Type: Map

quality_monitor 资源允许定义 Unity Catalog 表监视器。 有关监视器的信息,请参阅 数据分析

quality_monitors:
  <quality_monitor-name>:
    <quality_monitor-field-name>: <quality_monitor-field-value>
Key 类型 Description
assets_dir String 用于存储监视资产的目录(例如仪表板、指标表)。
baseline_table_name String 从中计算偏移指标的基线表的名称。 监视表中的列还应存在于基线表中。
custom_metrics Sequence 用于在受监视表上进行计算的自定义指标。 这些指标可以是聚合指标、派生指标(从已计算的聚合指标)或偏移指标(跨时间窗口比较指标)。 请参阅 custom_metrics
inference_log Map 用于监控推理日志的配置。 请参阅 inference_log
lifecycle Map 包含资源的生命周期设置。 它在部署或销毁资源时控制资源的行为。 请参阅 生命周期
notifications Map 监视器的通知设置。 请参阅 通知
output_schema_name String 用于创建输出指标表的架构。
schedule Map 自动更新和刷新指标表的计划。 请参阅 计划
skip_builtin_dashboard 布尔 是否跳过创建汇总数据质量指标的默认仪表板。
slicing_exprs Sequence 用于切片数据以进行目标分析的列表达式列表。 数据按每个表达式独立分组,从而为每个谓词及其补码生成单独的切片。 对于高基数列,只有按频率排列的前 100 个唯一值才会生成切片。
snapshot Map 用于监视快照表的配置。 请参阅 快照
table_name String 表的全名。
time_series Map 用于监视时序表的配置。 请参阅 time_series
warehouse_id String 用于为创建仪表板指定仓库的可选参数。 如果未指定,将使用第一个正在运行的仓库。

quality_monitor.custom_metrics(质量监控.自定义指标)

Type: Sequence

自定义指标定义列表。

列表中的每一项都是一个CustomMetric:

Key 类型 Description
definition String 用于指定如何计算指标的 SQL 表达式的 Jinja 模板。 请参阅 创建指标定义
input_columns Sequence 需计算指标的输入表中的列名列表。 可用于 :table 指示指标需要来自多个列的信息。
name String 输出表中指标的名称。
output_data_type String 自定义指标的输出类型。
type String 只能是CUSTOM_METRIC_TYPE_AGGREGATE, CUSTOM_METRIC_TYPE_DERIVEDCUSTOM_METRIC_TYPE_DRIFT中的一个。 CUSTOM_METRIC_TYPE_AGGREGATECUSTOM_METRIC_TYPE_DERIVED指标在单个表上计算,而CUSTOM_METRIC_TYPE_DRIFT用于比较基线表和输入表的指标,或用于比较两个连续时间窗口之间的指标。
  • CUSTOM_METRIC_TYPE_AGGREGATE:仅依赖于您表中的现有列
  • CUSTOM_METRIC_TYPE_DERIVED:依赖于以前计算的聚合指标
  • CUSTOM_METRIC_TYPE_DRIFT:取决于以前计算的聚合或导出指标

质量监控.数据分类配置

Type: Map

数据分类的配置。

Key 类型 Description
enabled 布尔 是否启用数据分类。

quality_monitor.inference_log

Type: Map

用于监控推理日志的配置。

Key 类型 Description
granularities Sequence 聚合推理日志时的时间粒度(例如 ["1 day"])。
model_id_col String 包含模型 ID 的列的名称。
prediction_col String 包含预测的列的名称。
timestamp_col String 包含时间戳的列的名称。
problem_type String ML 问题的类型。 有效值包括 PROBLEM_TYPE_CLASSIFICATIONPROBLEM_TYPE_REGRESSION.
label_col String 包含标签的列的名称(基本事实)。

质量监控.通知

Type: Map

监视器的通知设置。

Key 类型 Description
on_failure Map 监视器失败时的通知设置。 请参阅 on_failure
on_new_classification_tag_detected Map 检测到新的分类标记时通知设置。 请参阅 on_new_classification_tag_detected

quality_monitor.notifications.on_failure

Type: Map

监视器失败时的通知设置。

Key 类型 Description
email_addresses Sequence 用于监控故障通知的邮件地址列表。

质量监控.通知.检测到新分类标签

Type: Map

检测到新的分类标记时通知设置。

Key 类型 Description
email_addresses Sequence 检测到新分类标记时要通知的电子邮件地址列表。

质量监控器.时间表

Type: Map

自动更新和刷新指标表的日程安排。

Key 类型 Description
quartz_cron_expression String 使用 Quartz 语法的 Cron 表达式。 例如,0 0 8 * * ? 每天早上8:00运行。
timezone_id String 计划的时区(例如 UTCAmerica/Los_Angeles)。
pause_status String 计划是否暂停。 有效值: PAUSEDUNPAUSED

质量监控.快照

Type: Map

用于监视快照表的配置。

quality_monitor.time_series

用于监视时序表的配置。

Key 类型 Description
granularities Sequence 用于聚合时序数据的时间粒度(例如 ["30 minutes"])。
timestamp_col String 包含时间戳的列的名称。

Examples

有关定义quality_monitor的完整示例包,请参阅mlops_demo

以下示例为 InferenceLogTimeSeries快照 配置文件类型定义质量监视器。

# 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

registered_model (Unity 目录)

Type: Map

使用 registered model 资源,可以在 Unity Catalog 中定义模型。 有关 Unity 目录 注册的模型的信息,请参阅 Unity 目录中的管理模型生命周期

registered_models:
  <registered_model-name>:
    <registered_model-field-name>: <registered_model-field-value>
Key 类型 Description
aliases Sequence 与已注册的模型关联的别名列表。 请参阅 registered_model.aliases
browse_only 布尔 指示在请求中启用include_browse时,主体是否仅限于通过 BROWSE 权限检索关联对象的元数据。
catalog_name String 架构和已注册模型所在的目录的名称。
comment String 附加到已注册模型的注释。
full_name String 已注册模型的三级(完全限定)名称
grants Sequence 与注册模型关联的授予。 请参阅 授予
lifecycle Map 包含资源的生命周期设置。 它在部署或销毁资源时控制资源的行为。 请参阅 生命周期
name String 已注册模型的名称。
schema_name String 已注册模型所在的架构的名称。
storage_location String 存储模型版本数据文件的云存储位置。

registered_model.aliases(已注册模型的别名)

Type: Sequence

与已注册的模型关联的别名列表。

列表中的每个项都是一个 Alias

Key 类型 Description
alias_name String 别名的名称,例如“champion”或“latest_stable”
catalog_name String 包含模型版本的目录的名称
id String 别名的唯一标识符
model_name String 模型版本的父注册模型的名称,相对于父架构
schema_name String 包含模型版本的架构的名称,相对于父目录
version_num Integer 此别名指向的模型版本的整数版本号。

Example

以下示例在 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

在 Python 中支持 Databricks 资产捆绑包的模式。 请参阅 databricks.bundles.schemas

架构资源类型允许您为工作流和管道中的表及其他资产定义 Unity Catalog 架构,这些工作流和管道是作为捆绑包的一部分创建的。 不同于其他资源类型,架构具有以下限制:

  • 构架资源的所有者始终是部署用户,不能更改。 如果在捆绑包中指定了 run_as,则架构上的操作将忽略它。
  • 只有相应的 Schemas 对象创建 API 所支持的字段可用于该架构资源。 例如, enable_predictive_optimization 不支持,因为它仅在 更新 API 上可用。
schemas:
  <schema-name>:
    <schema-field-name>: <schema-field-value>
Key 类型 Description
catalog_name String 父目录的名称。
comment String 用户提供的自由格式文本说明。
grants Sequence 与架构关联的授予。 请参阅 授予
lifecycle Map 包含资源的生命周期设置。 它在部署或销毁资源时控制资源的行为。 请参阅 生命周期
name String 相对于父目录的架构名称。
properties Map 附加到架构的键值属性的映射。
storage_root String 架构中托管表的存储根 URL。

Examples

以下示例定义了一个使用资源键 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>
Key 类型 Description
backend_type String 创建该作用域时将使用的后端类型。 如果未指定,则默认为 DATABRICKS.
keyvault_metadata Map 机密范围的元数据(如果 backend_typeAZURE_KEYVAULT)。 请参阅 keyvault_metadata
lifecycle Map 包含资源的生命周期设置。 它在部署或销毁资源时控制资源的行为。 请参阅 生命周期
name String 用户请求的范围名称。 范围名称是唯一的。
permissions Sequence 应适用于密钥范围的权限。 权限通过机密范围 ACL 进行管理。 查看 权限

secret_scope.keyvault_metadata

Type: Map

由 Azure Key Vault 支持的秘密范围的元数据。

Key 类型 Description
resource_id String Key Vault 的 Azure 资源 ID。
dns_name String Azure Key Vault 的 DNS 名称。

Examples

以下示例定义使用密钥保管库后端的机密范围:

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>
Key 类型 Description
auto_stop_mins Integer SQL 仓库在被自动停止之前,必须处于空闲状态的时间量(例如,没有 RUNNING 查询)。 有效值为 0,表示不自动停止或大于或等于 10。 默认值为 120。
channel Map 通道详细信息。 查看 频道
cluster_size String 为此仓库分配的群集的大小。 增加 Spark 群集的大小可让你对它运行更大的查询。 如果要增加并发查询数,请优化max_num_clusters。 有关支持的值,请参阅 cluster_size
creator_name String 创建仓库的用户的名称。
enable_photon 布尔 仓库是否应使用 Photon 优化群集。 默认值为 false。
enable_serverless_compute 布尔 仓库是否应使用无服务器计算。
instance_profile_arn String Deprecated. 用于将 IAM 角色传递给集群的实例配置文件
lifecycle Map 包含资源的生命周期设置。 它在部署或销毁资源时控制资源的行为。 请参阅 生命周期
max_num_clusters Integer 自动缩放程序创建的最大群集数,用于处理并发查询。 值必须小于或等于 30 且大于或等于 min_num_clusters。 如果未设置,则默认为min_clusters。
min_num_clusters Integer 将为此 SQL 仓库维护的可用群集的最小数量。 增加这可确保越来越多的群集始终运行,因此可能会减少新查询的冷启动时间。 这类似于资源管理器中保留核心与可吊销核心的比较。 值必须大于 0 且小于或等于 min(max_num_clusters,30)。 默认值为 1。
name String 群集的逻辑名称。 该名称在组织内必须唯一且少于 100 个字符。
permissions Sequence 要应用于仓库的权限。 查看 权限
spot_instance_policy String 是否使用现成实例。 有效值为 POLICY_UNSPECIFIEDCOST_OPTIMIZEDRELIABILITY_OPTIMIZED。 默认值为 COST_OPTIMIZED
tags Map 将在与此 SQL 仓库关联的所有资源(例如 AWS 实例和 EBS 卷)上打上标签的一系列键值对。 标记数必须小于 45。
warehouse_type String 仓库类型,PROCLASSIC。 如果要使用无服务器计算,请将此字段设置为 PRO ,并将该字段 enable_serverless_compute 设置为 true

sql_warehouse.channel

Type: Map

SQL 仓库的通道配置。

Key 类型 Description
name String 通道的名称。 有效值包括 CHANNEL_NAME_CURRENTCHANNEL_NAME_PREVIEWCHANNEL_NAME_CUSTOM
dbsql_version String 自定义通道的 DBSQL 版本。

Example

以下示例定义 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

同步的数据库表

Type: Map

通过同步的数据库表资源,可以在捆绑包中定义 Lakebase 数据库表

有关同步的数据库表的信息,请参阅什么是数据库实例?

synced_database_tables:
  <synced_database_table-name>:
    <synced_database_table-field-name>: <synced_database_table-field-value>
Key 类型 Description
database_instance_name String 目标数据库实例的名称。 在标准目录中创建同步的数据库表时,这是必需的。 在已注册的目录中创建同步的数据库表时,这是可选的。
lifecycle Map 包含资源的生命周期设置。 它在部署或销毁资源时控制资源的行为。 请参阅 生命周期
logical_database_name String 此表的目标 Postgres 数据库对象(逻辑数据库)的名称。
name String 表格的全名,格式 catalog.schema.table为 .
spec Map 数据库表规范。 请参阅 同步的数据库表规范

synced_database_table.spec

Type: Map

数据库表规范。

Key 类型 Description
create_database_objects_if_missing 布尔 如果同步表的逻辑数据库和架构资源尚不存在,则是否创建它们。
existing_pipeline_id String 现有管道的 ID。 如果已设置,则同步表将打包到引用的现有管道中。 这可以避免创建新的管道并允许共享现有计算。 在这种情况下,该同步表的 scheduling_policy 必须与现有管道的调度策略相匹配。 最多只能定义 existing_pipeline_idnew_pipeline_spec 中的一个。
new_pipeline_spec Map 新管道的技术规范。 请参阅 new_pipeline_spec。 最多只能定义 existing_pipeline_idnew_pipeline_spec 中的一个。
primary_key_columns Sequence 构成主键的列名列表。
scheduling_policy String 用于同步的调度策略。 有效值包括 SNAPSHOTCONTINUOUS.
source_table_full_name String 源表的全名格式为catalog.schema.table
timeseries_key String 用于取消重复具有相同主键的行的时序键。

synced_database_table.spec.new_pipeline_spec

Type: Map

同步数据库表使用的新管道的规范。

Key 类型 Description
budget_policy_id String 要在新创建的管道上设置的预算策略的 ID。
storage_catalog String 用于存储中间文件的管道的目录,例如检查点和事件日志。 这必须是用户有权创建 Delta 表的标准目录。
storage_schema String 用于存储中间文件的管道的架构,例如检查点和事件日志。 这需要在用户有权创建 Delta 表的标准目录中。

Examples

以下示例在相应的 数据库目录中定义同步的数据库表:

resources:
  database_instances:
    my_instance:
      name: my-instance
      capacity: CU_1
  database_catalogs:
    my_catalog:
      database_instance_name: my-instance
      database_name: 'my_database'
      name: my_catalog
      create_database_if_not_exists: true
  synced_database_tables:
    my_synced_table:
      name: ${resources.database_catalogs.my_catalog.name}.${resources.database_catalogs.my_catalog.database_name}.my_destination_table
      database_instance_name: ${resources.database_catalogs.my_catalog.database_instance_name}
      logical_database_name: ${resources.database_catalogs.my_catalog.database_name}
      spec:
        source_table_full_name: 'my_source_table'
        scheduling_policy: SNAPSHOT
        primary_key_columns:
          - my_pk_column
        new_pipeline_spec:
          storage_catalog: 'my_delta_catalog'
          storage_schema: 'my_delta_schema'

以下示例定义标准目录中的同步数据库表:

resources:
  synced_database_tables:
    my_synced_table:
      name: 'my_standard_catalog.public.synced_table'
      # database_instance_name is required for synced tables created in standard catalogs.
      database_instance_name: 'my-database-instance'
      # logical_database_name is required for synced tables created in standard catalogs:
      logical_database_name: ${resources.database_catalogs.my_catalog.database_name}
      spec:
        source_table_full_name: 'source_catalog.schema.table'
        scheduling_policy: SNAPSHOT
        primary_key_columns:
          - my_pk_column
        create_database_objects_if_missing: true
        new_pipeline_spec:
          storage_catalog: 'my_delta_catalog'
          storage_schema: 'my_delta_schema'

此示例创建一个同步的数据库表并为其自定义管道计划。 它假定你已拥有:

  • 名为 my-database-instance 的数据库实例
  • 名为 my_standard_catalog 的标准目录
  • 名为 default 的标准目录中的模式
  • source_delta.schema.customer为主键,命名为c_custkey的源增量表
resources:
  synced_database_tables:
    my_synced_table:
      name: 'my_standard_catalog.default.my_synced_table'
      database_instance_name: 'my-database-instance'
      logical_database_name: 'test_db'
      spec:
        source_table_full_name: 'source_delta.schema.customer'
        scheduling_policy: SNAPSHOT
        primary_key_columns:
          - c_custkey
        create_database_objects_if_missing: true
        new_pipeline_spec:
          storage_catalog: 'source_delta'
          storage_schema: 'schema'

  jobs:
    sync_pipeline_schedule_job:
      name: sync_pipeline_schedule_job
      description: 'Job to schedule synced database table pipeline.'
      tasks:
        - task_key: synced-table-pipeline
          pipeline_task:
            pipeline_id: ${resources.synced_database_tables.my_synced_table.data_synchronization_status.pipeline_id}
      schedule:
        quartz_cron_expression: '0 0 0 * * ?'

卷 (Unity Catalog)

Type: Map

Databricks 资产捆绑包中支持使用 Python 的卷功能。 请参阅 databricks.bundles.volumes

使用 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>
Key 类型 Description
catalog_name String 架构和卷的目录的名称。
comment String 附加到卷的注释。
grants Sequence 与卷关联的授予。 请参阅 授予
lifecycle Map 包含资源的生命周期设置。 它在部署或销毁资源时控制资源的行为。 请参阅 生命周期
name String 卷的名称。
schema_name String 卷所在的架构的名称。
storage_location String 云上的存储位置。
volume_type String 卷类型,EXTERNALMANAGED。 外部卷位于指定的外部位置。 托管卷位于由父架构、父目录或元存储指定的默认位置。 请参阅 托管卷与外部卷

Example

以下示例创建了具有键 my_volume_id 的 Unity Catalog 卷:

resources:
  volumes:
    my_volume_id:
      catalog_name: main
      name: my_volume
      schema_name: my_schema

有关运行在 Unity Catalog 卷中写入文件的作业的示例捆绑包,请参阅捆绑包示例 GitHub 存储库

常见对象

授予

Type: Map

定义要授予该主体的主体和特权。 有关授予的详细信息,请参阅 “显示”、“授予”和“撤销权限”。

Key 类型 Description
principal String 将被授予特权的主体的名称。 可以是用户、组或服务主体。
privileges Sequence 给指定实体授予的权限。 有效值取决于资源类型(例如,SELECT、、MODIFYCREATEUSAGEREAD_FILESWRITE_FILES、、EXECUTE、 )。 ALL_PRIVILEGES

Example

以下示例定义了一个附带权限的 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

包含资源的生命周期设置。 它在部署或销毁资源时控制资源的行为。

Key 类型 Description
prevent_destroy 布尔 用于防止资源被销毁的生命周期设置。