【Snowflake】データ共有/複製機能を整理してみた

こんにちは、SCSK松岡です。

本記事では、クラウドデータプラットフォームであるSnowflakeが提供する数多くの機能のうち、データの共有/複製に焦点を当ててご紹介します。

データ分析・活用基盤の構築において、データの共有や複製は、システムの柔軟性や拡張性を高め、また管理を容易にするためのとても重要な機能です。

Snowflakeにおける代表的な共有/複製機能を特徴から分類し、それぞれのユースケースを記載しました。実現したい目的に応じてご参考いただければ幸いです。

Snowflakeとは

Snowflake (Snowflake Cloud Data Platform)は、Snowflake社が提供するSaaS型のクラウドデータプラットフォームです。

データ管理、セキュリティ、ガバナンス、可用性、データレジリエンスをサポートしたフルマネージド型のサービスであり、ウェアハウスのスケーリング/ポリシー制御/データ共有の柔軟性などから、デジタルデータの一元管理に優れたプラットフォームとして注目を集めています。

 

Snowflakeの共有/複製機能の分類

Snowflakeの主な共有/複製機能は、大きく以下の2観点で分けることができます。

「アカウントをまたいでデータ共有・複製するか」
「物理的にデータをコピーして共有・複製するか」

こちらの観点に基づき、Snowflakeの機能を4タイプに分類してみました

Snowflakeにおける「アカウント」とは、ユーザーやリソースを管理するための単位です。
通常、部門やプロジェクトごとにアカウントを分割して管理します。

それぞれの機能についてご紹介します。

 

ゼロコピークローン

ゼロコピークローンは、データの物理的なコピーを行わずにクローンを即座に作成できる機能です。

アカウント内のデータベース、スキーマ、テーブルをそれぞれの単位で自由にクローンすることができます。

概要を図で表すと以下のようになります。

Snowflake_ゼロコピークローン概要図

メタデータ層は、データオブジェクト(テーブル、ビュー、インデックスなど)に関する構造的な情報を管理します。
ストレージ層は、Snowflakeで管理されるデータの物理的な保管場所です。

ストレージのコストを抑えながら(※)、スナップショットを容易に作成できることから、テスト環境を準備するようなユースケースで役立ちます。

※クローン時点で追加のストレージコストは発生しませんが、クローンしたデータを変更した場合は、それに応じてストレージの料金が発生します。

また、定義された期間の任意の時点にアクセスできるタイムトラベル機能を利用し、過去の履歴データを対象にクローンすることで、オブジェクトをリカバリするような使い方も可能です。

 

データシェアリング

Snowflakeでは、データシェアリングの機能を活用することで、異なるアカウント間であっても柔軟にデータの共有が可能です。

データシェアリングでは、データのコピーは行わずに、データの共有先アカウント(コンシューマー)に読み取り専用の権限を付与します。

迅速かつ簡単に共有できることから、最新のデータに基づく分析を、異なる部門・組織間で行いたいようなユースケースで役立ちます。

Snowflake_データシェアリング概要図

 

アンロード (エクスポート)

ゼロコピークローンがデータコピーを行わずにオブジェクトを複製する一方で、バックアップや他システムとの連携など、外部にデータをコピーしたいケースもあるかと思います。

Snowflakeでは、データを外部のクラウドストレージにアンロード(エクスポート)する機能も用意されています。

Snowflake_アンロード概要図

アンロードする際の対象データは、SQLクエリを用いて柔軟に指定することが可能です

 

データベースレプリケーション/ アカウントレプリケーション

災害時の備えとしてリージョン間の冗長性を持たせたい場合のように、異なるアカウント間でデータのコピーを行いたいケースもあるかと思います。

Snowflakeのデータベースレプリケーションの機能では、複製スケジュールを設定した上で、
柔軟にアカウント間のデータを同期させることが可能です。

Snowflake_レプリケーション概要図

アカウントがBusiness Critical以上のプランであれば、上位の機能として、
ウェアハウス、ユーザー、ロール等も含めて同期させることができるアカウントレプリケーションが利用できます。

 

最後に

「共有」「複製」といっても、Snowflakeでは様々な機能やオプションが提供されています。
目的に合ったものを見つけるためには、いったん立ち止まって「どこ・誰との共有か」「何のための複製か」を明確にすることが重要だなと今回整理して再認識しました。

公式サイトでは、各機能のより詳細な仕組みや考慮事項の説明があるので、そちらも合わせてご参考ください。

タイトルとURLをコピーしました