三角洲生活表SQL語言參考
本文提供了細節的三角洲生活表的SQL編程接口。
Python API的信息,請參閱三角洲生活表Python語言參考。
關於SQL命令的更多信息,請參閱SQL語言參考。
您可以使用Python用戶定義函數(udf)在您的SQL查詢,但你必須定義這些udf在Python文件之前調用SQL源文件。看到用戶自定義標量函數——Python。
創建一個三角洲住表物化視圖或流表
您使用相同的基本的SQL語法時宣布一個流表或物化視圖(也稱為生活表
)。
你隻能申報使用查詢流表讀取流源。磚建議使用自動加載程序流攝入從雲對象存儲的文件。看到自動加載程序SQL語法。
你必須包括流()
函數在一個數據集名稱指定其他表或視圖時管道流源。
下麵描述了聲明的語法物化視圖和流媒體與SQL表:
創建或更新(臨時){流表|生活表}table_name [([col_name1 col_type1[生成總是像generation_expression1][評論col_comment1], col_name2 col_type2[生成總是像generation_expression2][評論col_comment2],…][約束expectation_name_1期望(expectation_expr1)[違反{失敗更新|刪除行}),約束expectation_name_2期望(expectation_expr2)(在違反{失敗更新|刪除行}),…])][使用三角洲][分區(col_name1、col_name2…))[位置路徑][評論table_comment] [TBLPROPERTIES (key1 [=] val1 key2 = val2,…))作為select_statement
創建一個三角洲住表視圖
下麵描述了聲明視圖使用SQL的語法:
創建臨時(流)實時視圖view_name [([col_name1[評論col_comment1], col_name2 col_comment2評論,…][約束expectation_name_1期望(expectation_expr1)[違反{失敗更新|刪除行}),約束expectation_name_2期望(expectation_expr2)(在違反{失敗更新|刪除行}),…select_statement])][評論view_comment]
自動加載程序SQL語法
下麵描述了使用自動加載程序在SQL的語法:
創建或刷新流媒體表table_name作為選擇*從cloud_files(“< file_path >”,“< file_format >”,地圖(“< option_key >”,“< option_value”,“< option_key >”,“< option_value”,…))
你可以使用支持格式選項自動加載程序。使用map ()
功能,你可以將任意數量的選項傳遞給cloud_files ()
方法。選項是鍵值對,其中鍵和值都是字符串。支持格式和選項的細節,請參閱文件格式選項。
SQL特性
創建表或視圖 |
---|
臨時 創建一個臨時表。不持續這個表的元數據。 |
流媒體 創建一個表讀取一個輸入數據集作為一個流。輸入數據集必須流數據來源,例如,汽車裝載機或 |
分區的 一個可選的一列或多列列表用於分區表。 |
位置 一個可選的表數據的存儲位置。如果沒有設置,係統將默認存儲位置。 |
評論 一個可選描述表。 |
TBLPROPERTIES 一個可選列表表屬性為表。 |
select_statement δ生活表查詢定義表的數據集。 |
約束條款 |
---|
預計expectation_name 定義數據質量約束 |
對違反 可選操作失敗的行:
|
改變δ生活表中數據獲取與SQL
預覽
三角洲生活表支持SCD 2型公共預覽。
使用應用變化成
聲明使用三角洲住表疾病預防控製中心功能,如以下所述:
創建或更新流表table_name;應用到生活變化。table_name從source KEYS (keys) [WHERE condition] [IGNORE NULL UPDATES] [APPLY AS DELETE WHEN condition] [APPLY AS TRUNCATE WHEN condition] SEQUENCE BY orderByColumn [COLUMNS {columnList | * EXCEPT (exceptColumnList)}] [STORED AS {SCD TYPE 1 | SCD TYPE 2}] [TRACK HISTORY ON {columnList | * EXCEPT (exceptColumnList)}]
請注意
的默認行為插入
和更新
事件是插入疾控中心事件從源:更新任何目標表中的行匹配指定的鍵(s)或時插入一個新行匹配的目標表中的記錄不存在。處理的刪除
可以指定的事件應用作為刪除當
條件。
重要的
你必須聲明一個目標流表應用更改。您可以選擇指定目標表的模式。當指定的模式應用變化
目標表,你還必須包括__START_AT
和__END_AT
列有相同的數據類型sequence_by
字段。
條款 |
---|
鍵 列或列的組合唯一地標識源數據中的一行。這是用來確定哪些疾病預防控製中心事件適用於目標表中的特定記錄。 這一條款是必需的。 |
在哪裏 條件應用到源和目標觸發等優化分區修剪。這種情況不能用於降低源行;所有疾病預防控製中心行源必須滿足這個條件或者是拋出一個錯誤。使用WHERE子句是可選的,應該使用當您的處理需要特定的優化。 這一條款是可選的。 |
忽略NULL更新 允許攝入更新包含目標列的一個子集。當一個中心事件匹配指定一個現有的行和忽略NULL更新,列了 這一條款是可選的。 默認是覆蓋現有的列 |
使用時刪除 指定當事件應該被視為一個疾控中心 這一條款是可選的。 |
應用時截斷 指定當一個中心事件應該被視為一個完整的表 的 這一條款是可選的。 |
序列由 疾控中心的列名稱指定邏輯順序事件源數據。三角洲生活表使用這個序列處理變更的事件到達的順序。 這一條款是必需的。 |
列 指定要包含在目標表列的一個子集。你可以:
這一條款是可選的。 默認是在目標表包含所有列 |
存儲為 是否保存記錄SCD 1型或SCD 2型。 這一條款是可選的。 缺省值是SCD 1型。 |
追蹤曆史 當
這一條款是可選的。所有的輸出列的默認跟蹤曆史有任何更改時,相當於 要使用這一條款,您必須設置 |