1. クローニング(CLONE)とは?
通常、他のデータベースでテーブルをコピーすると、データ量に応じて時間がかかり、ストレージ容量も2倍消費します。 しかし、Snowflakeのクローンは**「ゼロコピー・クローニング」**と呼ばれ、以下の特徴があります。
- 爆速: 数テラバイトの巨大なテーブルでも、数秒で完了します。
- ストレージ代がタダ: コピーした瞬間はデータを複製しないため、追加のストレージ料金は発生しません。
- 独立している: クローンした後のテーブルに対してデータを追加・削除しても、元のテーブルには一切影響しません。
2. なぜ「データがないのに分身」が作れるのか?
Snowflakeはデータを直接テーブルに持っているのではなく、裏側で「マイクロパーティション」というファイル群として管理しています。
- 仕組み: クローンを実行すると、Snowflakeは「新しいテーブル名」を作り、そこから元データと同じファイルを参照するように紐付け(ポインタ)だけを作成します。
- 変更したとき: クローン側のデータを更新すると、その変更分だけが新しいファイルとして書き込まれます。それ以外の「変更していない部分」は引き続き元のファイルを見続けるため、効率が良いのです。
CREATE OR REPLACE TABLE region
CLONE snowbearair_db.promo_catalog_sales.region;- 目的: 本物のデータを使ってテストをしたいけれど、本番データを壊すわけにはいかない。
- 解決策: クローンを作れば、自分専用の箱で本物と同じデータを自由に加工・破壊できます。しかも、ストレージ代を気にせず一瞬で作れるのです。
4. クローニングの活用シーン
- 開発・テスト: 本番データの「スナップショット」を瞬時に作成してテストする。
- バックアップ: 大事な処理の前に、その時点の状態をバックアップとして残しておく。
- 分析: 過去の特定の時点のデータを再現して分析する。



