◾️はじめに
* Snowflakeで誤操作した場合の復元方法を学ぶ
目次
【1】Snowflake Time Travel 1)保持期間 2)復元方法 【2】Snowflake Fail-safe 1)保持期間 2)復元方法 3)使用上の注意:一時テーブル - TRANSIENT
【1】Snowflake Time Travel
* テーブルなどのデータオブジェクトの過去の状態に遡って データを参照・復元できる機能 => 誤ってデータを削除・更新してしまった場合でも、 指定した過去の時点の状態に戻すことができる
https://docs.snowflake.com/ja/user-guide/data-time-travel
より抜粋 ~~~~ Snowflake Time Travelでは、定義された期間内の任意の時点で 履歴データ(つまり、変更または削除されたデータ)にアクセスできます。 Time Travelは、次のタスクを実行するための強力なツールとして機能します。 * 誤ってまたは意図的に削除された可能性のあるデータ関連オブジェクト (テーブル、スキーマ、およびデータベース)の復元。 * 過去の重要なポイントからのデータの複製とバックアップ。 * 指定された期間のデータ使用量/操作の分析。 ~~~~
1)保持期間
* 1~90日(Edition依存) => 標準は1日(24時間) => Enterprise Edition以上:最大90日間まで保持期間を設定可能
2)復元方法
* ユーザがSQL等で復元可能 => SELECT ステートメントおよび CREATE ... CLONE コマンドで 指定できる AT | BEFORE 句(オブジェクト名の直後)
AT | BEFORE 句
https://docs.snowflake.com/ja/sql-reference/constructs/at-before
指定方法
* TIMESTAMP * OFFSET (現在時刻との秒単位の時差) * STATEMENT (ステートメントのクエリ ID)
【2】Snowflake Fail-safe
* Fail-safeは、Snowflakeが管理する「最終的なデータ回復手段
https://docs.snowflake.com/ja/user-guide/data-failsafe
補足:一般用語 Fail-safe(フェイルセーフ)について
* 機械に故障や異常状態が発生した場合に 安全側にとどまるようにする対策
1)保持期間
* 7日(固定) => Time Travelの保持期間後、 さらに7日間分のデータをSnowflake自体が復旧できるように保持
2)復元方法
* Snowflakeサポート経由
3)使用上の注意:一時テーブル - TRANSIENT
* TRANSIENTテーブル(TEMPORARYも)では、Fail-safeを使えない
機能 | 通常テーブル | TRANSIENTテーブル | TEMPORARYテーブル |
---|---|---|---|
Time Travel | 利用可能(1~90日) | 利用可能(1~90日) | 利用可能(最大1日) |
Fail-safe | 7日間付与される | 付与されない | 付与されない |
関連記事
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/2022/09/03/012113
Snowflake ~ Time Travel関連のSQL構文 ~
https://dk521123.hatenablog.com/entry/2025/09/01/000629