Databricks 资产捆绑包开发工作流
重要
此功能目前以公共预览版提供。
本文介绍了Databricks 资产捆绑包开发的工作任务序列。 请参阅什么是 Databricks 资产捆绑包?
要创建、验证、部署和运行捆绑包,请完成以下步骤。
步骤 1:创建捆绑包
可通过三种方法开始创建捆绑包:
- 使用默认捆绑包模板。
- 使用自定义捆绑包模板。
- 手动创建捆绑包。
使用默认捆绑包模板
若要使用 Azure Databricks 默认捆绑包模板创建可进一步自定义的初学者捆绑包,请使用 Databricks CLI 0.205 或更高版本来运行 bundle init
命令,以便能够从可用模板列表中进行选择:
databricks bundle init
可以在 databricks/cli 和 databricks/mlops-stacks Github 公共存储库中查看默认捆绑包模板的源。
使用自定义捆绑包模板
要使用 Azure Databricks 默认捆绑包模板以外的捆绑包模板,必须知道本地路径或远程捆绑包模板位置的 URL。 使用 Databricks CLI 0.205 或更高版本运行 bundle init
命令,如下所示:
databricks bundle init <project-template-local-path-or-url>
有关此命令的详细信息,请参阅 Databricks 资产捆绑包模板。 有关特定捆绑包模板的信息,请参阅捆绑包模板提供程序的文档。
手动创建捆绑包
要手动创建捆绑包,而不是使用捆绑包模板创建,请在本地计算机上创建项目目录,或使用第三方 Git 提供程序创建空存储库。
在你的目录或存储库中,创建一个或多个捆绑包配置文件作为输入。 这些文件以 YAML 格式表示。 必须至少有一个(且只有一个)名为 databricks.yml
的捆绑包配置文件。 必须在 databricks.yml
文件的 include
映射中引用其他捆绑包配置文件。
若要更轻松地快速地创建符合 Databricks 资产捆绑包配置语法的 YAML 文件,可以使用支持 YAML 文件 和 JSON 架构文件的 Visual Studio Code、PyCharm Professional 或 IntelliJ IDEA Ultimate 等工具,如下所示:
Visual Studio Code
将 YAML 语言服务器支持添加到 Visual Studio Code,例如,通过从 Visual Studio Code Marketplace 安装 YAML 扩展。
使用 Databricks CLI 0.205 或更高版本运行
bundle schema
命令并将输出重定向到 JSON 文件,生成 Databricks 资产捆绑包配置 JSON 架构文件。 例如,在当前目录中生成名为bundle_config_schema.json
的文件,如下所示:databricks bundle schema > bundle_config_schema.json
使用 Visual Studio Code 在当前目录中创建或打开捆绑包配置文件。 此文件必须命名为
databricks.yml
。将以下注释添加到捆绑包配置文件的开头:
# yaml-language-server: $schema=bundle_config_schema.json
注意
在前面的注释中,如果 Databricks 资产捆绑包配置 JSON 架构文件位于不同的路径中,请将
bundle_config_schema.json
替换为架构文件的完整路径。使用之前添加的 YAML 语言服务器功能。 有关详细信息,请参阅 YAML 语言服务器的文档。
Pycharm 专业版
使用 Databricks CLI 0.205 或更高版本运行
bundle schema
命令并将输出重定向到 JSON 文件,生成 Databricks 资产捆绑包配置 JSON 架构文件。 例如,在当前目录中生成名为bundle_config_schema.json
的文件,如下所示:databricks bundle schema > bundle_config_schema.json
配置 PyCharm 以识别捆绑包配置 JSON 架构文件,然后按照“配置自定义 JSON 架构”中的说明完成 JSON 架构映射。
使用 PyCharm 创建或打开捆绑包配置文件。 此文件必须命名为
databricks.yml
。 键入时,PyCharm 会检查 JSON 架构语法和格式,并提供代码补全提示。
Intellij IDEA Ultimate
使用 Databricks CLI 0.205 或更高版本运行
bundle schema
命令并将输出重定向到 JSON 文件,生成 Databricks 资产捆绑包配置 JSON 架构文件。 例如,在当前目录中生成名为bundle_config_schema.json
的文件,如下所示:databricks bundle schema > bundle_config_schema.json
配置 IntelliJ IDEA 以识别捆绑包配置 JSON 架构文件,然后按照“配置自定义 JSON 架构”中的说明完成 JSON 架构映射。
使用 IntelliJ IDEA 创建或打开捆绑包配置文件。 此文件必须命名为
databricks.yml
。 键入时,IntelliJ IDEA 会检查 JSON 架构语法和格式,并提供代码补全提示。
步骤 2:填充捆绑包配置文件
捆绑包配置文件通过指定工作区详细信息、项目名称、位置名称、作业详细信息和管道详细信息等设置,定义 Azure Databricks 工作流。 有关捆绑配置文件的详细信息,请参阅 Databricks 资产捆绑包配置。
提示
可以使用 bundle generate
命令为现有资源自动生成捆绑包配置,然后使用 bundle deployment bind
该命令将捆绑配置链接到工作区中的资源。 请参阅生成捆绑配置文件和绑定捆绑包资源。
步骤 3:验证捆绑包配置文件
在部署项目或者运行作业或管道之前,应确保捆绑包配置文件的语法正确。 为此,请从捆绑包配置文件所在的同一目录运行 bundle validate
命令。 此目录也被称为 捆绑包根目录。
databricks bundle validate
如果配置验证成功,此命令将输出表示捆绑包的 JSON 有效负载。
步骤 4:部署捆绑包
在部署捆绑包之前,请确保远程工作区已启用工作区文件。 请参阅什么是工作区文件?。
若要将任意指定的本地项目部署到远程工作区,请从捆绑包根目录运行 bundle deploy
命令。 如果未指定命令选项,Databricks CLI 将使用捆绑配置文件中声明的默认目标:
databricks bundle deploy
提示
可以通过设置 BUNDLE_ROOT
环境变量,在捆绑包根目录之外运行 databricks bundle
命令。 如果未设置此环境变量,则 databricks bundle
命令会尝试通过在当前工作目录中搜索来查找捆绑包根目录。
要在特定目标的上下文中部署项目,请指定 -t
(或 --target
)选项以及捆绑包配置文件中声明的目标名称。 例如,对于使用名称dev
声明的目标:
databricks bundle deploy -t dev
步骤 5:运行捆绑包
若要运行特定的作业或管道,请从捆绑包根目录运行 bundle run
命令。 必须指定捆绑包配置文件中声明的作业或管道。 如果未指定 -t
选项,则会使用捆绑包配置文件中声明的默认目标。 例如,要在默认目标的上下文中运行名为hello_job
的作业,请使用以下命令:
databricks bundle run hello_job
要在使用名称dev
声明的目标的上下文中运行名为hello_job
的作业,请使用以下命令:
databricks bundle run -t dev hello_job
步骤 6:销毁捆绑包
如果要删除以前部署的作业、管道和项目,请从捆绑包根目录运行 bundle destroy
命令。 该命令会删除捆绑包配置文件中定义的所有以前部署的作业、管道和项目:
databricks bundle destroy
默认情况下,系统会提示你是否确认要永久删除以前部署的作业、管道和项目。 若要跳过这些提示并执行自动永久删除,请将 --auto-approve
选项添加到 bundle destroy
命令。