什么是 Databricks 资产捆绑包?
Databricks 资产捆绑包是可以方便采用数据和 AI 项目的软件工程最佳做法(包括源代码管理、代码评审、测试以及持续集成和交付 (CI/CD))的工具。 使用捆绑包,可以将作业、管道和笔记本等 Databricks 资源描述为源文件。 这些源文件提供项目的端到端定义,包括如何生成、测试和部署项目,这样,在活跃开发期间可以更容易实现项目协作。
捆绑提供了一种将元数据与项目源文件一起包含的方式。 使用捆绑包部署项目时,此元数据将用于预配基础结构和其他资源。 然后,项目的源文件和元数据集合将作为单个捆绑包部署到目标环境。 捆绑包包括下列部分:
- 所需的云基础结构和工作区配置
- 包含业务逻辑的源文件,例如笔记本和 Python 文件
- Databricks 资源的定义和设置,例如 Azure Databricks 作业、增量实时表管道、模型服务终结点、MLflow 试验和 MLflow 注册的模型
- 单元测试和集成测试
下图提供了使用捆绑包的开发和 CI/CD 管道的概要视图:
应在何时使用 Databricks 资产捆绑包?
Databricks 资产捆绑包是一种基础结构即代码 (IaC) 方法,用于管理 Databricks 项目。 如果要管理的复杂项目必须涉及多个参与者和自动化,并且需要进行持续集成和部署 (CI/CD),则可使用它们。 由于捆绑包是通过与源代码一起创建和维护的 YAML 模板与文件来定义和管理的,因此它们会很好地映射到 IaC 是适当方法的方案。
捆绑包的一些理想方案包括:
- 在基于团队的环境中开发数据、分析和 ML 项目。 捆绑包可帮助你高效地组织和管理各种源文件。 这可确保顺畅协作和简化的过程。
- 更快地循环访问 ML 问题。 使用从一开始就遵循生产最佳做法的 ML 项目管理 ML 管道资源(例如训练和批处理推理作业)。
- 通过创作包含默认权限、服务主体和 CI/CD 配置的自定义捆绑模板,为新项目设置组织标准。
- 法规合规性:在法规合规性非常重要的行业,捆绑包可以帮助维护代码和基础结构工作的版本历史记录。 这有助于治理,并确保满足必要的合规性标准。
Databricks 资产捆绑包的工作原理是什么?
捆绑包元数据是使用 YAML 文件定义的,该文件指定了 Databricks 项目的生成工件、资源和配置。 可以手动创建此 YAML 文件,也可以使用捆绑包模板生成一个。 然后,可将 Databricks CLI 用于使用这些捆绑 YAML 文件验证、部署和运行捆绑包。 可以直接从 IDE、终端或 Databricks 中运行捆绑项目。 本文使用 Databricks CLI。
捆绑包可以手动创建,也可以基于模板创建。 Databricks CLI 为简单用例提供了默认模板,但对于更具体或复杂的作业,可以创建自定义捆绑模板来实现团队的最佳做法,并保持常见配置一致。
有关用于表示 Databricks 资产捆绑包的配置 YAML 的更多详细信息,请参阅 Databricks 资产捆绑包配置。
配置要使用捆绑包的环境
使用 Databricks CLI 从命令行轻松部署捆绑包。 可以通过运行以下命令来检查是否已安装 Databricks CLI 以及正在使用的当前版本:
databricks --version
注意
需要使用 Databricks CLI 版本 0.218.0 或更高版本。 要安装 Databricks CLI,请参阅《安装或更新 Databricks CLI》。
安装 Databricks CLI 后,验证是否已正确配置远程 Databricks 工作区。 捆绑包要求启用工作区文件功能,因为此功能支持使用 Databricks Notebooks 以外的文件,例如 .py
和 .yml
文件。 如果使用的是 Databricks Runtime 版本 11.2(或更高版本),则默认情况下应已启用此功能。
身份验证
Azure Databricks 提供了多种身份验证方法。 有关详细信息,请参阅身份验证类型。
开发第一个 Databricks 资产捆绑包
启动捆绑包开发的最快方法是使用模板。 使用 Databricks CLI bundle init
命令创建第一个捆绑项目,而无需任何选项。 这提供了 Databricks 提供的默认捆绑模板的选择,并询问一系列初始化项目变量的问题。
databricks bundle init
组织还可以创建自定义捆绑模板来定义自己的标准。 这些标准可能包括默认权限、服务主体和自定义 CI/CD 配置。 请参阅 Databricks 资产捆绑包模板。
初始化项目后,请使用 bundle validate
命令在将捆绑包部署到工作区之前对其进行验证。
databricks bundle validate
通常,会在具有 IDE 和 Databricks CLI 版本 0.218.0 或更高版本的本地开发计算机上创建捆绑包。 借助这些工具,可以创建、验证、部署和运行捆绑包。 请参阅 Databricks 资产捆绑包开发。
将捆绑包添加到 Git 后,可以使用 Databricks Git 文件夹集成在 Azure Databricks 工作区中编辑捆绑包。 但是,不能从工作区测试或部署捆绑包。 相反,可以使用本地 IDE 进行测试,并使用 CI/CD 进行部署。
后续步骤
- 创建一个捆绑包,以将笔记本部署到 Azure Databricks 工作区,然后将部署的笔记本作为 Azure Databricks 作业运行。 请参阅使用 Databricks 资产捆绑包在 Azure Databricks 上开发作业。
- 创建一个捆绑包,以将笔记本部署到 Azure Databricks 工作区,然后将部署的笔记本作为增量实时表管道运行。 请参阅使用 Databricks 资产捆绑包开发增量实时表管道。
- 创建用于部署和运行 MLOps Stack 的捆绑包。 请参阅适用于 MLOps 堆栈的 Databricks 资产捆绑包。
- 将捆绑包添加到 GitHub 中的 CI/CD(持续集成/持续部署)工作流。 请参阅使用 Databricks 资产捆绑包和 GitHub Actions 运行 CI/CD 工作流。
- 创建一个捆绑包,用于生成、部署和调用 Python wheel 文件。 请参阅使用 Databricks 资产捆绑包开发 Python wheel 文件。
- 创建自定义模板,你和其他人可以使用该模板创建捆绑包。 请参阅 Databricks 资产捆绑包模板。
常见任务
使用以下文章完成 Databricks 资产捆绑包的常见任务。
项目 | 在想要执行以下操作时使用此文章… |
---|---|
Databricks 资产捆绑包开发 | 通过创作 databricks.yml 文件并使用 Databricks CLI 运行命令 databricks bundle validate 、databricks bundle deploy 和 databricks bundle run ,了解如何创建、验证、部署和运行捆绑包。 |
Databricks 资产捆绑包配置 | 创建捆绑包的 databricks.yml 文件和其他相关捆绑配置文件,这些配置文件需符合捆绑配置的 YAML 语法。 |
Databricks 资产捆绑包的身份验证 | 为 Azure Databricks 身份验证设置一个捆绑项目。 |
使用 Databricks 资产捆绑包在 Azure Databricks 上开发作业 | 为 Azure Databricks 作业创建、部署和运行捆绑包。 |
使用 Databricks 资产捆绑包开发增量实时表管道 | 为 Delta Live Tables 管道创建、部署和运行捆绑包。 |
适用于 MLOps Stacks 的 Databricks 资产捆绑包 | 为 MLOps 堆栈创建、部署和运行捆绑包。 |
Databricks 资产捆绑库依赖项 | 安装捆绑包需要在任何相关的 Azure Databricks 群集上运行的库。 |
Databricks 资产捆绑包部署模式 | 使用捆绑部署模式(例如 development 和 production )自动启用或禁用常见部署行为,例如暂停或取消暂停相关计划和触发器。 |
Databricks 资产捆绑包模板 | 使用模板可以更快、更轻松地创建特定类型的捆绑包,并生成更一致且可重复的结果。 |
为 Databricks 资产捆绑包中的资源设置权限 | 对特定捆绑资源的用户、组和服务主体应用精细的访问权限级别。 |
在 Databricks 资产捆绑包中动态定义项目设置 | 合并或替代捆绑包中项目的特定设置。 |
使用 Databricks 资产捆绑包和 GitHub Actions 运行 CI/CD 工作流 | 部署或运行捆绑包以响应特定的 GitHub 工作流事件,例如拉取请求或合并。 |
替代 Databricks 资产捆绑包中的群集设置 | 合并或替代捆绑包中群集的特定设置。 |
将任务添加到 Databricks 资产捆绑包中的作业 | 将任务添加到捆绑包中的作业。 |
替代 Databricks 资产捆绑包中的作业任务设置 | 合并或替代捆绑包中作业任务的特定设置。 |
使用 Databricks 资产捆绑包开发 Python wheel 文件 | 在捆绑包中生成、部署和调用 Python wheel 文件。 |