如何从Git仓库引入文件构建Databricks资产包?
从Git仓库构建Databricks资产包实操方案
核心逻辑说明
Databricks资产包(DAB)的初始构建核心是将仓库内的本地文件映射为Databricks资产定义,官方文档里bundle节点下的Git配置仅用于引用远程已打包的资产包,并非用来从Git仓库拉取文件构建初始包。你只需要先将Git仓库克隆至本地,再通过include节点加载仓库内的各类资产文件即可。
完整实操步骤
1. 克隆目标Git仓库到本地
git clone <你的Git仓库地址> cd <仓库根目录>
2. 编写核心配置文件databricks.yml
该文件作为资产包的入口,通过include加载仓库内的笔记本、作业、流水线等文件,同时定义基础bundle信息:
bundle: name: my-git-driven-bundle target: dev # 可自定义环境标识,如prod/staging # 加载仓库内的各类资产文件,支持通配符匹配 include: # 递归加载所有笔记本文件(适配py/ipynb格式) - notebooks/**/*.py - notebooks/**/*.ipynb # 加载所有作业配置文件 - jobs/*.yml # 加载所有流水线配置文件 - pipelines/*.yml # 全局变量(可选,用于统一管理路径、集群参数等) variables: workspace_base_path: /Workspace/Users/your-email@domain.com/my-bundle-assets
3. 仓库内资产文件的示例写法
笔记本资产配置
假设仓库内有notebooks/etl/raw_to_silver.py文件,可在同目录下创建raw_to_silver.yml定义该笔记本资产:
resources: notebooks: raw_to_silver: path: ${var.workspace_base_path}/notebooks/etl/raw_to_silver.py language: PYTHON
作业资产配置(jobs/daily_etl_job.yml)
resources: jobs: daily_etl: name: Daily ETL Processing tasks: - task_key: raw_to_silver notebook_task: notebook_path: ${var.workspace_base_path}/notebooks/etl/raw_to_silver.py compute: job_cluster_key: etl_cluster job_clusters: - job_cluster_key: etl_cluster new_cluster: spark_version: 13.3.x-scala2.12 node_type_id: Standard_DS3_v2 num_workers: 2
4. 构建与部署资产包
在仓库根目录下执行Databricks CLI命令:
# 初始化资产包环境 databricks bundle init # 校验配置文件合法性 databricks bundle validate # 部署到目标环境 databricks bundle deploy --target dev
重要注意事项
include支持*(匹配单级文件)和**(递归匹配多级目录)通配符,可快速批量加载仓库内资产文件。- 无需在
include中配置Git参数,只要工作目录是Git克隆后的本地仓库,DAB会直接读取本地文件构建资产包,后续可通过Git版本控制管理所有配置与资产文件。 - 若仓库包含Git子模块,需先拉取子模块内容,再在
include中指定子模块的目录路径即可加载对应资产。
内容的提问来源于stack exchange,提问作者Scott
相关产品推荐
相关产品推荐

