SnowflakeのViewの種類とそれぞれのViewの特徴とは?(vol.9)

データ分析で活用するViewですが、Snowflakeにも、いくつかの種類のViewがあります。
本ブログ記事では、SnowflakeにおけるViewの種類や、それぞれのViewの特徴を解説します。

SnowflakeでのViewの種類

Snowflakeでは、次の3つのViewがあります。

  1. Standard View(スタンダード・ビュー)
    その名の通り、Snowflakeにおいて標準で使用するViewであり、クエリを用いて簡単に利用できます。
    Viewはクエリに基づいて構築され、データをストレージにコピーしません。
    データに対するクエリは、ビューに対して実行されます。
  2. Materialized View(マテリアライズド・ビュー)
    クエリの結果をストレージに物理的に保存することによって、ビューを高速化します。
    データ更新時は、自動的にMaterialized Viewも更新されます。
    クエリのパフォーマンスを向上させることができますが、ストレージを使用するため、コストもかかります
  3. Secure View(セキュア・ビュー)
    データへのアクセスを制限するために使用されます。
    Secure Viewを使用することで、ユーザーは自分がアクセスできる範囲のみをクエリできます。
    データが暗号化されるため、機密性を向上させることができますが、他のビューと比べると実行速度が遅くなる可能性があります

SnowflakeのView ①Standard View(スタンダード・ビュー)

SnowflakeのStandard Viewの主な特徴は次の通りです。

  1. 読み取り専用
    Standard Viewは、元のテーブルやビューを参照するための読み取り専用のビューです。そのため、ビュー自体にはデータを変更する権限がありません。ただし、元のテーブルやビューのデータが変更された場合、標準ビューに反映されます。
  2. ビューの変更が元のデータに影響を与えない
    Standard Viewを使用すると、ビューの変更が元のデータに影響を与えることがないため、データの保護が可能になります。ビューを使用してデータをクエリする際に、元のデータを変更することはできません。また、元のテーブルやビューを編集した場合でも、自動的に更新されるため、管理が簡単です。
  3. 複数のデータソースを結合可能
    Standard Viewは、複数のデータソースを結合することができます。これにより、異なるデータソースからのデータを一元的に表示することができます。
  4. SQLを使用して作成
    Standard Viewは、SQLを使用して定義されるため、標準のSQL構文を使用して簡単に作成できます。
  5. テーブルと同様にクエリできる
    Standard Viewは、データベース内のテーブルと同様にクエリできます。データベース内の他のテーブルと同じように参照できます。
  6. 結果をキャッシュすることができる
    Standard Viewは、テーブルと同様にビューの結果をキャッシュすることができます。これにより、クエリの実行時間を短縮できます。
  7. 多層的に作成できる
    Standard Viewは、他のビューと同様に、多層的に作成することができます。つまり、複数のビューを組み合わせて新しいビューを作成することができます。ただし、複数のビューを結合してビューを作成する場合、パフォーマンスが低下することがあります。
  8. データの加工と加工のための柔軟性
    Standard Viewを使用すると、データを必要に応じて加工したり、フィルタリングしたり、グループ化したりすることができます。ビューは、SQLを使用して作成されるため、ビューを使用してデータをクエリする際に、より高度なクエリや計算を実行することができます。

SnowflakeのView ②Materialized View(マテリアライズド・ビュー)

SnowflakeのMaterialized Viewの主な特徴は次の通りです。

  1. パフォーマンスの向上
    Materialized Viewは、クエリの実行時にビューのクエリを再度評価するのではなく、クエリ結果を一時テーブルに保存することで、パフォーマンスを向上させます。ただし、データをストレージ領域に保存するため、ストレージコストが発生します。
  2. 自動更新
    Materialized Viewは、元のテーブルに変更があった場合に自動的に更新されます。これにより、常に最新の情報を取得することができます。
  3. クエリの最適化
    Materialized Viewは、元のクエリを実行する際に必要な計算を事前に実行することで、クエリの最適化を行います。これにより、クエリの実行時間が短縮されます。
  4. パーティショニングのサポート
    Materialized Viewは、パーティショニングをサポートしています。これにより、パーティショニングを設定したテーブルに対してマテリアライズド・ビューを作成することができます。
  5. スキーマの分離
    Materialized Viewは、元のテーブルとは別のスキーマに保存することができます。これにより、セキュリティ上の理由から、元のテーブルに直接アクセスする必要がない場合でも、データにアクセスすることができます。

SnowflakeのView ③Secure View(セキュア・ビュー)

Snowflakeには、セキュリティに関する機能が多数組み込まれており、その中にはSecure Viewも含まれます。
(ロールを用いたアクセス制御・権限設定の方法はこちら
SnowflakeのSecure Viewの主な特徴は次の通りです。

  1. データマスキング機能
    Secure Viewを使用すると、ビューに表示されるデータをマスキングすることができます。たとえば、社会保障番号やクレジットカード番号などの個人情報をマスキングすることができます。
  2. ロールベースのアクセス制御
    Secure Viewは、ロールベースのアクセス制御をサポートしています。つまり、特定のロールに属するユーザーだけがビューにアクセスできるようにすることができます。
  3. 行レベルのセキュリティ
    Secure Viewを使用すると、ビューにアクセスするユーザーが表示できるデータを行レベルで制御することができます。たとえば、ある顧客の個人情報を表示するビューを作成した場合、その顧客にアクセス権限がないユーザーは、その顧客の情報を見ることができません。
  4. 暗号化された通信
    Secure Viewは、暗号化された通信を使用してデータの送信を行います。これにより、データが第三者に傍受されることを防ぐことができます。
  5. リソースの最適化
    Secure Viewは、ビューにアクセスするユーザーのクエリを最適化することができます。たとえば、ビューにアクセスするユーザーが必要とするデータだけを抽出することができます。これにより、リソースの無駄を省くことができます。
  6. クエリパフォーマンス
    Secure Viewは、Standard ViewやMaterialized Viewと比べると、実行速度が遅くなる可能性があります。そのため、データマスキングやアクセス制御等が必要ない場合ではSecure Viewを使用しないことをお勧めします。

まとめ

さて、SnowflakeにおけるViewの種類や、それぞれのViewの特徴ををご理解いただけたでしょうか?
それぞれのViewの特徴から、用途に応じた最適なViewをご活用いただければと思います。

弊社ISIDは、データマネジメントの専門家として、お客様のデータ一元管理やデータ活用における戦略策定、データドリブン経営の実現に向けた真の“使える”データマネジメント基盤構築のご支援をしております。
データ分析基盤の豊富な構築実績に基づくノウハウを体系化したサービスをご提供しておりますので、データ活用でお悩みの際は、是非、ISIDまでお声掛けください。
https://itsol.isid.co.jp/snowflake/inquiry/

本記事は、2023年4月1日時点の情報を基に作成しています。製品・サービスに関する詳しいお問い合わせは、ISIDのWebサイトからお問い合わせください。