【Snowflake】Snowflake ~ テーブルの簡易バックアップを考える ~

■ はじめに

 念のために、Snowflakeの既存のテーブルをバックアップとる
って作業が発生しそうなので、簡単な方法でできないか調べてみた
 => 結論としては、原始的にSQLでやることになりそうだが
  その経過で調べた「CREATE CLONE」についても触れる
 => あと、CREATE TABLE ... AS SELECT が、CTAS(C-TAS; シータス)っていうらしい
  (公式ドキュメントがそう言ってた)

目次

【1】SQLでバックアップテーブルを作成する
 1)サンプル
【2】補足1:CREATE CLONE
【3】補足2:テーブルのリネーム

【1】SQLでバックアップテーブルを作成する

* 原始的に、SQLでやる。

1)サンプル

例1:CREATE TABLE ... AS SELECT (CTAS)を使う
https://docs.snowflake.com/ja/sql-reference/sql/create-table.html#create-table-as-select-also-referred-to-as-ctas

use database your_database;
use schema your_schema;

-- CTASっていうらしい(公式より)
create table backup_table as
(
  select 
    $1 as id, 
    $2 as name
  from 
    your_database.your_schema.target_table
);

例2:SELECT INSERTを使う

use database your_database;
use schema your_schema;

create table your_database.your_schema.backup_table (
  id varchar,
  name varchar
);

insert into your_database.your_schema.backup_table(id, name)
 select * from your_database.your_schema.target_table;

【2】補足1:CREATE CLONE

* 以下の「CREATE <オブジェクト> ... CLONE」を使って
 テーブルのバックアップを考えたが、ゼロコピークローンで
 物理コピーじゃないので、使用できなさそう

https://docs.snowflake.com/ja/sql-reference/sql/create-clone.html

より抜粋
~~~~
システム内の既存のオブジェクトのコピーを作成します。
このコマンドは主に、データベース、スキーマ、および
テーブルの ゼロコピークローン を作成するために使用されます。
~~~~

補足:ゼロコピークローンとは?
https://dk521123.hatenablog.com/entry/2021/11/27/134934

より抜粋
~~~~~
* Snowflake は、「論理テーブル(メタ情報)」と「物理ストレージ」が分離されている
 => Cloneの場合、データが物理的にはコピーされず、同じデータを参照
 => 物理的にはコピーされないので、めっちゃ早い(だから「ゼロコピー」)
~~~~~

【3】補足2:テーブルのリネーム

* とりあえず、テーブルをどかしておくだけなら
 「ALTER TABLE ... RENAME TO」でリネームしておけばいい
 => 「ALTER TABLE ... RENAME TO」についての詳細は、
  以下の関連記事を参照のこと

https://dk521123.hatenablog.com/entry/2022/09/03/012113

関連記事

Snowflake ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/02/130111
Snowflake ~ 入門編 / Hello world
https://dk521123.hatenablog.com/entry/2021/11/22/212520
Snowflake ~ 基本編 / ゼロコピークローン ~
https://dk521123.hatenablog.com/entry/2021/11/27/134934
Snowflake ~ 基本編 / ステージ ~
https://dk521123.hatenablog.com/entry/2022/09/01/220643
Snowflake ~ 基本編 / CREATE・ALTER TABLE ~
https://dk521123.hatenablog.com/entry/2022/09/03/012113