💨
Snowflake ゼロコピークローンについて
Snowflakeにはデータベース、スキーマ、テーブルのコピーは非常に簡単にできます。
ゼロコピークローンという機能があり、これを活用することで実現できます。
どのようにしてコピーするのか手順と動作を見ていきましょう。
テーブルのクローン
クローン対象のテーブルの確認
クローンするテーブルにどのようなデータが格納されているか確認してみる。
SELECT * FROM OUR_FIRST_DB.PUBLIC.CUSTOMERS
テーブルのクローンを実行
CREATE TABLE {クローン後の新しいテーブル名} CLONE {クローン元のテーブル名}
CREATE TABLE OUR_FIRST_DB.PUBLIC.CUSTOMERS_CLONE CLONE OUR_FIRST_DB.PUBLIC.CUSTOMERS
クローンしたテーブルの中身を確認してみる
SELECT * FROM OUR_FIRST_DB.PUBLIC.CUSTOMERS_CLONE
行数やフィールドの値など同じテーブルが作成されました。
管理画面の左のバーにも表示されています。
クローンしたテーブルを更新してみる
作成したクローンテーブルを問題なくデータ更新できるか確認してみます。
LAST_NAMEカラムをNULLに更新してみます。
UPDATE OUR_FIRST_DB.public.CUSTOMERS_CLONE SET LAST_NAME = NULL;
確認してみます。
SELECT * FROM OUR_FIRST_DB.PUBLIC.CUSTOMERS_CLONE;
LAST_NAMEカラムをNULLに更新されていますね。
一時テーブルのクローン
Snowflakeでは一時テーブル(Temporary Table)のクローンはサポートされていません。
それを確認してみます。
一時テーブル(Temporary Table)の作成
CREATE OR REPLACE TEMPORARY TABLE OUR_FIRST_DB.PUBLIC.TEMP_TABLE(
id int);
CREATE TEMPORARY TABLE OUR_FIRST_DB.PUBLIC.TABLE_COPY CLONE OUR_FIRST_DB.PUBLIC.TEMP_TABLE
SQL compilation error:Temp table can not be cloned to a permanent table; clone to a transient table instead.
スキーマのクローンを実行
OUR_FIRST_DBの'PUBLIC'スキーマをクローンしてみます。
CREATE SCHEMA OUR_FIRST_DB.COPIED_SCHEMA
CLONE OUR_FIRST_DB.PUBLIC;
DBのクローンを実行
OUR_FIRSTをクローンします。
CREATE DATABASE OUR_FIRST_DB_COPY
CLONE OUR_FIRST_DB;
以上で各種クローンの方法と動作でした。
Discussion