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