Databricks 资产捆绑包开发工作流

重要

此功能目前以公共预览版提供。

本文介绍了Databricks 资产捆绑包开发的工作任务序列。 请参阅什么是 Databricks 资产捆绑包?

要创建、验证、部署和运行捆绑包,请完成以下步骤。

步骤 1:创建捆绑包

可通过三种方法开始创建捆绑包:

  1. 使用默认捆绑包模板。
  2. 使用自定义捆绑包模板。
  3. 手动创建捆绑包。

使用默认捆绑包模板

若要使用 Azure Databricks 默认捆绑包模板创建可进一步自定义的初学者捆绑包,请使用 Databricks CLI 0.205 或更高版本来运行 bundle init 命令,以便能够从可用模板列表中进行选择:

databricks bundle init

可以在 databricks/clidatabricks/mlops-stacks Github 公共存储库中查看默认捆绑包模板的源。

跳至步骤 2:填充捆绑包配置文件

使用自定义捆绑包模板

要使用 Azure Databricks 默认捆绑包模板以外的捆绑包模板,必须知道本地路径或远程捆绑包模板位置的 URL。 使用 Databricks CLI 0.205 或更高版本运行 bundle init 命令,如下所示:

databricks bundle init <project-template-local-path-or-url>

有关此命令的详细信息,请参阅 Databricks 资产捆绑包模板。 有关特定捆绑包模板的信息,请参阅捆绑包模板提供程序的文档。

跳至步骤 2:填充捆绑包配置文件

手动创建捆绑包

要手动创建捆绑包,而不是使用捆绑包模板创建,请在本地计算机上创建项目目录,或使用第三方 Git 提供程序创建空存储库。

在你的目录或存储库中,创建一个或多个捆绑包配置文件作为输入。 这些文件以 YAML 格式表示。 必须至少有一个(且只有一个)名为 databricks.yml 的捆绑包配置文件。 必须在 databricks.yml 文件的 include 映射中引用其他捆绑包配置文件。

若要更轻松地快速地创建符合 Databricks 资产捆绑包配置语法的 YAML 文件,可以使用支持 YAML 文件 和 JSON 架构文件的 Visual Studio CodePyCharm ProfessionalIntelliJ IDEA Ultimate 等工具,如下所示:

Visual Studio Code

  1. 将 YAML 语言服务器支持添加到 Visual Studio Code,例如,通过从 Visual Studio Code Marketplace 安装 YAML 扩展。

  2. 使用 Databricks CLI 0.205 或更高版本运行 bundle schema 命令并将输出重定向到 JSON 文件,生成 Databricks 资产捆绑包配置 JSON 架构文件。 例如,在当前目录中生成名为bundle_config_schema.json的文件,如下所示:

    databricks bundle schema > bundle_config_schema.json
    
  3. 使用 Visual Studio Code 在当前目录中创建或打开捆绑包配置文件。 此文件必须命名为 databricks.yml

  4. 将以下注释添加到捆绑包配置文件的开头:

    # yaml-language-server: $schema=bundle_config_schema.json
    

    注意

    在前面的注释中,如果 Databricks 资产捆绑包配置 JSON 架构文件位于不同的路径中,请将 bundle_config_schema.json 替换为架构文件的完整路径。

  5. 使用之前添加的 YAML 语言服务器功能。 有关详细信息,请参阅 YAML 语言服务器的文档。

Pycharm 专业版

  1. 使用 Databricks CLI 0.205 或更高版本运行 bundle schema 命令并将输出重定向到 JSON 文件,生成 Databricks 资产捆绑包配置 JSON 架构文件。 例如,在当前目录中生成名为bundle_config_schema.json的文件,如下所示:

    databricks bundle schema > bundle_config_schema.json
    
  2. 配置 PyCharm 以识别捆绑包配置 JSON 架构文件,然后按照“配置自定义 JSON 架构”中的说明完成 JSON 架构映射。

  3. 使用 PyCharm 创建或打开捆绑包配置文件。 此文件必须命名为 databricks.yml。 键入时,PyCharm 会检查 JSON 架构语法和格式,并提供代码补全提示。

Intellij IDEA Ultimate

  1. 使用 Databricks CLI 0.205 或更高版本运行 bundle schema 命令并将输出重定向到 JSON 文件,生成 Databricks 资产捆绑包配置 JSON 架构文件。 例如,在当前目录中生成名为bundle_config_schema.json的文件,如下所示:

    databricks bundle schema > bundle_config_schema.json
    
  2. 配置 IntelliJ IDEA 以识别捆绑包配置 JSON 架构文件,然后按照“配置自定义 JSON 架构”中的说明完成 JSON 架构映射。

  3. 使用 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 命令。