使用 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。
|
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 | 可选。 此计划是否处于暂停状态。 有效值: UNPAUSED, PAUSED。 默认值: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 | 应用的计算大小。 有效值为 MEDIUM 或 LARGE 依赖于工作区配置。 |
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_EDIT,CAN_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_RUN,CAN_MANAGEIS_OWNER。 |
应用程序.资源.机密
Type: Map
标识要使用的 Azure Databricks 机密资源的设置。
| Key | 类型 | Description |
|---|---|---|
key |
String | 用于授予权限的密钥。 |
permission |
String | 机密的权限级别。 有效值包括 READ, WRITE。 MANAGE |
scope |
String | 机密范围的名称。 |
app.resources.服务端点
Type: Map
标识要使用的终结点资源的模型的设置。
| Key | 类型 | Description |
|---|---|---|
name |
String | 服务终结点的名称。 |
permission |
String | 服务终结点的权限级别。 有效值包括 CAN_QUERY, CAN_MANAGE。 CAN_VIEW |
app.resources.sql仓库
Type: Map
标识要使用的 SQL 仓库的设置。
| Key | 类型 | Description |
|---|---|---|
id |
String | SQL 仓库的 ID。 |
permission |
String | SQL 仓库的权限级别。 有效值包括 CAN_USE, CAN_MANAGE。 IS_OWNER |
app.resources.uc_securable
Type: Map
标识要使用的 Unity 目录卷的设置。
| Key | 类型 | Description |
|---|---|---|
permission |
String | Unity 目录安全对象的权限级别。 有效值为 READ_VOLUME 和 WRITE_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 | 从群集访问数据时要使用的数据治理模型。 有效值包括NONE、SINGLE_USER、、USER_ISOLATIONLEGACY_SINGLE_USER、LEGACY_TABLE_ACL。 LEGACY_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_tags、spark_conf和num_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 | 确定群集的运行时引擎是 STANDARD 或 PHOTON。 |
single_user_name |
String | 如果 data_security_mode 是 SINGLE_USER,则为单个用户名 |
spark_conf |
Map | 一个对象,其中包含一组可选的由用户指定的 Spark 配置键值对。 用户还可以通过spark.driver.extraJavaOptions和spark.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 节点之后的所有节点的可用性类型。 有效值为 SPOT, ON_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_SSD 或 THROUGHPUT_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_AZURE, ON_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_GCP, ON_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_S3,SSE_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_4。 CU_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 | 此作业的可选连续属性。 连续属性将确保始终有一个运行在执行。
schedule 和 continuous 中只能使用一个。 请参阅 continuous。 |
deployment |
Map | 由外部源管理的作业的部署信息。 请参阅 部署。 |
description |
String | 作业的可选说明。 UTF-8 编码的最大长度为 27700 个字符。 |
edit_mode |
String | 作业的编辑模式是 UI_LOCKED 或 EDITABLE 的其中之一。 |
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_notifications 和 webhook_notifications 发送通知时使用的可选通知设置。 请参阅 notification_settings。 |
parameters |
Sequence | 作业级参数定义。 |
performance_target |
String | 定义在无服务器上运行的执行的性能或成本效益。 |
permissions |
Sequence | 作业的权限。 查看 权限。 |
queue |
Map | 作业的队列设置。 请参阅 queue。 |
run_as |
Map | 仅写入设置。 指定作业运行时所用的用户或服务主体。 如果未指定,作业将作为创建作业的用户运行。 应指定user_name或service_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 | 是否暂停连续作业。 有效值: PAUSED, UNPAUSED。 |
task_retry_mode |
String | 说明持续作业如何应用任务级别重试。 有效值为 NEVER 和 ON_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_tag 或 git_commit 同时指定。 |
git_commit |
String | 要签出和使用此作业的提交。 此字段不能与 git_branch 或 git_tag 同时指定。 |
git_provider |
String | 用于托管 Git 存储库的服务的唯一标识符。 该值不区分大小写。 有效值为 gitHub:、bitbucketCloud、、gitLab、azureDevOpsServicesgitHubEnterprise、bitbucketServer. gitLabEnterpriseEdition |
git_snapshot |
Map | 运行作业时远程存储库的只读状态。 此字段仅在作业执行时包含。 请参阅 git_snapshot。 |
git_tag |
String | 要签出和使用此作业的标记的名称。 此字段不能与 git_branch 或 git_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 | 作业健康规则列表。 每个规则都包含一个 metric 和 op (运算符) 和 value。 请参阅 job.health.rules。 |
作业健康规则
Type: Sequence
作业健康规则列表。
列表中的每一项都是一个JobHealthRule:
| Key | 类型 | Description |
|---|---|---|
metric |
String | 指定正在针对特定健康规则进行评估的健康指标。
|
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_Angeles 或 UTC。 |
pause_status |
String | 计划是否暂停。 有效值: PAUSED, UNPAUSED。 |
作业.触发器
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、、MINUTESHOURS、DAYSWEEKS。 |
作业.网络钩子通知
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_name、entity_version、workload_size、scale_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_name 和 traffic_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 | 托管引入管道的配置。 这些设置不能与libraries、schema、target或catalog设置一起使用。 请参阅 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_name或service_principal_name。 如果同时指定了两者,则会引发错误。 请参阅 run_as。 |
schema |
String | 作为表的读取来源或发布目标的默认架构(数据库)。 |
serverless |
布尔 | 是否为此管道启用了无服务器计算。 |
storage |
String | 用于存储检查点和表的 DBFS 根目录。 |
tags |
Map | 与流水线相关的标签映射。 这些内容作为群集标记转发到群集,因此受到相同的限制。 最多可以向管道添加 25 个标记。 |
target |
String | 要将此管道中的表添加到的目标架构(数据库)。 必须指定 schema 或 target 中的一个。 若要发布到 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
托管引入管道的配置。 这些设置不能与libraries、schema、target或catalog设置一起使用。
| Key | 类型 | Description |
|---|---|---|
connection_name |
String | 要用于引入的连接的名称。 |
ingestion_gateway_id |
String | 引入网关的 ID。 |
objects |
Sequence | 必填。 指定要复制的表和复制表的目标的设置。 每个对象可以是 SchemaSpec、 TableSpec 或 ReportSpec。 |
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 | 用于包含源代码的统一字段。 每个条目可以是笔记本路径、文件路径或结束 /**的文件夹路径。 此字段不能与 notebook 或 file 一起使用。 请参阅 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
用于包含源代码的统一字段。 每个条目可以是笔记本路径、文件路径或结束 /**的文件夹路径。 此字段不能与 notebook 或 file 一起使用。
| 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_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_CLASSIFICATION,PROBLEM_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 | 计划的时区(例如 UTC, America/Los_Angeles)。 |
pause_status |
String | 计划是否暂停。 有效值: PAUSED, UNPAUSED。 |
质量监控.快照
Type: Map
用于监视快照表的配置。
quality_monitor.time_series
用于监视时序表的配置。
| Key | 类型 | Description |
|---|---|---|
granularities |
Sequence | 用于聚合时序数据的时间粒度(例如 ["30 minutes"])。 |
timestamp_col |
String | 包含时间戳的列的名称。 |
Examples
有关定义quality_monitor的完整示例包,请参阅mlops_demo。
以下示例为 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
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_type 为 AZURE_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_UNSPECIFIED, COST_OPTIMIZEDRELIABILITY_OPTIMIZED。 默认值为 COST_OPTIMIZED。 |
tags |
Map | 将在与此 SQL 仓库关联的所有资源(例如 AWS 实例和 EBS 卷)上打上标签的一系列键值对。 标记数必须小于 45。 |
warehouse_type |
String | 仓库类型,PRO 或 CLASSIC。 如果要使用无服务器计算,请将此字段设置为 PRO ,并将该字段 enable_serverless_compute 设置为 true。 |
sql_warehouse.channel
Type: Map
SQL 仓库的通道配置。
| Key | 类型 | Description |
|---|---|---|
name |
String | 通道的名称。 有效值包括 CHANNEL_NAME_CURRENT, CHANNEL_NAME_PREVIEW。 CHANNEL_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_id 和 new_pipeline_spec 中的一个。 |
new_pipeline_spec |
Map | 新管道的技术规范。 请参阅 new_pipeline_spec。 最多只能定义 existing_pipeline_id 和 new_pipeline_spec 中的一个。 |
primary_key_columns |
Sequence | 构成主键的列名列表。 |
scheduling_policy |
String | 用于同步的调度策略。 有效值包括 SNAPSHOT,CONTINUOUS. |
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 | 卷类型,EXTERNAL 或 MANAGED。 外部卷位于指定的外部位置。 托管卷位于由父架构、父目录或元存储指定的默认位置。 请参阅 托管卷与外部卷。 |
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、、MODIFY、CREATE、USAGE、READ_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 |
布尔 | 用于防止资源被销毁的生命周期设置。 |