三角洲生活表设置

预览

这个特性是在公共预览

三角洲生活表设置指定一个或多个笔记本,实现管道和管道参数指定如何运行的环境,例如,开发、分期或生产。三角洲生活表设置表示为JSON,可以修改三角洲生活表界面

设置

字段

id

类型:字符串

这个管道全局惟一标识符。系统标识符分配的,不能更改。

的名字

类型:字符串

一个用户友好的名称。这个名字可以用来识别管道工作在UI中。

存储

类型:字符串

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

存储没有指定设置,系统将默认的位置dbfs: /管道/

存储设置创建一个管道不得更改。

配置

类型:对象

一个可选的设置添加到列表的火花配置集群运行的管道。这些设置由三角洲生活读表运行时和用于管道通过火花配置查询。

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

看到参数化管道使用的一个例子配置对象。

类型:数组对象

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

集群

类型:数组对象

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

如果不指定这个值,管道会自动选择一个默认集群配置管道。

发展

类型:布尔

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

默认值是真正的

连续

类型:布尔

一个标志指示是否运行管道不断。

默认值是

目标

类型:字符串

的名称数据库持久化管道输出数据。配置目标设置允许您查看和查询的管道输出数据砖UI。

通道

类型:字符串

版本的三角洲住表运行时使用。支持的值是:

  • 预览测试你的管道运行时版本即将到来的变化。

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

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

类型字符串

三角洲生活表产品版本管道运行。此设置允许你选择最好的产品版本基于管道的需求:

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

  • 运行流摄取和变化数据捕获(CDC)工作负载。

  • 先进的流摄取工作负载运行,疾控中心的工作负载,负载需要三角洲住表预期执行数据质量约束。

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

光子

类型:布尔

一个标志指示是否使用光子运行时管道运行。光子是砖高性能火花的引擎。光子使管道比non-Photon管道宣传以不同的速度。

光子字段是可选的。默认值是

pipelines.maxFlowRetryAttempts

类型:int

的最大数量尝试失败重试前流管道更新发生的事情失败时。

默认值是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

默认是基于流型:

  • 5秒为流查询。

  • 一分钟完成查询的所有输入数据时是三角洲来源。

  • 十分钟完成一些数据源可能non-Delta时查询。看到表和视图在连续管道

值是一个数字加上时间单位。以下是有效时间单位:

  • 第二个,

  • 一分钟,分钟

  • 小时,小时

  • 一天,

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

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

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

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

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

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

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

集群配置

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

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

请注意

  • 你不能在集群配置中设置火花版本。三角洲生活表集群上运行一个自定义的砖运行时版本不断更新,包括最新的功能。手动设置一个版本可能导致管道故障。

  • 因为δ生活表集群自动关闭不使用的时候,引用一个集群政策,集autotermination_minutes在您的集群配置会导致错误。关闭控制集群行为,您可以使用开发或生产方式或使用pipelines.clusterShutdown.delay设置在管道配置。下面的示例设置pipelines.clusterShutdown.delay价值60秒:

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

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

  • 如果你设置num_workers0在集群环境中,作为创建集群单节点集群。配置自动定量集群和设置min_workers为0,max_workers0还创建了单个节点集群。

    如果你配置一个自动定量集群和设置min_workers为0,那么集群不是作为单个节点创建集群。集群有至少1活跃职工时刻直到终止。

    一个示例集群配置创建一个节点集群在三角洲住表:

    {“集群”:({“标签”:“默认”,“num_workers”:0}]}

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

{“集群”:({“标签”:“默认”,“node_type_id”:“n1-standard-4”,“driver_node_type_id”:“n1-standard-4”,“num_workers”:20.,“spark_conf”:{“spark.databricks.io.parquet.nativeReader.enabled”:“假”}},{“标签”:“维护”}]}

云存储配置

访问一个桶在谷歌云存储(GCS),您必须创建一个服务帐户访问,GCS水桶和服务帐户添加到集群配置。更多的信息创建一个谷歌云服务帐户,看到的谷歌云存储。您可以添加服务帐户配置时创建编辑管道的现场表API或δ生活表界面:

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

  2. 单击JSON按钮。

  3. 输入的服务帐户配置gcp_attributes.google_service_account在集群配置:

{“集群”:({“标签”:“默认”,“gcp_attributes”:{“google_service_account”:“test-gcs-doc@databricks-dev.iam.gserviceaccount.com”}},{“标签”:“维护”,“gcp_attributes”:{“google_service_account”:“test-gcs-doc@databricks-dev.iam.gserviceaccount.com”}}]}

集群政策

请注意

当使用集群政策配置三角洲集群生活表,砖应用单个策略的建议默认的维护集群。

配置一个集群政策对于管道集群中,创建一个与政策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_1example-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}”;
@dltdefcustomer_events():start_date=火花相依得到(“mypipeline.startDate”)返回(“sourceTable”)在哪里(上校(“日期”)>start_date)
{“名称”:“数据摄取- DEV”,“配置”:{“mypipeline.startDate”:“2021-01-02”}}
{“名称”:“数据摄取刺激”,“配置”:{“mypipeline.startDate”:“2010-01-02”}}