Delta Live Tables设置
Delta Live Tables设置指定一个或多个实现管道的笔记本,并指定如何在环境(例如开发、登台或生产)中运行管道的参数。动态表(Delta Live Tables)设置表示为JSON,可以在Delta Live Tables用户界面.
设置
字段 |
---|
id 类型: 此管道的全局唯一标识符。标识符由系统分配,不可修改。 |
的名字 类型: 此管道的用户友好的名称。该名称可用于识别UI中的管道作业。 |
存储 类型: DBFS或云存储中的一个位置,用于存储管道执行所需的输出数据和元数据。表和元数据存储在该位置的子目录中。 当 的 |
配置 类型: 要添加到将运行管道的集群的Spark配置中的可选设置列表。这些设置由Delta Live Tables运行时读取,并可用于通过Spark配置进行流水线查询。 元素必须格式化为 看到参数化管道的例子 |
库 类型: 包含管道代码和所需工件的记事本数组。看到在管道中配置多个笔记本举个例子。 |
集群 类型: 用于运行管道的集群的规范数组。看到集群配置更多细节。 如果没有指定,管道将自动为管道选择默认的集群配置。 |
发展 类型: 指示是否运行管道的标志 默认值为 |
连续 类型: 指示是否连续运行管道的标志。 默认值为 |
目标 类型: 用于持久化管道输出数据的数据库的名称。配置 |
通道 类型: 要使用的Delta Live Tables运行时的版本。支持的值为:
的 |
版 类型 Delta Live table产品版本运行管道。此设置允许您根据管道的需求选择最佳的产品版本:
的 |
光子 类型: 指示是否使用的标志光子运行时运行管道。Photon是Databricks高性能Spark引擎。启用Photon的管道与非Photon管道的收费速率不同。 的 |
pipelines.maxFlowRetryAttempts 类型: 当发生可重试失败时,在管道更新失败之前重试流的最大尝试次数。 缺省值为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 |
---|
默认值是基于流类型:
取值为数字+时间单位。以下是有效的时间单位:
定义值时可以使用单数或复数单位,例如:
|
集群配置
的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.delay
是0秒
.当发展
模式已启用,默认值为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中的管道:
在管道的细节页的管道,单击设置按钮。的管道的设置页面出现。
单击JSON按钮。
中输入实例概要文件配置
aws_attributes.instance_profile_arn
集群配置中的字段:
{“集群”:[{“标签”:“默认”,“aws_attributes”:{“instance_profile_arn”:“攻击:aws:…”}},{“标签”:“维护”,“aws_attributes”:{“instance_profile_arn”:“攻击:aws:…”}}]}
必须为默认集群和维护集群指定实例概要文件配置。
集群政策
请注意
当使用集群策略配置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”}}