SnowflakeのViewの種類とそれぞれのViewの特徴とは?(vol.9)
- 公開日:
- 最終更新日:
データ分析で活用するViewですが、Snowflakeにも、いくつかの種類のViewがあります。
本ブログ記事では、SnowflakeにおけるViewの種類や、それぞれのViewの特徴を解説します。
目次
SnowflakeでのViewの種類
Snowflakeでは、次の3つのViewがあります。
- Standard View(スタンダード・ビュー)
その名の通り、Snowflakeにおいて標準で使用するViewであり、クエリを用いて簡単に利用できます。
Viewはクエリに基づいて構築され、データをストレージにコピーしません。
データに対するクエリは、ビューに対して実行されます。 - Materialized View(マテリアライズド・ビュー)
クエリの結果をストレージに物理的に保存することによって、ビューを高速化します。
データ更新時は、自動的にMaterialized Viewも更新されます。
クエリのパフォーマンスを向上させることができますが、ストレージを使用するため、コストもかかります。 - Secure View(セキュア・ビュー)
データへのアクセスを制限するために使用されます。
Secure Viewを使用することで、ユーザーは自分がアクセスできる範囲のみをクエリできます。
データが暗号化されるため、機密性を向上させることができますが、他のビューと比べると実行速度が遅くなる可能性があります。
SnowflakeのView ①Standard View(スタンダード・ビュー)
SnowflakeのStandard Viewの主な特徴は次の通りです。
- 読み取り専用
Standard Viewは、元のテーブルやビューを参照するための読み取り専用のビューです。そのため、ビュー自体にはデータを変更する権限がありません。ただし、元のテーブルやビューのデータが変更された場合、標準ビューに反映されます。 - ビューの変更が元のデータに影響を与えない
Standard Viewを使用すると、ビューの変更が元のデータに影響を与えることがないため、データの保護が可能になります。ビューを使用してデータをクエリする際に、元のデータを変更することはできません。また、元のテーブルやビューを編集した場合でも、自動的に更新されるため、管理が簡単です。 - 複数のデータソースを結合可能
Standard Viewは、複数のデータソースを結合することができます。これにより、異なるデータソースからのデータを一元的に表示することができます。 - SQLを使用して作成
Standard Viewは、SQLを使用して定義されるため、標準のSQL構文を使用して簡単に作成できます。 - テーブルと同様にクエリできる
Standard Viewは、データベース内のテーブルと同様にクエリできます。データベース内の他のテーブルと同じように参照できます。 - 結果をキャッシュすることができる
Standard Viewは、テーブルと同様にビューの結果をキャッシュすることができます。これにより、クエリの実行時間を短縮できます。 - 多層的に作成できる
Standard Viewは、他のビューと同様に、多層的に作成することができます。つまり、複数のビューを組み合わせて新しいビューを作成することができます。ただし、複数のビューを結合してビューを作成する場合、パフォーマンスが低下することがあります。 - データの加工と加工のための柔軟性
Standard Viewを使用すると、データを必要に応じて加工したり、フィルタリングしたり、グループ化したりすることができます。ビューは、SQLを使用して作成されるため、ビューを使用してデータをクエリする際に、より高度なクエリや計算を実行することができます。
SnowflakeのView ②Materialized View(マテリアライズド・ビュー)
SnowflakeのMaterialized Viewの主な特徴は次の通りです。
- パフォーマンスの向上
Materialized Viewは、クエリの実行時にビューのクエリを再度評価するのではなく、クエリ結果を一時テーブルに保存することで、パフォーマンスを向上させます。ただし、データをストレージ領域に保存するため、ストレージコストが発生します。 - 自動更新
Materialized Viewは、元のテーブルに変更があった場合に自動的に更新されます。これにより、常に最新の情報を取得することができます。 - クエリの最適化
Materialized Viewは、元のクエリを実行する際に必要な計算を事前に実行することで、クエリの最適化を行います。これにより、クエリの実行時間が短縮されます。 - パーティショニングのサポート
Materialized Viewは、パーティショニングをサポートしています。これにより、パーティショニングを設定したテーブルに対してマテリアライズド・ビューを作成することができます。 - スキーマの分離
Materialized Viewは、元のテーブルとは別のスキーマに保存することができます。これにより、セキュリティ上の理由から、元のテーブルに直接アクセスする必要がない場合でも、データにアクセスすることができます。
SnowflakeのView ③Secure View(セキュア・ビュー)
Snowflakeには、セキュリティに関する機能が多数組み込まれており、その中にはSecure Viewも含まれます。
(ロールを用いたアクセス制御・権限設定の方法はこちら)
SnowflakeのSecure Viewの主な特徴は次の通りです。
- データマスキング機能
Secure Viewを使用すると、ビューに表示されるデータをマスキングすることができます。たとえば、社会保障番号やクレジットカード番号などの個人情報をマスキングすることができます。 - ロールベースのアクセス制御
Secure Viewは、ロールベースのアクセス制御をサポートしています。つまり、特定のロールに属するユーザーだけがビューにアクセスできるようにすることができます。 - 行レベルのセキュリティ
Secure Viewを使用すると、ビューにアクセスするユーザーが表示できるデータを行レベルで制御することができます。たとえば、ある顧客の個人情報を表示するビューを作成した場合、その顧客にアクセス権限がないユーザーは、その顧客の情報を見ることができません。 - 暗号化された通信
Secure Viewは、暗号化された通信を使用してデータの送信を行います。これにより、データが第三者に傍受されることを防ぐことができます。 - リソースの最適化
Secure Viewは、ビューにアクセスするユーザーのクエリを最適化することができます。たとえば、ビューにアクセスするユーザーが必要とするデータだけを抽出することができます。これにより、リソースの無駄を省くことができます。 - クエリパフォーマンス
Secure Viewは、Standard ViewやMaterialized Viewと比べると、実行速度が遅くなる可能性があります。そのため、データマスキングやアクセス制御等が必要ない場合ではSecure Viewを使用しないことをお勧めします。
まとめ
さて、SnowflakeにおけるViewの種類や、それぞれのViewの特徴ををご理解いただけたでしょうか?
それぞれのViewの特徴から、用途に応じた最適なViewをご活用いただければと思います。
弊社電通総研は、データマネジメントの専門家として、お客様のデータ一元管理やデータ活用における戦略策定、データドリブン経営の実現に向けた真の“使える”データマネジメント基盤構築のご支援をしております。
データ分析基盤の豊富な構築実績に基づくノウハウを体系化したサービスをご提供しておりますので、データ活用でお悩みの際は、是非、電通総研までお声掛けください。
◆ お問い合わせページ:https://itsol.dentsusoken.com/snowflake/inquiry/
*本記事は、2023年4月1日時点の情報を基に作成しています。
製品・サービスに関する詳しいお問い合わせは、電通総研のWebサイトからお問い合わせください。