Amazon Redshift がネストされたマテリアライズドビューのカスケード更新のサポートを発表
Amazon Redshift は、ローカルの Amazon Redshift テーブルと、Amazon Kinesis Data Streams (KDS)、Amazon Managed Streaming for Apache Kafka (MSK)、Confluent Cloud などの外部ストリーミングソースで定義されているネストされたマテリアライズドビュー (MV) のカスケード更新をサポートするようになりました。
今回の更新により、「cascade」または「restrict」を指定する 1 つのオプションで、ネストされた MV のカスケード更新を実行できるようになります。「restrict」オプションは MV の更新を単一のターゲット MV に制限しが、「cascade」オプションを使用してターゲット MV で更新を実行すると、ターゲット MV の下にあるすべてのネストされた MV の単一トランザクションでのカスケード更新がトリガーされます。例を示します。
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;
INFO: Materialized view v is already up to date.However, it depends on another materialized view that is not up to date.
REFRESH MATERIALIZED VIEW v CASCADE;
INFO: Materialized view v was incrementally updated successfully.
上記の「cascade」更新オプションを使用した例では、MV 'u' が最初に更新され、次に MV 'v' が順番に更新されますが、MV 'w' は更新されません。
カスケード更新により、複数のネストされたマテリアライズドビューの手動更新を調整するためにこれまで必要だった複雑なロジックが不要になり、アプリケーション開発が大幅に簡素化されます。この新機能をすぐに利用して、より複雑で柔軟な分析パイプラインを構築できます。利用を開始するには、ドキュメントのマテリアライズドビューの更新セクションのネストされたマテリアライズドビューサブセクションを参照してください。