【Snowflake】Snowflake ~ Materialized View ~

■ はじめに

https://dk521123.hatenablog.com/entry/2022/10/10/000000

で、Snowflakeのビューをやったが、
Materialized View (マテリアライズドビュー; マテビュー) が
ちょくちょくキーワードとしてでてくるので、この機会に
徐々にまとめていく。

ちなみに、Oracle でもあるらしく、10年以上前の自分がメモっていた。。。

https://dk521123.hatenablog.com/entry/2010/04/22/130643

目次

【1】Materialized View
【2】利点
【3】使用上の注意
【4】構文
【5】おまけ:Dynamic Table
 1)構文

【1】Materialized View

* 実データを保持するビュー
 => SQL結果をテーブルとして保持している
 => どっちかっていうと、ビューのようなテーブル??

cf. Materialized = 実体化された

https://docs.snowflake.com/ja/user-guide/views-materialized

【2】利点

* クエリ結果をストレージに物理的に保存することによって、
 パフォーマンスが向上する

【3】使用上の注意

https://docs.snowflake.com/ja/sql-reference/sql/create-materialized-view

* Enterprise Editionが必要
* 他にも、HAVING 句または ORDER BY 句は指定できない等のあり。
 => 以下の公式ドキュメントを一読した方がいい

https://docs.snowflake.com/ja/sql-reference/sql/create-materialized-view#usage-notes
マテリアライズドビューの制限

* 以下の公式ドキュメントを参照。
 => かなり多くの制限があるので、使用する場合は確認しておいた方がいい

https://docs.snowflake.com/ja/user-guide/views-materialized#label-limitations-on-creating-materialized-views

【4】構文

https://docs.snowflake.com/ja/sql-reference/sql/create-materialized-view#syntax

CREATE MATERIALIZED VIEW demo_mate_view
  COMMENT='Demo mate view'
  AS
  SELECT col1, col2 FROM demo_table;

【5】おまけ:Dynamic Table

View ではないが、
Dynamic Table(ダイナミックテーブル)ってのが
正式リリースではないが注目されているっぽいので、メモ。 

https://www.snowflake.com/blog/dynamic-tables-delivering-declarative-streaming-data-pipelines/?lang=ja
動画(英語)
https://www.youtube.com/watch?v=o8YXmsy8Rss
一般サイト
https://knowledge.insight-lab.co.jp/snowflake/stream_data_pipeline#section_dynamictables_8
https://zenn.dev/gappy/articles/bcced35e8156ba

1)構文

CREATE [ OR REPLACE ] DYNAMIC TABLE 
  LAG = ' { seconds | minutes | hours | days }'
  WAREHOUSE = 
  AS SELECT 

参考文献

https://itsol.isid.co.jp/snowflake/blog/snowflake-view-vol-009-3450/

関連記事

Snowflake ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/02/130111
Snowflake ~ 入門編 / Hello world
https://dk521123.hatenablog.com/entry/2021/11/22/212520
Snowflake ~ 基本編 / View ~
https://dk521123.hatenablog.com/entry/2022/10/10/000000