こんにちは、SCSK松岡です。
本記事では、クラウドデータプラットフォームであるSnowflakeが提供する数多くの機能のうち、データの共有/複製に焦点を当ててご紹介します。
データ分析・活用基盤の構築において、データの共有や複製は、システムの柔軟性や拡張性を高め、また管理を容易にするためのとても重要な機能です。
Snowflakeにおける代表的な共有/複製機能を特徴から分類し、それぞれのユースケースを記載しました。実現したい目的に応じてご参考いただければ幸いです。
Snowflakeとは
Snowflake (Snowflake Cloud Data Platform)は、Snowflake社が提供するSaaS型のクラウドデータプラットフォームです。
データ管理、セキュリティ、ガバナンス、可用性、データレジリエンスをサポートしたフルマネージド型のサービスであり、ウェアハウスのスケーリング/ポリシー制御/データ共有の柔軟性などから、デジタルデータの一元管理に優れたプラットフォームとして注目を集めています。
Snowflakeの共有/複製機能の分類
Snowflakeの主な共有/複製機能は、大きく以下の2観点で分けることができます。
「アカウントをまたいでデータ共有・複製するか」
「物理的にデータをコピーして共有・複製するか」
こちらの観点に基づき、Snowflakeの機能を4タイプに分類してみました
それぞれの機能についてご紹介します。
ゼロコピークローン
ゼロコピークローンは、データの物理的なコピーを行わずにクローンを即座に作成できる機能です。
アカウント内のデータベース、スキーマ、テーブルをそれぞれの単位で自由にクローンすることができます。
概要を図で表すと以下のようになります。
ストレージのコストを抑えながら(※)、スナップショットを容易に作成できることから、テスト環境を準備するようなユースケースで役立ちます。
※クローン時点で追加のストレージコストは発生しませんが、
データシェアリング
アンロード (エクスポート)
ゼロコピークローンがデータコピーを行わずにオブジェクトを複製する一方で、バックアップや他システムとの連携など、外部にデータをコピーしたいケースもあるかと思います。
Snowflakeでは、データを外部のクラウドストレージにアンロード(エクスポート)する機能も用意されています。
アンロードする際の対象データは、SQLクエリを用いて柔軟に指定することが可能です
データベースレプリケーション/ アカウントレプリケーション
最後に
「共有」「複製」といっても、Snowflakeでは様々な機能やオプションが提供されています。
目的に合ったものを見つけるためには、いったん立ち止まって「どこ・誰との共有か」「何のための複製か」を明確にすることが重要だなと今回整理して再認識しました。
公式サイトでは、各機能のより詳細な仕組みや考慮事項の説明があるので、そちらも合わせてご参考ください。