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 定義數據質量約束 |
對違反 對失敗行的可選操作:
|
表屬性
所支持的表屬性之外三角洲湖,可以設置以下表屬性。
表屬性 |
---|
pipelines.autoOptimize.managed 默認值: 啟用或禁用該表的自動調度優化。 |
pipelines.autoOptimize.zOrderCols 默認值:無 一個可選的以逗號分隔的列名列表,按z順序排列這個表。 |
pipelines.reset.allowed 默認值: 控製是否允許對該表進行完全刷新。 |