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.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:…”}}]}
集群政策
請注意
當使用集群策略配置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.eheci.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”,“目標”:“beplay体育app下载地址customers_dev_user”,“庫”:[“回購/ user@www.eheci.com/ingestion/etl.py”),}
{“名稱”:數據攝取- PROD,“目標”:“beplay体育app下载地址顧客”,“庫”:[“/回購/生產/攝入/ 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”}}