Delta Live Tables SQL語言引用

本文提供Delta Live Tables SQL編程接口的詳細信息和示例。有關完整的API規範,請參見SQL API規範

有關Python API的信息,請參見Delta Live Tables Python語言引用

SQL數據集

使用創建生活視圖創建刷新生活表格使用SQL創建視圖或表的語法。可以通過從外部數據源或管道中定義的數據集讀取數據來創建數據集。要從內部數據集讀取數據,請將生活關鍵字設置為數據集名稱。下麵的例子定義了兩個不同的數據集taxi_raw它接受一個JSON文件作為輸入源和一個名為filtered_data這需要的taxi_raw表作為輸入:

創建刷新生活表格taxi_raw作為選擇json' /-數據集/nyctaxi/樣本/json/ '創建刷新生活表格filtered_data作為選擇...生活taxi_raw

Delta Live Tables自動捕獲管道中定義的數據集之間的依賴關係,並使用該依賴關係信息來確定執行更新時的執行順序,並在管道的事件日誌中記錄沿襲信息。

視圖和表都有以下可選屬性:

  • 評論:該數據集的人類可讀的描述。

  • 強製的數據質量約束預期

表還提供了對其實體化的額外控製:

  • 指定表是怎樣的分區使用分區通過.您可以使用分區來加速查詢。

  • 您可以使用TBLPROPERTIES.看到表屬性更多的細節。

  • 設置存儲位置位置設置。默認情況下,表數據存儲在管道存儲位置位置不設置。

  • 您可以使用生成的列在模式定義中。

看到SQL API規範有關表和視圖屬性的詳細信息。

使用指定表或視圖的配置值,包括Spark配置。之後在筆記本中定義的任何表或視圖語句可以訪問已定義的值。命令指定的任何Spark配置語句在對SET語句之後的任何表或視圖執行Spark查詢時使用。要在查詢中讀取配置值,請使用字符串插值語法$ {}.下麵的示例設置一個名為startDate可以並在查詢中使用該值:

設置startDate可以= ' 2020-01-01 ';CREATE OR REFRESH LIVE TABLE FROM src WHERE date > ${startDate}

要指定多個配置值,請使用單獨的語句為每個值。

例如,要從流源讀取數據,自動加載程序或者內部數據集,定義一個流媒體生活表:

創建刷新流媒體生活表格beplay体育app下载地址customers_bronze作為選擇cloud_files“/ databricks-datasets / retail-obeplay体育app下载地址rg /客戶/”“csv”創建刷新流媒體生活表格beplay体育app下载地址customers_silver作為選擇生活beplay体育app下载地址customers_bronze

有關流數據的更多信息,請參見使用Delta Live Tables處理流數據

SQL API規範

請注意

Delta Live Tables SQL接口有以下限製:

  • 子句不受支持。使用一個子句會導致不確定的管道延遲。

創建表

CREATE OR REFRESH [TEMPORARY] {STREAMING LIVE TABLE | LIVE TABLE} table_name [(col_name1 col_type1 [GENERATED ALWAYS AS generation_expression1] [COMMENT col_comment1], col_name2 col_type2 [GENERATED ALWAYS AS generation_expression2] [COMMENT col_comment2],…[CONSTRAINT expectation_name_1 EXPECT (expectation_expr1) [ON VIOLATION {FAIL UPDATE | DROP ROW}], CONSTRAINT expectation_name_2 EXPECT (expectation_expr2) [ON VIOLATION {FAIL UPDATE | DROP ROW}],…[使用DELTA][分區BY (col_name1, col_name2,…)][LOCATION path] [COMMENT table_comment] [TBLPROPERTIES (key1 [=] val1, key2 [=] val2,…)]] select_statement

創建視圖

CREATE TEMPORARY [STREAMING] LIVE VIEW view_name [([col_name1 [COMMENT col_comment1], col_name2 [COMMENT col_comment2],…[CONSTRAINT expectation_name_1 EXPECT (expectation_expr1) [ON VIOLATION {FAIL UPDATE | DROP ROW}], CONSTRAINT expectation_name_2 EXPECT (expectation_expr2) [ON VIOLATION {FAIL UPDATE | DROP ROW}],…[COMMENT view_comment] AS select_statement .

SQL特性

創建表或視圖

臨時

創建一個臨時表。該表沒有持久化元數據。

流媒體

創建一個表,以流的形式讀取輸入數據集。輸入數據集必須是流數據源,例如,自動加載程序或者一個流媒體生活表格

分區的

用於分區表的一個或多個列的可選列表。

位置

表數據的可選存儲位置。如果不設置,係統將默認為管道存儲位置。

評論

表的可選描述。

TBLPROPERTIES

的可選列表表屬性為表。

select_statement

定義表數據集的Delta Live Tables查詢。

約束條款

預計expectation_name

定義數據質量約束expectation_name.如果違反約束未定義,請將違反約束的行添加到目標數據集。

對違反

對失敗行的可選操作:

  • 失敗更新:立即停止流水線執行。

  • 下降:刪除記錄並繼續處理。

表屬性

所支持的表屬性之外三角洲湖,可以設置以下表屬性。

表屬性

pipelines.autoOptimize.managed

默認值:真正的

啟用或禁用該表的自動調度優化。

pipelines.autoOptimize.zOrderCols

默認值:無

一個可選的以逗號分隔的列名列表,按z順序排列這個表。

pipelines.reset.allowed

默認值:真正的

控製是否允許對該表進行完全刷新。