Lakeflow 声明式管道属性参考指南

本文提供有关 Azure Databricks 中 Lakeflow 声明性管道 JSON 设置规范和表属性的参考。 若要更详细地了解如何使用这些不同的属性和配置,请参阅以下文章:

Lakeflow 声明式管道配置

  • id

    类型:string

    此管道的全局唯一标识符。 该标识符由系统分配,不可更改。

  • name

    类型:string

    此管道的用户友好名称。 该名称可用于标识 UI 中的管道作业。

  • configuration

    类型:object

    要添加到运行管道的群集的 Spark 配置中的可选设置列表。 这些设置由 Lakeflow 声明性管道运行时读取,并可用于通过 Spark 配置进行管道查询。

    必须将元素的格式设置为 key:value 对的形式。

  • libraries

    类型:array of objects

    包含管道代码和所需工件的代码文件的数组。

  • clusters

    类型:array of objects

    要运行管道的群集的规范数组。

    如果未指定此设置,管道将自动选择管道的默认群集配置。

  • development

    类型:boolean

    一个标志,指示是要在 development 还是 production 模式下运行管道。

    默认值为 true

  • notifications

    类型:array of objects

    在管道更新完成、因可重试错误而失败、因不可重试错误而失败或流失败时用于电子邮件通知的可选规范数组。

  • continuous

    类型:boolean

    一个指示是否连续运行管道的标志。

    默认值为 false

  • catalog

    类型:string

    管道的默认目录的名称,其中发布了管道的所有数据集和元数据。 设置此值可为管道启用 Unity Catalog 功能。

    如果保留未设置,则管道将使用 storage 中指定的位置发布到旧的 Hive 元存储。

    在遗留发布模式下,指定包含目标架构的目录,其中发布了来自当前管道的所有数据集。 请参阅 LIVE 架构(旧版)。

  • schema

    类型:string

    管道的默认架构的名称,其中默认发布管道的所有数据集和元数据。 请参阅 设置目标目录和数据库架构

  • target(旧版)

    类型:string

    发布在当前管道中定义的所有数据集的目标架构的名称。

    设置 target 而不是 schema 将管道配置为使用旧版发布模式。 请参阅 LIVE 架构(旧版)。

  • storage(旧版)

    类型:string

    DBFS 或云存储上用于存储管道执行所需的输出数据和元数据的位置。 表和元数据存储在此位置的子目录中。

    如果未指定 storage 设置,系统默认将使用 dbfs:/pipelines/ 中的某个位置。

    创建管道后无法更改 storage 设置。

  • channel

    类型:string

    要使用的 Lakeflow 声明性管道运行时的版本。 支持的值包括:

    • preview:使用即将对运行时版本进行的更改来测试管道。
    • current,使用当前运行时版本。

    channel 字段为可选。 默认值为 current。 Databricks 建议将当前运行时版本用于生产工作负载。

  • edition

    类型 string

    用于运行管道的 Lakeflow 声明性流水线产品版本。 此设置让你可以根据管道的要求选择最佳产品版本:

    • CORE,用于运行流式处理引入工作负载。
    • PRO,用于运行流式处理引入和更改数据捕获 (CDC) 工作负载。
    • ADVANCED 用于运行流数据引入工作负载、CDC 工作负载,以及需应用 Lakeflow 声明性管道期望以实施数据质量约束的工作负载。

    edition 字段为可选。 默认值为 ADVANCED

  • photon

    类型:boolean

    一个指示是否使用 Photon 是什么? 来运行管道的标志。 Photon 是 Azure Databricks 高性能 Spark 引擎。 已启用 Photon 的管道的费率不同于非 Photon 管道。

    photon 字段为可选。 默认值为 false

  • pipelines.maxFlowRetryAttempts

    类型:int

    如果在管道更新期间发生可重试失败,则这是在管道更新失败之前重试流的最大次数

    默认值:两次重试尝试。 发生可重试失败时,Lakeflow 声明式管道运行时尝试执行流总共三次,包括原始尝试。

  • pipelines.numUpdateRetryAttempts

    类型:int

    如果在更新过程中发生可重试故障,那么在永久停止尝试更新之前,这是最大重试次数。 重试作为完整更新运行。

    此参数仅适用于在生产模式下运行的管道。 如果管道在开发模式下运行或当你在运行 Validate 更新时,则不会尝试重试。

    默认值:

    • 五个用于触发的管道。
    • 持续管道不受限制。

Lakeflow 声明式管道表属性

除了 Delta Lake 支持的表属性外,还可以设置以下表属性。

  • pipelines.autoOptimize.zOrderCols

    默认值:无

    一个可选的字符串,包含一个以逗号分隔的列名列表,用于对该表进行 z 排序。 例如: pipelines.autoOptimize.zOrderCols = "year,month"

  • pipelines.reset.allowed

    默认值:true

    控制是否允许对此表进行完全刷新。

  • pipelines.autoOptimize.managed

    默认值:true

    启用或禁用此表的自动计划优化。

管道触发器间隔

可以为整个管道或数据集声明的一部分指定管道触发器间隔。 请参阅设置连续管道的触发间隔

  • pipelines.trigger.interval

    默认值基于流类型:

    • 对于流式处理查询为 5 秒。
    • 当所有输入数据来自 Delta 源时,一分钟即可完成查询。
    • 某些数据源可能是非Delta时,完成查询需要10分钟。

    该值是一个数字加上时间单位。 以下是有效的时间单位:

    • secondseconds
    • minuteminutes
    • hourhours
    • daydays

    定义值时可以使用单数或复数单位,例如:

    • {"pipelines.trigger.interval" : "1 hour"}
    • {"pipelines.trigger.interval" : "10 seconds"}
    • {"pipelines.trigger.interval" : "30 second"}
    • {"pipelines.trigger.interval" : "1 minute"}
    • {"pipelines.trigger.interval" : "10 minutes"}
    • {"pipelines.trigger.interval" : "10 minute"}

非用户可设置的群集属性

由于 Lakeflow 声明性管道管理群集生命周期,因此许多群集设置由 Lakeflow 声明性管道设置,用户不能在管道配置或管道使用的群集策略中手动配置。 下表列出了这些设置以及它们无法手动设置的原因。

  • cluster_name

    Lakeflow 声明性管道设置用于运行管道更新的群集的名称。 这些名称无法替代。

  • data_security_mode

    access_mode

    这些值由系统自动设置。

  • spark_version

    Lakeflow 声明性管道群集在 Databricks Runtime 的自定义版本上运行,该版本会不断更新以包含最新功能。 Spark 版本与 Databricks Runtime 版本捆绑在一起,无法替代。

  • autotermination_minutes

    由于 Lakeflow 声明性管道管理群集自动终止和重用逻辑,因此无法重写群集自动终止时间。

  • runtime_engine

    尽管可以通过为管道启用 Photon 来控制此字段,但无法直接设置此值。

  • effective_spark_version

    系统会自动设置此值。

  • cluster_source

    此字段由系统设置,是只读的。

  • docker_image

    由于 Lakeflow 声明性管道管理群集生命周期,因此不能将自定义容器用于管道群集。

  • workload_type

    此值由系统设置,不能被替代。