Delta Live Tables设置

Delta Live Tables设置指定一个或多个实现管道的笔记本,并指定如何在环境(例如开发、登台或生产)中运行管道的参数。动态表(Delta Live Tables)设置表示为JSON,可以在Delta Live Tables用户界面

设置

字段

id

类型:字符串

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

的名字

类型:字符串

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

存储

类型:字符串

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

存储设置未指定时,系统将默认在某个位置dbfs: /管道/

存储创建管道后,不能更改设置。

配置

类型:对象

要添加到将运行管道的集群的Spark配置中的可选设置列表。这些设置由Delta Live Tables运行时读取,并可用于通过Spark配置进行流水线查询。

元素必须格式化为键:值对。

看到参数化管道的例子配置对象。

类型:数组对象

包含管道代码和所需工件的记事本数组。看到在管道中配置多个笔记本举个例子。

集群

类型:数组对象

用于运行管道的集群的规范数组。看到集群配置更多细节。

如果没有指定,管道将自动为管道选择默认的集群配置。

发展

类型:布尔

指示是否运行管道的标志发展生产模式。看到开发与生产模式

默认值为真正的

连续

类型:布尔

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

默认值为

目标

类型:字符串

用于持久化管道输出数据的数据库的名称。配置目标设置后,您可以在Databricks界面查看和查询管道输出数据。

通道

类型:字符串

要使用的Delta Live Tables运行时的版本。支持的值为:

  • 预览使用即将对运行时版本进行的更改来测试管道。

  • 当前的使用当前运行时版本。

通道字段可选。默认值为当前的.Databricks建议对生产工作负载使用当前运行时版本。

类型字符串

Delta Live table产品版本运行管道。此设置允许您根据管道的需求选择最佳的产品版本:

  • 核心运行流摄取工作负载。

  • 来运行流摄取和更改数据捕获(CDC)工作负载。

  • 先进的来运行流摄取工作负载、CDC工作负载和需要Delta Live Tables期望来执行数据质量约束的工作负载。

字段可选。默认值为先进的

光子

类型:布尔

指示是否使用的标志光子运行时运行管道。Photon是Databricks高性能Spark引擎。启用Photon的管道与非Photon管道的收费速率不同。

光子字段可选。默认值为

pipelines.maxFlowRetryAttempts

类型:int

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

缺省值为2。默认情况下,当可重试失败发生时,Delta Live Tables运行时将尝试运行流三次,包括最初的尝试。

管道触发间隔

你可以使用pipelines.trigger.interval控制更新表或整个管道的流的触发间隔。由于触发的管道只处理每个表一次,因此pipelines.trigger.interval仅用于连续的管道

Databricks推荐设置pipelines.trigger.interval由于流查询和批处理查询的默认值不同,所以在单个表上。仅当您的处理需要控制整个管道图的更新时,才在管道上设置该值。

你设置pipelines.trigger.interval在桌子上使用spark_conf,或在SQL:

@dlt表格spark_conf“pipelines.trigger.interval”“10秒”def<函数-的名字>():返回<查询>
管道触发时间间隔“10秒”创建刷新生活表格TABLE_NAME作为选择...

设置pipelines.trigger.interval,将其添加到配置对象的管道设置:

“配置”“pipelines.trigger.interval”“10秒”

pipelines.trigger.interval

默认值是基于流类型:

  • 5秒用于流查询。

  • 当所有输入数据都来自Delta源时,完成查询需要一分钟。

  • 当某些数据源可能是非delta数据源时,完成查询需要10分钟。看到连续管道中的表和视图

取值为数字+时间单位。以下是有效的时间单位:

  • 第二个

  • 一分钟分钟

  • 小时小时

  • 一天

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

  • {“pipelines.trigger.interval”“1一小时”}

  • {“pipelines.trigger.interval”“十秒"}

  • {“pipelines.trigger.interval”“30第二个“}

  • {“pipelines.trigger.interval”“1分钟”}

  • {“pipelines.trigger.interval”“十分钟”}

  • {“pipelines.trigger.interval”“十分钟”}

集群配置

的JSON格式,可以配置托管管道使用的集群创建集群API。您可以为两种不同的集群类型指定配置默认的执行所有处理的集群维护运行日常维护任务的集群。属性标识每个集群标签字段。

指定集群属性是可选的,系统对任何缺失的值使用默认值。

请注意

  • 集群配置中不支持设置Spark版本。Delta Live Tables集群运行在Databricks Runtime的自定义版本上,该版本不断更新以包含最新的特性。手动设置版本可能导致管路故障。

  • 因为Delta Live Tables集群在不使用时自动关闭,引用设置的集群策略autotermination_minutes在您的集群配置中导致错误。要控制集群关闭行为,可以使用开发或生产模式或使用pipelines.clusterShutdown.delay在管道配置中进行设置。下面的示例设置pipelines.clusterShutdown.delay取值范围为60秒。

    “配置”“pipelines.clusterShutdown.delay”“六十年代”

    生产模式启用时,默认值为pipelines.clusterShutdown.delay0.当发展模式已启用,默认值为2小时

  • 如果你设置num_workers集群设置为0时,集群创建为单节点集群.配置自动伸缩集群和设置min_workers到0和max_workers到0也会创建一个单节点集群。

    如果您配置了一个自动伸缩集群,并且只设置min_workers为0,则该集群未创建为单节点集群。在终止之前,集群始终至少有一个活动worker。

    在Delta Live Tables中创建单节点集群的示例集群配置:

    “集群”“标签”“默认”“num_workers”0

请注意

如果需要实例概要文件或其他配置来访问存储位置,请为默认集群和维护集群指定它。

默认集群和维护集群的配置示例:

“集群”“标签”“默认”“node_type_id”“c5.4xlarge”“driver_node_type_id”“c5.4xlarge”“num_workers”20.“spark_conf”“spark.databricks.io.parquet.nativeReader.enabled”“假”},“aws_attributes”“instance_profile_arn”“攻击:aws:…”},“标签”“维护”“aws_attributes”“instance_profile_arn”“攻击:aws:…”

云存储配置

使用AWS实例概要配置访问AWS中的S3存储.您可以通过编辑管道集群的JSON设置来配置AWS实例概要。您可以添加实例概要配置创建编辑使用Delta Live Tables API或在Delta Live Tables UI中的管道:

  1. 管道的细节页的管道,单击设置按钮。的管道的设置页面出现。

  2. 单击JSON按钮。

  3. 中输入实例概要文件配置aws_attributes.instance_profile_arn集群配置中的字段:

“集群”“标签”“默认”“aws_attributes”“instance_profile_arn”“攻击:aws:…”},“标签”“维护”“aws_attributes”“instance_profile_arn”“攻击:aws:…”

必须为默认集群和维护集群指定实例概要文件配置。

您还可以在创建实例概要时配置实例概要集群政策用于您的Delta Live Tables管道。有关示例,请参见知识库

集群政策

请注意

当使用集群策略配置Delta Live Tables集群时,Databricks建议将一个策略应用于两个默认的而且维护集群。

配置集群政策对于管道集群,使用cluster_type字段设置为dlt

“cluster_type”“类型”“固定”“价值”“dlt”

在管道设置中,设置集群policy_id字段转换为策略标识符的值。配置默认的而且维护使用标识符的集群策略的集群C65B864F02000008

“集群”“标签”“默认”“policy_id”“C65B864F02000008”“自动定量”“min_workers”1“max_workers”5“模式”“增强”},“标签”“维护”“policy_id”“C65B864F02000008”

有关创建和使用集群策略的示例,请参见定义管道集群的限制

例子

配置管道和集群

下面的示例配置在example-notebook_1,使用DBFS存储,运行在小型单节点集群上:

“名称”“示例管道1”“存储”“dbfs: / pipeline-examples /存储位置/例二”“集群”“num_workers”1“spark_conf”{}],“库”“笔记本”“路径”“/用户/ user@www.neidfyre.com/example_notebook_1”],“连续”

在管道中配置多个笔记本

使用字段配置具有多个笔记本的管道。您可以按任何顺序添加笔记本,因为Delta Live Tables会自动分析数据集依赖关系,为管道构建处理图。中定义的数据集,下面的示例创建了一个管道example-notebook_1而且example-notebook_2

“名称”“示例管道3”“存储”“dbfs: / pipeline-examples /存储位置/青年们”“库”“笔记本”“路径”“/ example-notebook_1”},“笔记本”“路径”“/ example-notebook_2”

使用Delta Live Tables创建一个开发工作流

您可以为开发、登台和生产创建单独的Delta Live Tables管道,允许您测试和调试转换逻辑,而不会影响所生成数据的消费者。只需创建针对不同数据库但使用相同底层代码的单独管道。

您可以将此功能与砖回购创建完全隔离的开发环境和从开发到生产的简单工作流。

“名称”“数据摄取- DEV user@databricks”“目标”“customers_dev_user”“库”“回购/ user@www.neidfyre.com/ingestion/etl.py”],
“名称”数据摄取- PROD“目标”“顾客”“库”“/回购/生产/摄入/ etl.py”],

参数化管道

定义数据集的Python和SQL代码可以通过管道的设置进行参数化。参数化支持以下用例:

  • 从代码中分离长路径和其他变量。

  • 减少在开发或登台环境中处理的数据量,以加快测试速度。

  • 重用相同的转换逻辑来处理来自多个数据源的数据。

下面的示例使用startDate可以配置值将开发管道限制为输入数据的子集:

创建刷新生活表格customer_events作为选择sourceTable在哪里日期>“$ {mypipeline.startDate}”
@dlt表格defcustomer_events():start_date火花相依得到“mypipeline.startDate”返回“sourceTable”在哪里上校“日期”>start_date
“名称”“数据摄取- DEV”“配置”“mypipeline.startDate”“2021-01-02”
“名称”数据摄取- PROD“配置”“mypipeline.startDate”“2010-01-02”