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.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:…”

集群政策

請注意

當使用集群策略配置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”