Snowflakeのデータシェアリング(データ共有)機能とは?~データ共有の仕組みを解説~(vol.22)

  • 公開日:
  • 最終更新日:

Snowflakeアカウント内にあるデータを他のSnowflakeアカウントのユーザーと共有する方法として、データシェアリング機能が存在します。
本ブログ記事では、Snowflakeのデータシェアリング機能を用いた3つのデータ共有の方法や、それぞれの方法による違い/メリットについて解説します。

Snowflakeのデータシェアリング機能とは?

Snowflakeには、データをコピーせず、相手に合わせて必要なデータのみを参照させる/共有することができるデータシェアリング機能が存在します。このデータシェアリング機能により、組織内外でガバナンスが効いたセキュアな方法でデータを共有することが可能となります。

データシェアリング機能を用いたデータ共有の方法には、次の3つがあります。

  • リスト:特定のアカウントに非公開でデータを共有することが可能
  • 直接共有:同じSnowflakeリージョン内にあるアカウントとデータを共有することが可能
  • データ交換(Data Exchange):招待&選択したアカウントグループとデータを共有することが可能

*それぞれの特徴や作成/公開方法について、次章より解説します。

押さえておくべき前提知識:プロバイダーとコンシューマーとは?

Snowflakeのデータシェアリング機能を用いたデータ共有方法を説明する前に、押さえておくべき前提知識として、「プロバイダー」と「コンシューマー」について解説します。

  • プロバイダー
    プロバイダーとは、テーブルやビューなど、公開したいデータを提供する側のSnowflakeアカウントを指します。
    プロバイダーはリストや関連するデータを他のアカウントに提供することで共有することが可能になります。
    プロバイダーがデータを共有するメリットは、データを共有すると、データにアクセスできるユーザーを管理し、さまざまな人やグループ間でデータを同期し続けるという問題を回避できることです。
  • コンシューマー
    コンシューマーとは、プロバイダーから共有されたテーブルやビューなどのデータを共有される側のSnowflakeアカウントを指します。
    コンシューマーは、プロバイダーが共有したデータにアクセスすることができます。
    コンシューマーが共有されたデータを使用するメリットは、プロバイダーが共有したデータがSnowflakeに保持されるため、データ変換を減らすことができ、共有されているデータを自分のデータと簡単に結合できることです。

Snowflakeのデータシェアリング機能を用いたデータ共有方法:①リスト

Snowflakeのデータシェアリング機能を用いた3つデータ共有方法のうち、本章では「リスト」について解説します。

リストとは、特定のアカウントに非公開でデータを共有することを可能とする機能です。
リストを利用することにより、任意のリージョンの1つ以上のアカウントに対して、テーブルやビューなどのデータを、他のSnowflakeプロバイダーに共有することができます。
リストを利用すると、プロバイダーのSnowflakeが存在するクラウドやリージョンが異なるクラウド、プロバイダーと同一リージョン内にあるアカウントとデータを共有することが可能になります。

リストの作成と公開方法

リストの作成はACCOUNTADMINロールで行います。
データリストを作成するには、Snowsightで[Data Products] » [Private Sharing]に移動し、データの共有ドロップダウンリスト(Share)から「Publish to Specified Consumers(特定のSnowflakeアカウントへの発行)」または「Publish to Marketplace(マーケットプレイスへの発行)」を選択します。

リストのタイトルを入力し、「Only Specified Consumers」を選択すると、特定の消費者のみデータ共有を行うことが可能になります。
「Anyone on the Marketplace」を選択すると、マーケットプレイスへ公開することができます。
*マーケットプレイスへ公開を行うためには、プロバイダープロファイルを作成し、Snowflake の承認を受ける必要があります。

公開したいテーブルやビューなどを選択して、公開するコンシューマーアカウントを設定してPublish(公開)することで、データ共有を実施できます。

コンシューマーは、共有されたテーブルなどのリストから読取専用データベースを作成することで、共有されたデータに対してアクセスすることが可能になります。
*共有されたデータにアクセスするだけではなく、ビューの作成なども可能となります。
*共有されたデータに対してクローンをすることはできませんので、注意が必要です。

Snowflakeのデータシェアリング機能を用いたデータ共有方法:②直接共有

Snowflakeのデータシェアリング機能を用いた3つデータ共有方法のうち、本章では「直接共有」について解説します。

直接共有とは、同じSnowflakeリージョン内にあるアカウントとデータ共有を可能とする機能です。
直接共有は「Secure Data Sharing」を利用して、同じリージョン内にあるSnowflake の1つ以上のアカウントとデータを共有します。直接共有した場合は、アカウント間で実際のデータのコピーや転送は行われず、アカウント間で共有されるすべてのデータベースオブジェクトは読み取り専用(変更/削除はできない)ことを留意しましょう。また、直接共有は、異なるクラウドやリージョンにあるSnowflakeアカウントとは直接共有できないことも覚えておきましょう。
*「Secure Data Sharing」を利用した場合、アカウント間で実際のデータのコピーや転送は行われません。そのため、プロバイダーは迅速かつ簡単に「Secure Data Sharing」を設定でき、コンシューマーは共有データにほぼ瞬時にアクセスできるというメリットがあります。
*直接共有によりアカウント間で共有されるすべてのデータベースオブジェクトは“読み取り専用”のため、テーブルデータの追加または変更を含め、オブジェクトの変更または削除はできません。

直接共有では、次のオブジェクトを共有できます。

  • 外部テーブル(EXTERNAL TABLE)
  • 動的テーブル(DYNAMIC TABLE)
  • セキュアビュー(SECURE VIEW)
  • 安全なマテリアライズドビュー(SECURE MATERIALIZED VIEW)
  • 安全な UDFs(SECURE FUNCTION)
  • テーブル

直接共有の作成と公開方法

直接共有の作成はACCOUNTADMINロールで行います。
直接共有を作成するには、Snowsightで[Data Products] » [Private Sharing]に移動し、データの共有ドロップダウンリスト(Share)から「Create a Direct Share(直接共有の作成)」を選択します。

公開したいテーブルやビューなどを選択し、共有するコンシューマーアカウントを設定して「Create Share(公開の作成)」することで、データ共有を実施できます。

Snowflakeのデータシェアリング機能を用いたデータ共有方法:③データ交換(Data Exchange)

Snowflakeのデータシェアリング機能を用いた3つデータ共有方法のうち、本章では「データ交換(Data Exchange)」について解説します。

データ交換(Data Exchange)は、招待した特定のメンバーとデータを安全に共有することができます。
アカウントグループを設定・管理し、そのグループにデータを共有することが可能になります。
招待した特定のメンバーのグループとデータを安全に共有することができ、サポートされているすべてのクラウドプラットフォームのVPS(Virtual Private Snowflake)以外でホストされているすべてのSnowflakeアカウントでデータを共有することができます。
*VPS(Virtual Private Snowflake)のアカウントとはデータを共有することができません。
また、データ交換に関する(交換の構成、データリストの構成)設定はACCOUNTADMINロールで行うことができます。

まとめ

ここまで、データシェアリング機能を用いたデータ共有方法について、共有方法の種類、注意点についてや共有するメリットについて解説してまいりました。
データシェアリング機能を活用することで、他アカウントとのデータ共有やSnowflake マーケットプレイスを通じたデータの販売/購入をセキュアに行えるため、データ活用の幅を広げることができます。
*「Snowflake マーケットプレイス」の概要/利用方法/活用事例については、「Snowflake マーケットプレイス とは?~データ共有で広がる世界~(vol.16)」でご紹介しておりますので是非ご覧ください。

弊社では、お客様ごとの要件(用途/データ連携元の環境構成/今後の活用方法など)に応じたデータ分析基盤の構築/拡充や、ガバナンスやセキュリティを担保したデータ活用の実現に向けたデータマネジメント体制の整備などをご支援しております。
Snowflakeを用いたデータ活用でお悩みの際は、是非、弊社までお声掛けください。

本記事は、2024年5月8日時点の情報を基に作成しています。製品・サービスに関する詳しいお問い合わせは、弊社Webサイトからお問い合わせください。
https://itsol.dentsusoken.com/snowflake/inquiry/