CREAR VISTA TEMPORAL (canalizaciones)

Use la instrucción CREATE TEMPORARY VIEW para crear vistas temporales en un pipeline.

Syntax

A continuación se describe la sintaxis para declarar vistas con SQL:

CREATE TEMPORARY VIEW view_name
  [(
    [ col_name [ COMMENT col_comment ] [, ...] ]
    [ column_constraint ] [, ...]
  )]
  [ COMMENT view_comment ]
  [ TBLPROPERTIES ]
  AS query

Parámetros

  • view_name

    Nombre de la vista.

  • col_name

    Opcionalmente, puede especificar columnas para la vista resultante. col_name es un nombre para la columna.

  • col_comment

    Al especificar columnas, puede especificar opcionalmente una descripción para la columna.

  • column_constraint

  • view_comment

    Descripción opcional de la vista.

  • TBLPROPERTIES

    Una lista opcional de propiedades de la tabla para la vista.

  • consulta

    Esta cláusula completa la vista usando los datos de una consulta. Al especificar una consulta y una lista de columnas juntas, la lista de columnas debe contener todas las columnas devueltas por la consulta o se produce un error. Las columnas especificadas pero no devueltas por query valores devueltos null cuando se consultan.

Limitaciones

  • Las vistas temporales únicamente se conservan durante el ciclo de vida de la canalización.
  • Son privados para la canalización de definición.
  • No se agregan al catálogo y pueden tener el mismo nombre que una vista en el catálogo. Dentro de la canalización, si una vista temporal y una vista o tabla del catálogo tienen el mismo nombre, las referencias al nombre se resuelven en la vista temporal.

Examples

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