CREATE MATERIALIZED VIEW#
Синтаксис#
CREATE [ OR REPLACE ] MATERIALIZED VIEW
[ IF NOT EXISTS ] view_name
[ GRACE PERIOD interval ]
[ COMMENT string ]
[ WITH properties ]
AS query
Описание#
Создает материализованное представление на основе переданного запроса. После создания материализованного представления необходимо запустить команду REFRESH MATERIALIZED VIEW, чтобы наполнить представление данными.
Материализованные представления хранят копию данных, возвращенных запросом. За счет этого запрос к материализованному представлению может вернуть данные быстрее, чем выполнение соответствующего запроса, или обращение к виртуальному представлению, созданному командой CREATE VIEW.
Необязательное выражение IF NOT EXISTS
позволяет завершить выполнение
команды без ошибки, если материализованное представление уже существует.
Существующее материализованное представление при этом не будет
пересоздано.
Необязательное выражение OR REPLACE
имеет семантику, аналогичную IF
NOT EXISTS, но заменяет существующее материализованное представление на
новое.
Выражения OR REPLACE
и IF NOT EXISTS
являются взаимоисключающими.
Необязательное выражение GRACE PERIOD
указывает, сколько времени можно
использовать данные материализованного представления после его
обновления командой REFRESH MATERIALIZED VIEW.
Если GRACE PERIOD
превышен, любое обращение к
материализованному представлению будет приводить к выполнению базового
запроса.
Необязательное выражение COMMENT
сохраняет строковый комментарий о
материализованном представлении. Комментарий можно отобразить с помощью
команды SHOW CREATE MATERIALIZED VIEW или получить из
системной таблицы.
Необязательное выражение WITH
можно использовать для установки свойств
создаваемого материализованного представления. Список доступных свойств
зависит от каталога. Чтобы получить список всех доступных свойств
материализованного представления для всех каталогов, выполните следующий
запрос:
SELECT * FROM system.metadata.schema_properties
Запрос может вернуть пустой результат, если ни один из сконфигурированных каталогов не имеет доступных свойств материализованного представления.
После успешного создания материализованного представления, можно получить его метаданные из системной таблицы.
Примеры#
Создает материализованное представление cancelled_orders
:
CREATE MATERIALIZED VIEW cancelled_orders
AS
SELECT orderkey, totalprice
FROM orders
WHERE orderstatus = 3;
Создает или заменяет материализованное представление
order_totals_by_date
:
CREATE OR REPLACE MATERIALIZED VIEW order_totals_by_date
AS
SELECT orderdate, sum(totalprice) AS price
FROM orders
GROUP BY orderdate;
Создает материализованное представление с комментарием и свойствами для каталога Iceberg:
CREATE MATERIALIZED VIEW orders_nation_mkgsegment
COMMENT 'Orders with nation and market segment data'
WITH ( partitioning = ARRAY['mktsegment', 'nationkey'] )
AS
SELECT o.*, c.nationkey, c.mktsegment
FROM orders AS o
JOIN customer AS c
ON o.custkey = c.custkey;
Пример установки нескольких свойств материализованного представления:
WITH ( format = 'ORC', partitioning = ARRAY['_date'] )
Показывает метаданные о материализованных представлениях во всех каталогах:
SELECT * FROM system.metadata.materialized_views;
См. также#
ALTER MATERIALIZED VIEW, DROP MATERIALIZED VIEW, REFRESH MATERIALIZED VIEW, SHOW CREATE MATERIALIZED VIEW