配置管道

本页介绍使用工作区 UI 的管道的基本配置。

Databricks 建议使用无服务器模式开发新的管道。 有关无服务器管道的配置说明,请参阅 “配置无服务器管道”。

本页中的配置说明使用 Unity 目录。 有关使用旧 Hive 元存储配置管道的说明,请参阅 将 Lakeflow Spark 声明性管道与旧 Hive 元存储配合使用

本页讨论管道当前默认发布模式的功能。 在 2025 年 2 月 5 日之前创建的管道可能使用旧版发布模式和 LIVE 虚拟架构。 请参阅 LIVE 架构(旧版)。

注释

该 UI 有一个以 JSON 格式显示和编辑设置的选项。 可以使用 UI 或 JSON 规范配置大多数设置。 某些高级选项仅在使用 JSON 配置时才可用。

将管道部署到新环境或使用 CLI 或 REST API 时,JSON 配置文件也很有用。

有关管道 JSON 配置设置的完整参考,请参阅 管道配置

配置新管道

若要配置新管道,请执行以下操作:

  1. 在边栏顶部,单击“新建”加号图标。,然后选择“ETL 管道”“管道”图标。

  2. 在顶部,为管道命名一个唯一的名称。

  3. 在名称下,可以看到已为你选择的默认目录和架构。 更改这些选项,为管道提供不同的默认值。

    默认 目录 和默认 架构 是在未在代码中使用目录或架构限定数据集时从中读取或写入数据集的位置。 有关详细信息,请参阅 Azure Databricks 中的 Database 对象。

  4. 选择首选选项以创建管道:

    • 从 SQL 中的示例代码开始 ,以创建新的管道和文件夹结构,包括 SQL 中的示例代码。
    • 使用 Python 中的示例代码开始 创建新的管道和文件夹结构,包括在 Python 中的示例代码。
    • 首先,使用单个转换 创建新的管道和文件夹结构,并创建一个新的空白代码文件。
    • 添加现有资产 以创建可与工作区中的现有代码文件关联的管道。
    • 创建源代码管理项目 以使用新的声明性自动化捆绑包项目创建管道,或将管道添加到现有捆绑包。

    可以在 ETL 管道中同时具有 SQL 和Python源代码文件。 创建新管道并选择示例代码的语言时,该语言仅适用于默认情况下包含在管道中的示例代码。

  5. 选择后,会重定向到新创建的管道。

    ETL 管道是使用以下默认设置创建的:

    此配置适用于许多用例,包括开发和测试,并且非常适合按计划运行的生产工作负载。 有关调度管道的详细信息,请参阅 作业的管道任务

    可以从管道工具栏调整这些设置。

或者,可以从工作区浏览器创建 ETL 管道:

  1. 在左侧窗格中单击 “工作区 ”。
  2. 选择任何文件夹,包括 Git 文件夹。
  3. 单击右上角的“ 创建 ”,然后单击 “ETL 管道”。

您还可以从作业和管道页面创建 ETL 管道:

  1. 在工作区中,单击工作流图标,然后在边栏中选择作业和管道

  2. “新建”下,单击 “ETL 管道”。

计算配置选项

Databricks 建议始终使用“增强型自动缩放”。 其他计算配置的默认值适用于许多管道。

无服务器管道没有计算配置选项。 有关无服务器管道的配置说明,请参阅 “配置无服务器管道”。

使用以下设置自定义计算配置:

  • 工作区管理员可以配置“群集策略”。 计算策略允许管理员控制用户可使用的计算选项。 请参阅 “选择计算策略”。
  • 可以选择配置“群集模式”,以“固定大小”或“旧版自动缩放”运行。 请参阅 使用自动缩放优化 Lakeflow Spark 声明性管道的群集利用率
  • 对于已启用自动缩放的工作负载,设置“最小工作节点数”和“最大工作节点数”以设置缩放行为的限制。 请参阅 管道的经典计算配置
  • 可以选择关闭 Photon 加速。 请参阅什么是 Photon?
  • 使用 群集标记 来帮助监视与管道相关的成本。 请参阅 “配置计算标记”。
  • 配置实例类型以指定用于运行管道的虚拟机类型。 请参阅 “选择实例类型”以运行管道
    • 为管道中配置的工作负载选择优化后的“工作节点类型”
    • 可以选择一个与工作节点类型不同的驱动程序类型。 这对于在工作节点类型较大且驱动程序计算利用率较低的管道中降低成本,或者对于选择更大的驱动程序类型以避免在有许多小工作节点的工作负载中出现内存不足问题很有用。

设置身份运行用户

运行身份用户允许您更改管道运行时使用的身份,以及它创建或更新表的所有权。 这在创建管道的原始用户已被停用的情况下非常有用,例如,如果他们离开了公司。 在这些情况下,管道可能会停止工作,发布的表其他人可能无法访问。 通过更新管道以其他标识(例如服务主体)运行并重新分配已发布表的所有权,可以还原访问权限并确保管道继续正常运行。 将管道作为服务主体运行被视为最佳做法,因为它们与单个用户无关,因此对于自动化工作负荷而言,它们更安全、更稳定且可靠。

所需的权限

对于进行更改的用户:

  • 管道上的CAN_MANAGE权限
  • CAN_USE 在服务主体上的角色(如果将运行方式设置为以服务主体身份运行)

对于运行方式用户或服务主体:

  • 工作区访问:

    • 工作区访问权限 以在工作区中操作
    • 可以使用 管道所用群集策略的权限
    • 工作区中的计算创建权限
  • 源代码访问:

    • 可以读取 管道源代码中包含的所有笔记本的权限
    • 如果管道使用工作区文件,则可以读取工作区文件的权限
  • Unity 目录权限 (对于使用 Unity 目录的管道):

    • 目标目录上的 USE CATALOG
    • USE SCHEMACREATE TABLE 位于目标架构上
    • MODIFY 对管道更新的现有表的权限
    • CREATE SCHEMA 如果管道创建新架构,则需要权限
  • 旧 Hive 元存储权限 (适用于使用 Hive 元存储的管道):

    • SELECT 在目标 MODIFY 数据库和表上的权限
  • 其他云存储访问 (如果适用):

    • 从源存储位置读取的权限
    • 写入目标存储位置的权限

如何设置以...身份运行的用户

可以通过管道监视页或管道编辑器中的管道设置来设置 run-as 用户。 若要从管道监视页面更改用户,请执行以下操作:

  1. 单击 “作业和管道 ”以打开管道列表,然后选择要编辑的管道的名称。
  2. 在管道监控页面,点击 “设置”
  3. “管道设置”边栏中,单击“铅笔”图标。“运行方式”旁边的编辑。
  4. 在编辑小组件中,选择以下选项之一:
    • 你自己的用户帐户
    • 一个具有 CAN_USE 权限的服务主体
  5. 单击“保存”以应用更改。

当您成功更新以某用户身份运行的账户时:

  • 管道标识将更改为对所有将来运行使用新的用户或服务主体。
  • 在 Unity Catalog 管道中,管道发布的表的所有者将被更新为与新的运行身份相匹配。
  • 未来的管道更新将使用新的运行身份的权限和凭据。
  • 使用新标识自动重启连续管道。 触发的管道不会自动重启,运行方式更改可能会中断活动更新

注释

如果 run-as 更新失败,将收到一条错误消息,说明失败的原因。 常见问题包括对服务主体的权限不足。

其他配置注意事项

以下配置选项也可用于管道:

选择产品版本

选择具有管道要求的最佳功能的 Lakeflow Spark 声明性管道产品版本。 可以使用以下产品版本:

  • Core,用于运行流式处理引入工作负载。 请选择Core版本,如果您的管道不需要高级功能,例如变更数据捕获(CDC)或 Lakeflow Spark 声明性管道期望。
  • Pro,用于运行流式处理引入和 CDC 工作负载。 Pro 产品版本支持所有 Core 功能,此外还支持需要根据源数据的更改更新表的工作负载。
  • Advanced,用于运行流式处理引入工作负载、CDC 工作负载,以及需要“期望”功能的工作负载。 Advanced 产品版本支持 Core 版本和 Pro 版本的功能,并包含 Lakeflow Spark 声明性管道预期的数据质量约束。

在创建或编辑管道时可以选择产品版本。 可为每个管道选择不同的版本。 请参阅 Lakeflow Spark 声明性管道产品页

注意:如果管道包含所选产品版本不支持的功能(如预期),则会收到一条错误消息,说明错误的原因。 然后,可以编辑该管道以选择适当的版本。

配置源代码

可以使用 Lakeflow 管道编辑器中的资产浏览器来配置定义管道的源代码。 管道源代码以 SQL 或 Python 脚本的形式定义,并存储在工作区文件中。 创建或编辑管道时,可以添加一个或多个文件。 默认情况下,管道源代码位于 transformations 管道根文件夹中的文件夹。

由于 Lakeflow Spark 声明性管道自动分析数据集依赖项以构造管道的处理图,因此你可以按任意顺序添加源代码资产。

有关使用 Lakeflow 管道编辑器的更多详细信息,请参阅 使用 Lakeflow 管道编辑器开发和调试 ETL 管道

管理使用Python的管道的外部依赖项

管道支持在管道中使用外部依赖项,例如Python包和库。 若要了解有关使用依赖项的选项和建议,请参阅 Manage Python管道的依赖项

使用存储在Azure Databricks工作区中的Python模块

除了在管道源代码文件中实现Python代码外,还可以使用 Databricks Git 文件夹或工作区文件将代码存储为Python模块。 将代码存储为Python模块特别有用,尤其是在您希望在多个管道或同一框架的多个笔记本中使用常见功能时。 若要了解如何将Python模块用于管道,请参阅 git 文件夹或工作区文件中的 Import Python 模块