Создать временное представление (каналы)

Используйте инструкцию 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 ОЖИДАТЬ (expectation_expr) [ ON VIOLATION { FAIL UPDATE | DROP ROW } ]

      Добавляет ожидания по качеству данных к просмотру. Эти ожидания по качеству данных можно отслеживать со временем и получать доступ через журнал событий конвейера. Ожидание FAIL UPDATE приводит к сбою обработки как при создании представления, так и при обновлении конвейера. Ожидание DROP ROW приводит к тому, что вся строка будет удалена, если ожидание не выполнено. См. Управление качеством данных, используя ожидания конвейера.

      expectation_expr может состоять из литералов, идентификаторов столбцов внутри представления и детерминированных встроенных SQL-функций или операторов, за исключением:

      Кроме того, expr не должен содержать какой-либо вложенный запрос.

  • view_comment

    Необязательное описание представления.

  • TBLPROPERTIES

    Необязательный список свойств таблицы для представления.

  • query

    Это предложение заполняет представление с помощью данных запроса. При указании запроса и списка столбцов вместе список столбцов должен содержать все столбцы, возвращаемые запросом, или возникает ошибка. Все столбцы, указанные, но не возвращаются возвращаемыми 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);