使用 CREATE TEMPORARY VIEW 語句在資料流中建立暫存檢視。
語法
以下說明使用 SQL 宣告檢視的語法:
CREATE TEMPORARY VIEW view_name
[(
[ col_name [ COMMENT col_comment ] [, ...] ]
[ column_constraint ] [, ...]
)]
[ COMMENT view_comment ]
[ TBLPROPERTIES ]
AS query
參數
view_name
視圖的名稱。
col_name
或者,您可以指定結果檢視的欄位。
col_name是資料行的名稱。col_comment
指定直欄時,您可以選擇性地指定直欄的說明。
column_constraint
CONSTRAINT expectation_name EXPECT (expectation_expr) [ON VIOLATION {FAIL UPDATE | DROP ROW}]
為視圖新增資料品質期望。 這些資料品質期望可隨時間追蹤,並可透過管線 的事件日誌存取。
FAIL UPDATE期望值會導致在建立檢視及刷新管線時,處理失敗。 如果不符合預期,整個資料列會因這個DROP ROW預期而被移除。 請參閱 使用管線期望來管理資料品質。expectation_expr可能由文字、視圖中的欄位識別碼,以及確定性內建的 SQL 函式或運算子組成,但不包括:expr也不得包含任何子查詢。
view_comment
檢視的可選描述。
TBLPROPERTIES
檢視表 屬性 的可選清單。
查詢
此子句會利用查詢資料填充視圖。 當你同時指定查詢和欄位清單時,欄位清單必須包含查詢回傳的所有欄位,否則會發生錯誤。 任何欄位在查詢時未以回傳
query值回null傳。
局限性
- 暫存檢視只會在管線的存留期內保存。
- 它們在定義管道中是私有的。
- 它們不會新增至型錄,而且可以與型錄中的視圖具有相同的名稱。 在管線中,如果暫存檢視與目錄中的檢視或表格名稱相同,該名稱的引用會解析為暫存檢視。
範例
-- Create a temporary view, and use it
CREATE TEMPORARY VIEW my_view (sales_day, total_sales, sales_rep)
AS SELECT date(sales_date) AS sale_day, SUM(sales) AS total_sales, FIRST(sales_rep) FROM sales GROUP BY date(sales_date), sales_rep;
CREATE OR REFRESH MATERIALIZED VIEW sales_by_date
AS SELECT * FROM my_view;
-- Create a temporary view with a data quality expectation
CREATE TEMPORARY VIEW valid_sales (
CONSTRAINT valid_total_sales EXPECT (total_sales > 0) ON VIOLATION DROP ROW
)
AS SELECT date(sales_date) AS sales_day, SUM(sales) AS total_sales FROM sales GROUP BY date(sales_date);