使用 Databricks 资产捆绑包的 CI/CD

Azure Databricks 建议将 Databricks 资产捆绑包 用于 CI/CD,从而简化 Azure Databricks 平台复杂数据、分析和 ML 项目的开发和部署。 通过捆绑包,可以轻松管理许多自定义配置,并将项目的生成、测试和部署自动化到 Azure Databricks 开发、过渡和生产工作区。

有关推荐的 CI/CD 最佳做法和捆绑包的工作流的详细信息,请参阅 Databricks 上的最佳做法和建议的 CI/CD 工作流

有关 Databricks 中 CI/CD 的其他方法的信息,请参阅 Azure Databricks 上的 CI/CD

如何在 Azure Databricks 上使用 Databricks 资产捆绑包作为 CI/CD 管道的一部分?

可以使用 Databricks 资产捆绑包来定义和以编程方式管理 Azure Databricks CI/CD 实现,它通常包括:

  • 笔记本:Azure Databricks 笔记本通常是数据工程和数据科学工作流的关键部分。 可以对笔记本使用版本控制,还可以在 CI/CD 管道中验证和测试它们。 可以针对笔记本运行自动测试,以检查它们是否按预期运行。
  • :管理运行已部署代码所需的 库依赖项 。 对库使用版本控制,并将其包含在自动测试和验证中。
  • 工作流Lakeflow 作业 由作业组成,可用于使用笔记本或 Spark 作业计划和运行自动化任务。
  • 数据管道:还可以使用 Lakeflow 声明性管道(Databricks 中用于声明数据管道的框架)在 CI/CD 自动化中包含数据管道。
  • 基础结构:基础结构配置包括针对目标环境的群集、工作区和存储的定义和预配信息。 基础结构更改可以作为 CI/CD 管道的一部分进行验证和测试,确保它们一致且无错误。

包含捆绑包的 Azure Databricks CI/CD 管道的常见流为:

  1. 存储:将 Azure Databricks 代码和笔记本存储在 Git 等版本控制系统中。 这样,就可以跟踪一段时间内的更改,并与其他团队成员协作。 请参阅如何在 CI/CD 中使用 Databricks Git 文件夹和捆绑 Git 配置。

  2. 代码:在工作区中的 Azure Databricks 笔记本中或使用外部 IDE 在本地开发代码和单元测试。 Azure Databricks 提供了 一个 Visual Studio Code 扩展 ,可以轻松地开发和部署对 Azure Databricks 工作区的更改。

  3. 生成:使用 Databricks 资产捆绑包设置在部署过程中自动生成某些项目。 请参阅项目。 此外,Pylint 通过使用 Databricks Labs pylint 插件进行扩展,帮助强制实施编码标准并检测 Databricks 笔记本和应用程序代码中的 bug。

  4. 部署:使用 Databricks 资产捆绑包和 Azure DevOps、Jenkins 或 GitHub Actions 等工具部署对 Azure Databricks 工作区的更改。 请参阅 Databricks 资产捆绑包部署模式。 有关 GitHub Actions 示例,请参阅 GitHub Actions

  5. 测试:开发和运行自动测试,以使用 pytest 等工具验证代码更改。 为了测试与工作区 API 的集成, Databricks Labs pytest 插件 允许你在测试完成后创建工作区对象并清理它们。

  6. 运行:将 Databricks CLI 与 Databricks 资产捆绑包结合使用,在 Azure Databricks 工作区中自动运行。 请参阅运行作业或管道

  7. 监视:使用 Azure Monitor 或 Datadog 等工具监视 Azure Databricks 中的代码和工作流的性能。 这有助于识别并解决生产环境中出现的任何问题。

  8. 迭代:进行小型频繁迭代,以改进和更新数据工程或数据科学项目。 与大型更改相比,小型更改更易于回滚。