建立暫存檢視 (管線)

使用 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);