三角洲生活表设置
三角洲生活表设置指定一个或多个笔记本,实现管道和管道参数指定如何运行的环境,例如,开发、分期或生产。三角洲生活表设置表示为JSON,可以修改三角洲生活表界面。
设置
字段 |
---|
id 类型: 这个管道全局惟一标识符。系统标识符分配的,不能更改。 |
的名字 类型: 一个用户友好的名称。这个名字可以用来识别管道工作在UI中。 |
存储 类型: 位置DBFS和云存储在输出数据和元数据所需的管道执行存储。表和元数据存储在子目录的位置。 当 的 |
配置 类型: 一个可选的设置添加到列表的火花配置集群运行的管道。这些设置由三角洲生活读表运行时和用于管道通过火花配置查询。 元素必须被格式化 看到参数化管道使用的一个例子 |
库 类型: 笔记本的数组包含管道代码和所需的工件。看到在管道配置多个笔记本了一个例子。 |
集群 类型: 数组的规范集群运行管道。看到集群配置更多的细节。 如果不指定这个值,管道会自动选择一个默认集群配置管道。 |
发展 类型: 一个标志指示是否运行的管道 默认值是 |
连续 类型: 一个标志指示是否运行管道不断。 默认值是 |
目标 类型: 的名称数据库持久化管道输出数据。配置 |
通道 类型: 版本的三角洲住表运行时使用。支持的值是:
的 |
版 类型 三角洲生活表产品版本管道运行。此设置允许你选择最好的产品版本基于管道的需求:
的 |
光子 类型: 一个标志指示是否使用光子运行时管道运行。光子是砖高性能火花的引擎。光子使管道比non-Photon管道宣传以不同的速度。 的 |
pipelines.maxFlowRetryAttempts 类型: 的最大数量尝试失败重试前流管道更新发生的事情失败时。 默认值是2。默认情况下,当事情发生故障,三角洲生活表运行时尝试运行流三次包括最初的尝试。 |
管道触发间隔
您可以使用pipelines.trigger.interval
控制流的触发间隔更新一个表或一个完整的管道。因为引发管道过程只有一次,每个表pipelines.trigger.interval
只有使用连续的管道。
砖建议设置pipelines.trigger.interval
在单个表上,因为不同的默认值为流和批处理查询。将值设置在管道只有当你处理需要控制整个管道更新图。
你设置pipelines.trigger.interval
在桌子上使用spark_conf
在Python中,或集
在SQL:
@dlt。表(spark_conf={“pipelines.trigger.interval”:“10秒”})def<函数- - - - - -的名字>():返回(<查询>)
集管道。触发。时间间隔=“10秒”;创建或刷新生活表TABLE_NAME作为选择…
设置pipelines.trigger.interval
在一个管道,将其添加到配置
对象在管道设置:
{“配置”:{“pipelines.trigger.interval”:“10秒”}}
pipelines.trigger.interval |
---|
默认是基于流型:
值是一个数字加上时间单位。以下是有效时间单位:
您可以使用单数或复数单位在定义值,例如:
|
集群配置
您可以配置使用的集群管理管道的JSON格式创建集群API。您可以指定集群配置两个不同的类型:a默认的集群的所有处理和执行维护集群在日常运行维护任务。每个集群标识使用标签
字段。
指定集群属性是可选的,和任何失踪的系统使用默认值。
请注意
你不能在集群配置中设置火花版本。三角洲生活表集群上运行一个自定义的砖运行时版本不断更新,包括最新的功能。手动设置一个版本可能导致管道故障。
因为δ生活表集群自动关闭不使用的时候,引用一个集群政策,集
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,那么集群不是作为单个节点创建集群。集群有至少1活跃职工时刻直到终止。一个示例集群配置创建一个节点集群在三角洲住表:
{“集群”:({“标签”:“默认”,“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存储。你配置一个AWS实例配置文件通过编辑JSON集群设置你的管道。当你可以添加实例配置文件配置创建或编辑管道的现场表API或δ生活表界面:
在管道的细节为你的管道页,单击设置按钮。的管道的设置页面出现。
单击JSON按钮。
输入的实例配置文件配置
aws_attributes.instance_profile_arn
在集群配置:
{“集群”:({“标签”:“默认”,“aws_attributes”:{“instance_profile_arn”:“攻击:aws:…”}},{“标签”:“维护”,“aws_attributes”:{“instance_profile_arn”:“攻击:aws:…”}}]}
您必须指定默认的实例配置文件配置和维护集群。
集群政策
请注意
当使用集群政策配置三角洲集群生活表,砖应用单个策略的建议默认的
和维护
集群。
配置一个集群政策对于管道集群中,创建一个与政策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”}}),“连续”:假}
在管道配置多个笔记本
使用库
与多个笔记本领域配置一个管道。在任何顺序您可以添加笔记,因为三角洲生活表自动分析数据集构建管道的加工图的依赖性。下面的示例创建一个管道,包括中定义的数据集example-notebook_1和example-notebook_2:
{“名称”:“例如管道3”,“存储”:“dbfs: / pipeline-examples /存储位置/青年们”,“库”:({“笔记本”:{“路径”:“/ example-notebook_1”}},{“笔记本”:{“路径”:“/ example-notebook_2”}}]}
创建一个开发流程与达美住表
您可以创建单独的三角洲住表发展管道,登台和生产,允许您测试和调试您的转换逻辑而不影响数据产生的消费者。简单地创建单独的管道,目标不同的数据库,但是使用相同的底层代码。
你可以把这个功能砖回购创建一个完全隔离的开发环境和一个简单的工作流将从开发到生产。
{“名称”:“数据摄取- DEV user@databricks”,“目标”:“customers_dev_user”,“库”:(“回购/ user@www.neidfyre.com/ingestion/etl.py”),}
{“名称”:“数据摄取刺激”,“目标”:“顾客”,“库”:(“/回购/生产/摄入/ 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”}}
{“名称”:“数据摄取刺激”,“配置”:{“mypipeline.startDate”:“2010-01-02”}}