SuperAPI AI 工具集

databricks-bundles

部署与运维

查看项目

更新于 10-16 10:54

技能介绍

Databricks Bundles 技能用于创建和配置声明式自动化 Bundle(Declarative Automation Bundles,原名 Asset Bundles),面向多环境(dev/staging/prod)部署场景。

用途

用于为多环境部署编写 DABs 配置,覆盖开发、预发布与生产环境的资源定义与参数化。

主要能力

支持在 Bundle 中定义与配置多种资源:

  • 仪表板(Dashboards):可设置 display_name、file_path、warehouse_id,以及 dataset_catalog 与 dataset_schema 参数(Databricks CLI 0.281.0,2026 年 1 月新增)。权限级别为 CAN_READ、CAN_RUN、CAN_EDIT、CAN_MANAGE。
  • 作业(Jobs):可定义任务(notebook_task)、集群(new_cluster)、调度(schedule,quartz_cron_expression 与 timezone_id)以及权限。权限级别为 CAN_VIEW、CAN_MANAGE_RUN、CAN_MANAGE。注意无法修改作业的 "admins" 组权限,使用自定义组前需先确认组存在。
  • 卷(Volumes):定义 catalog_name、schema_name、name 与 volume_type,使用 grants 而非 permissions。
  • 应用(Apps):Apps 资源支持自 Databricks CLI 0.239.0(2025 年 1 月)起提供。配置较为精简,环境变量定义在源目录的 app.yaml 中,而非 databricks.yml。可通过 databricks bundle generate app 从已部署应用生成 Bundle 配置,或手动配置。
  • 其他资源:还支持 schemas、models、experiments、clusters、warehouses 等,可使用 databricks bundle schema 查看 schema。
  • 管道(Pipelines):参考 SDP_guidance.md;SQL 告警参考 alerts_guidance.md(告警 schema 与其他资源差异较大)。

典型 Bundle 结构

project/ ├── databricks.yml # 主配置 + targets ├── resources/*.yml # 资源定义 └── src/ # 代码/仪表板文件

databricks.yml 中通过 variables 参数化 catalog、schema、warehouse_id,并用 targets 区分 dev(mode: development)与 prod(mode: production)环境。

使用方式(常用命令)

  • 校验:databricks bundle validate、databricks bundle validate -t prod
  • 部署:databricks bundle deploy、databricks bundle deploy -t prod,可加 --auto-approve 跳过确认、--force 强制覆盖远端变更
  • 运行:databricks bundle run resource_name、databricks bundle run pipeline_name -t prod;Apps 在部署后需运行 databricks bundle run app_resource_key -t dev 启动
  • 日志:databricks apps logs <app-name> --profile <profile-name>,查看 [SYSTEM]、[APP] 输出、后端连接状态、部署 ID 与堆栈信息
  • 清理:databricks bundle destroy -t dev、databricks bundle destroy -t prod --auto-approve

适用场景

需要将 Databricks 资源以声明式方式在多环境间部署,并纳入 CI/CD 流程的场景,包括作业编排、仪表板、管道、应用与卷的管理。

关键原则与限制

  • 路径解析:resources/*.yml 中使用 ../src/...,databricks.yml 的 targets 中使用 ./src/...;Apps 源码若位于项目根目录,资源文件中使用 source_code_path: ..
  • 变量参数化 catalog、schema、warehouse
  • 组使用 "users";作业权限无法修改 "admins" 组
  • 易错点:应用部署失败先查日志;应用未连接 Unity Catalog 时检查后端连接错误、warehouse ID 与权限;卷使用 grants 而非 permissions;仪表板硬编码 catalog 可使用 dataset_catalog 参数、环境专属文件或参数化 JSON;应用环境变量放在 app.yaml 而非 databricks.yml

相关技能:databricks-spark-declarative-pipelines、databricks-apps-python、databricks-config、databricks-jobs。