DLT 属性参考

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

DLT 管道配置

领域
id
类型:string
此管道的全局唯一标识符。 该标识符由系统分配,不可更改。
name
类型:string
此管道的用户友好名称。 该名称可用于标识 UI 中的管道作业。
configuration
类型:object
要添加到运行管道的群集的 Spark 配置中的可选设置列表。 这些设置由 DLT 运行时读取,可用于通过 Spark 配置进行管道查询。
必须将元素的格式设置为 key:value 对的形式。
libraries
类型:array of objects
包含管道代码和所需项目的笔记本的数组。
clusters
类型:array of objects
要运行管道的群集的规范数组。
如果未指定此设置,管道将自动选择管道的默认群集配置。
development
类型:boolean
一个指示是否在其中运行管道的标志
developmentproduction 模式。
默认值为 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
要使用的 DLT 运行时版本。 支持的值包括:
  • preview:使用即将对运行时版本进行的更改来测试管道。
  • current,使用当前运行时版本。

channel 字段为可选。 默认值为
current。 Databricks 建议将当前运行时版本用于生产工作负载。
edition
类型 string
用于运行管道的 DLT 产品版本。 此设置让你可以根据管道的要求选择最佳产品版本:
  • CORE,用于运行流式处理引入工作负载。
  • PRO,用于运行流式处理引入和更改数据捕获 (CDC) 工作负载。
  • ADVANCED,用于运行流式处理引入工作负载、CDC 工作负载,以及需要 DLT 期望来强制实施数据质量约束的工作负载。

edition 字段为可选。 默认值为
ADVANCED
photon
类型:boolean
一个指示是否使用 Photon 是什么? 来运行管道的标志。 Photon 是 Azure Databricks 高性能 Spark 引擎。 已启用 Photon 的管道的费率不同于非 Photon 管道。
photon 字段为可选。 默认值是 false
pipelines.maxFlowRetryAttempts
类型:int
如果在管道更新期间发生可重试失败,则这是在管道更新失败之前重试流的最大次数
默认值:两次重试尝试。 发生可重试失败时,DLT 运行时会尝试运行流三次,其中包括最初的尝试。
pipelines.numUpdateRetryAttempts
类型:int
如果在更新过程中发生可重试故障,那么在永久停止尝试更新之前,这是最大重试次数。 重试作为完整更新运行。
此参数仅适用于在生产模式下运行的管道。 如果管道在开发模式下运行或当你在运行 Validate 更新时,则不会尝试重试。
默认值:
  • 五个用于触发的管道。
  • 持续管道不受限制。

DLT 表属性

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

表属性
pipelines.autoOptimize.zOrderCols
默认值:无
一个可选的字符串,包含一个以逗号分隔的列名列表,用于对该表进行 z 排序。 例如: pipelines.autoOptimize.zOrderCols = "year,month"
pipelines.reset.allowed
默认值:true
控制是否允许对此表进行完全刷新。
pipelines.autoOptimize.managed
默认值:true
启用或禁用此表的自动计划优化。

管道触发间隔

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

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"}

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

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

领域
cluster_name
DLT 设置用于运行管道更新的群集的名称。 这些名称无法替代。
data_security_mode
access_mode
这些值由系统自动设置。
spark_version
DLT 群集在 Databricks Runtime 的自定义版本上运行,该版本会不断更新以包含最新功能。 Spark 版本与 Databricks Runtime 版本捆绑在一起,无法替代。
autotermination_minutes
由于 DLT 管理群集自动终止和重用逻辑,因此无法重写群集自动终止时间。
runtime_engine
尽管可以通过为管道启用 Photon 来控制此字段,但无法直接设置此值。
effective_spark_version
系统会自动设置此值。
cluster_source
此字段由系统设置,是只读的。
docker_image
由于 DLT 管理群集生命周期,因此不能将自定义容器用于管道群集。
workload_type
此值由系统设置,不能被替代。