Amazon Redshift представляет поддержку каскадного обновления вложенных материализованных представлений
Amazon Redshift теперь поддерживает каскадное обновление вложенных материализованных представлений (MV), определенных в локальных таблицах Amazon Redshift и внешних источниках потоковой передачи, таких как потоки данных Amazon Kinesis (KDS), управляемая потоковая передача Amazon для Apache Kafka (Amazon MSK) или облако Confluent.
Благодаря этому обновлению клиенты могут запускать каскадное обновление вложенных материализованных представлений, указав единственную опцию: cascade («каскад») или restrict («ограниченное»). При выборе «ограниченного» обновления будет обновлено только целевое материализованное представление, в то время как выбор опции «каскад» вызовет каскадное обновление всех вложенных материализованных представлений ниже целевого за одну транзакцию. Вот пример.
CREATE TABLE t(a INT);
CREATE MATERIALIZED VIEW u AS SELECT * FROM t;
CREATE MATERIALIZED VIEW v AS SELECT * FROM u;
CREATE MATERIALIZED VIEW w AS SELECT * FROM v;
-- w -> v -> u -> t
INSERT INTO t VALUES (1);
В следующем примере показано информационное сообщение, возникающее при запуске команды REFRESH MATERIALIZED VIEW («обновить материализованное представление») для материализованного представления, зависящего от другого материализованного представления, которое устарело.
REFRESH MATERIALIZED VIEW v;
К СВЕДЕНИЮ: материализованное представление «v» обновлено. Однако оно зависит от другого материализованного представления, не являющегося актуальным.
REFRESH MATERIALIZED VIEW v CASCADE;
К СВЕДЕНИЮ: материализованное представление «v» пошагово обновлено.
В приведенном выше примере при указании опции cascade сначала обновляется материализованное представление «u», следующим шагом обновляется материализованное представление «v», а материализованное представление «w» не обновляется.
Каскадное обновление значительно упрощает разработку приложений, устраняя сложную логику, которая требовалась для координации ручного обновления нескольких вложенных материализованных представлений. Эту новую возможность можно сразу начать использовать для создания более сложных и гибких конвейеров аналитики. Для начала обратитесь к подразделу «Вложенные материализованные представления» раздела «Обновление материализованного представления» документации.