Delta Live Tables 属性参考

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

Delta Live Tables 管道配置

字段
id

类型:string

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

类型:string

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

类型:string

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

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

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

类型:object

要添加到运行管道的群集的 Spark 配置中的可选设置列表。 这些设置由增量实时表运行时读取,将通过 Spark 配置供管道查询使用。

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

类型:array of objects

包含管道代码和所需项目的笔记本的数组。
clusters

类型:array of objects

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

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

类型:boolean

一个指示是否在其中运行管道的标志
developmentproduction 模式。

默认值为 true
notifications

类型:array of objects

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

类型:boolean

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

默认值是 false
target

类型:string

用于保存管道输出数据的数据库的名称。 通过配置 target 设置可以通过 Azure Databricks UI 查看和查询管道输出数据。
channel

类型:string

要使用的增量实时表运行时的版本。 支持的值包括:

* preview,使用运行时版本即将推出的更改来测试管道。
* current,使用当前运行时版本。

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

键入 string

用于运行管道的增量实时表产品版本。 此设置让你可以根据管道的要求选择最佳产品版本:

* CORE,用于运行流式处理引入工作负载。
* PRO,用于运行流式处理引入和变更数据捕获 (CDC) 工作负载。
* ADVANCED,用于运行流式引入工作负载、CDC 工作负载和需要增量实时表预期来强制实施数据质量约束的工作负载。

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

类型:boolean

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

photon 字段为可选。 默认值为 false
pipelines.maxFlowRetryAttempts

类型:int

发生可重试失败时,在管道更新失败之前重试流的最大尝试次数。

默认值为“2”。 默认情况下,当发生可重试失败时,增量实时表运行时会尝试运行流三次(包括初次尝试)。
pipelines.numUpdateRetryAttempts

类型:int

发生可重试故障时,在更新失败之前重试更新的最大尝试次数。 重试作为完整更新运行。

默认值为 5。 此参数仅适用于在生产模式下运行的已触发更新。 管道在开发模式下运行时不会进行重试。

Delta Live Tables 表属性

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

表属性
pipelines.autoOptimize.managed

默认:true

启用或禁用此表的自动计划优化。
pipelines.autoOptimize.zOrderCols

默认值:无

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

默认:true

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

CDC 表属性

注意

这些用于控制逻辑删除管理行为的属性已弃用,并替换为管道设置。 任何现有或新管道都应使用新的管道设置。 请参阅 SCD 类型 1 查询的控制逻辑删除管理

已添加以下表属性来控制在使用 CDC 时针对 DELETE 事件的逻辑删除管理行为:

表属性
pipelines.cdc.tombstoneGCThresholdInSeconds

默认值:5 分钟

设置此值以匹配无序数据之间的最高预期间隔。
pipelines.cdc.tombstoneGCFrequencyInSeconds

默认值:60 秒

控制检查以清理无效标记的频率。

请参阅在 Delta Live Tables 中使用 APPLY CHANGES API 简化变更数据捕获

管道触发间隔

可以为整个 Delta Live Tables 管道指定管道触发器间隔,也可以将该间隔指定为数据集声明的一部分。 请参阅管道触发器间隔

pipelines.trigger.interval
默认值基于流类型:

* 对于流式处理查询,该值为 5 秒。
* 当所有输入数据都来自 Delta 源时,完整查询需要 1 分钟。
* 当某些数据源可能不是 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"}

不可由用户设置的群集属性

由于 Delta Live Tables 管理群集生命周期,因此无论是在管道配置中还是在管道使用的群集策略中,许多群集设置都是由 Delta Live Tables 设置的,不能由用户手动配置。 下表列出了这些设置以及它们无法手动设置的原因。

字段
cluster_name

Delta Live Tables 设置用于运行管道更新的群集的名称。 这些名称无法替代。
data_security_mode
access_mode

这些值由系统自动设置。
spark_version

增量实时表群集在自定义版本的 Databricks Runtime 上运行,该版本会持续更新以包含最新功能。 Spark 版本与 Databricks Runtime 版本捆绑在一起,无法替代。
autotermination_minutes

由于 Delta Live Tables 管理群集自动终止和重用逻辑,因此无法替代群集自动终止时间。
runtime_engine

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

系统会自动设置此值。
cluster_source

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

由于 Delta Live Tables 管理群集生命周期,因此不能将自定义容器与管道群集配合使用。
workload_type

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