【Snowflake】Snowflake ~ Time Travel / Fail-safe ~

◾️はじめに

* 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