使用 Databricks 资产捆绑包开发 Lakeflow Spark 声明式流水线

Databricks 资产捆绑包(也称为 捆绑包)使你能够以编程方式验证、部署和运行 Azure Databricks 资源,例如 Lakeflow Spark 声明性管道。 请参阅什么是 Databricks 资产捆绑包?

本页介绍如何创建捆绑包以编程方式管理管道。 请参阅 Lakeflow Spark 声明式管道。 捆绑包是使用 Databricks 资产捆绑包的 Python 默认模板创建的,该模板定义了一个 ETL 管道和用于执行该管道的作业。 然后在 Azure Databricks 工作区中验证、部署和运行已部署的管道。

提示

如果已有使用要移动到捆绑包的 Azure Databricks 用户界面或 API 创建的管道,则必须在捆绑包的配置文件中定义它们。 Databricks 建议先使用以下步骤创建捆绑包,然后将配置和其他源添加到捆绑包。 请参阅 使用 UI 检索现有管道定义

要求

  • Databricks CLI 版本 0.276.0 或更高版本。 若要检查安装的 Databricks CLI 版本,请运行命令 databricks -v。 若要安装 Databricks CLI,请参阅 安装或更新 Databricks CLI
  • 需要 uv 才能运行测试和从 IDE 安装此项目的依赖项。
  • 远程工作区必须启用工作区文件。 请参阅什么是工作区文件?
  • 管道中表的现有目录。 请参阅创建目录

(可选)安装 Python 模块以支持本地管道开发

Databricks 提供了一个 Python 模块,用于在 IDE 中编写代码时提供语法检查、自动完成和数据类型检查来帮助本地开发 Lakeflow Spark 声明性管道代码。

可在 PyPi 上找到用于本地开发的 Python 模块。 若要安装模块,请参阅 DLT 的 Python 存根

步骤 1:设置身份验证

首先,在开发计算机和 Azure Databricks 工作区的 Databricks CLI 之间设置身份验证。 此页假定你想要使用 OAuth 用户到机器(U2M)身份验证,以及一个名为 DEFAULT 的相应 Azure Databricks 配置文件进行身份验证。

注意

U2M 身份验证适用于实时尝试这些步骤。 对于完全自动化的工作流,Databricks 建议改用 OAuth 计算机到计算机 (M2M) 身份验证。 请参阅 授权服务主体使用 OAuth 访问 Azure Databricks 中的 M2M 身份验证设置说明。

  1. 通过为每个目标工作区运行以下命令,使用 Databricks CLI 在本地启动 OAuth 令牌管理。

    在以下命令中,将 <workspace-url> 替换为 Azure Databricks 每工作区 URL,例如 https://adb-1234567890123456.7.azuredatabricks.net

    databricks auth login --host <workspace-url>
    
  2. Databricks CLI 会提示您将输入的信息另存为 Azure Databricks 配置文件。 按 Enter 接受建议的配置文件名称,或者输入新配置文件或现有配置文件的名称。 使用输入的信息覆盖同名的任何现有配置文件。 可以使用配置文件跨多个工作区快速切换身份验证上下文。

    若要获取任何现有配置文件的列表,请在单独的终端或命令提示符中使用 Databricks CLI 来运行 databricks auth profiles 命令。 要查看特定配置文件的现有设置,请运行命令 databricks auth env --profile <profile-name>

  3. 在 Web 浏览器中,按照屏幕上的说明登录到 Azure Databricks 工作区。

  4. 要查看配置文件的当前 OAuth 令牌值和令牌即将过期的时间戳,请运行以下命令之一:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    如果你有多个配置文件有相同的 --host 值,则可能需要同时指定 --host-p 选项,以便 Databricks CLI 找到正确的匹配 OAuth 令牌信息。

步骤 2:创建捆绑包

使用默认 Python 捆绑包项目模板来初始化捆绑包。

  1. 使用终端或命令提示符切换到本地开发计算机上的目录,该目录中包含模板生成的捆绑。

  2. 使用 Databricks CLI 运行 bundle init 命令:

    databricks bundle init
    
  3. 对于 Template to use,可按 default-python 以保留 Enter 的默认值。

  4. 对于 Unique name for this project,请保留 my_project 的默认值,或键入其他值,然后按 Enter。 这将确定此捆绑包的根目录的名称。 此根目录是在当前工作目录中创建的。

  5. 对于“Include a job that runs a notebook”,选择“no”并按“Enter”。 (与此选项关联的示例笔记本中没有管道代码。

  6. 对于 Include an ETL pipeline,可按 yes 以保留 Enter 的默认值。 这会添加示例管道代码和管道定义。

  7. 对于“Include a stub (sample) Python package”,选择“no”并按“Enter”。

  8. 对于“Use serverless”,选择“yes”并按“Enter”。 这会指示 Databricks CLI 将捆绑包配置为在无服务器计算上运行。

  9. 对于 Default catalog for any tables created by this project [hive_metastore],请输入现有 Unity 目录目录的名称。

  10. 对于 Use a personal schema for each user working on this project.,请选择 yes

步骤 3:浏览捆绑包

要查看模板生成的文件,请切换到新创建的捆绑包的根目录。 特别感兴趣的文件包括:

  • databricks.yml:此文件指定捆绑包的编程名称,包括对捆绑包文件的引用、定义目录和架构变量,以及指定目标工作区的设置。
  • resources/sample_job.ymlresources/<project-name>_etl_pipeline.yml:这些文件定义包含管道刷新任务和管道设置的作业。 有关管道设置的信息,请参阅 管道
  • src/:此文件夹包含示例管道的源文件、浏览和转换。
  • tests/fixtures/:这些文件夹包含管道的示例单元测试,以及数据集的固定装置。
  • README.md:此文件包含有关入门和使用此捆绑模板的其他信息。

步骤 4:验证捆绑包配置

现在检查捆绑配置是否有效。

  1. 在根目录中,使用 Databricks CLI 运行以下命令 bundle validate

    databricks bundle validate
    
  2. 如果返回了捆绑包配置的摘要,则表示验证成功。 如果返回了任何错误,请修复错误,然后重复此步骤。

步骤 5:将捆绑包部署到远程工作区

接下来,将捆绑包部署到远程 Azure Databricks 工作区,并验证工作区中的管道。

  1. 在捆绑根目录下,使用 Databricks CLI 运行以下命令 bundle deploy

    databricks bundle deploy --target dev
    

    注意

    默认模板包括每天运行管道的作业,但在目标 dev 部署模式下,此作业会被暂停。 请参阅 Databricks 资产捆绑包部署模式

  2. 请确认包是否已部署:

    1. 在 Azure Databricks 工作区的边栏中,单击“工作区”
    2. 单击“ 用户 ><your-username>>.bundle ”文件夹,找到捆绑项目。
  3. 检查管道是否已创建:

    1. 在 Azure Databricks 工作区的边栏中,单击作业和管道
    2. (可选)选择管道归我所有筛选器。
    3. 单击 [dev <your-username>] <project-name>_etl

如果在此步骤之后对捆绑包进行了任何更改,则应重复步骤 4-5 以检查捆绑包配置是否仍然有效,然后重新部署项目。

步骤 6:运行部署的管道

现在,从命令行触发工作区中的运行管道。

  1. 在根目录中,使用 Databricks CLI 运行 bundle run 命令,用你的项目名称替换 <project-name>

    databricks bundle run --target dev <project-name>_etl
    
  2. 复制终端中显示的 Update URL 值,并将该值粘贴到 Web 浏览器中以打开 Azure Databricks 工作区。

  3. 在 Azure Databricks 工作区中,管道运行成功完成后,单击具体化视图以查看每个视图的详细信息。

如果在此步骤之后对捆绑包进行了任何更改,则应重复步骤 4-6 以检查捆绑包配置是否仍然有效,重新部署项目,然后运行重新部署的项目。

步骤 7:运行测试

最后,使用 pytest 在本地运行测试。

uv run pytest

步骤 8:清理

在此步骤中,您需要从工作区中删除已部署的组件包和管道。

  1. 在根目录中,使用 Databricks CLI 运行以下命令 bundle destroy

    databricks bundle destroy --target dev
    
  2. 当系统提示您永久销毁由管道管理的资源、管道、表和视图时,请键入 y 并按 Enter

  3. 如果还需要从开发计算机中删除捆绑包,现在可以删除本地项目目录。