Snowflake

Fail-safeとは?SnowflakeのContinuous Data Protection

2026-03-21
更新: 2026-03-27
NicheeLab編集部

Snowflakeは「Continuous Data Protection(CDP)」という包括的なデータ保護の仕組みを持ち、 Time Travel → Fail-safe → データ暗号化の多層防御でデータを保護しています。 本記事では、CDPの全体像とFail-safeの仕組み、Time Travelとの明確な違い、 テーブルタイプ別の保護期間の違いを比較表つきで解説します。

Continuous Data Protection(CDP)の全体像

CDPはSnowflakeのデータ保護フレームワークで、以下の3つの要素で構成されます。

CDPのタイムライン:

 ← データ変更時点 ──────────────────────────────→ 時間経過

 [即時]          [Time Travel期間]      [Fail-safe期間]
   │                │                      │
   │   ユーザー自身で復旧可能    Snowflakeサポート
   │   - UNDROP                  のみ復旧可能
   │   - SELECT ... AT/BEFORE    (ベストエフォート)
   │   - CREATE ... CLONE ... AT/BEFORE
   │                │                      │
   │    1〜90日(設定次第)        7日間(固定)
   ├──────────────────┤──────────────────────┤
                                             │
                                     保護期間終了 → データ完全削除

Time Travel vs Fail-safe 比較表

比較項目Time TravelFail-safe
制御主体ユーザー(セルフサービス)Snowflake(サポート経由)
保護期間0〜90日(DATA_RETENTION_TIME_IN_DAYSで設定)7日間(固定・変更不可)
復旧方法UNDROP / SELECT ... AT|BEFORE / CLONE ... AT|BEFORESnowflakeサポートへの依頼
復旧の保証保証される(期間内なら確実に復旧可能)ベストエフォート(保証なし)
開始タイミングデータ変更直後からTime Travel期間終了後から
ストレージ費用変更前データの保持分だけ課金変更前データの保持分だけ課金
対象テーブルタイプPermanent / Transient / TemporaryPermanentのみ
設定パラメータDATA_RETENTION_TIME_IN_DAYSなし(自動適用)

テーブルタイプ別の保護期間

テーブルタイプによってTime TravelとFail-safeの適用期間が異なります。コスト最適化とデータ保護のバランスを取る上で、適切なテーブルタイプの選択が重要です。

テーブルタイプTime Travel(最大)Fail-safe合計最大保護期間主な用途
Permanent(Standard Edition)1日7日8日本番データ
Permanent(Enterprise Edition+)90日7日97日本番データ
Transient1日0日1日ステージング・中間処理
Temporary1日0日1日セッション内一時処理

テーブルタイプの特徴

-- Permanentテーブル(デフォルト)
CREATE TABLE production_data (
  id NUMBER,
  data VARIANT
);
-- Time Travel: 最大90日(Enterprise+)、Fail-safe: 7日

-- Transientテーブル
CREATE TRANSIENT TABLE staging_data (
  id NUMBER,
  raw_json VARIANT
);
-- Time Travel: 最大1日、Fail-safe: なし

-- Temporaryテーブル
CREATE TEMPORARY TABLE session_temp (
  key STRING,
  value STRING
);
-- Time Travel: 最大1日、Fail-safe: なし
-- セッション終了時に自動削除

-- Time Travel保持期間の設定
ALTER TABLE production_data
  SET DATA_RETENTION_TIME_IN_DAYS = 90;

-- テーブルの保持期間を確認
SHOW TABLES LIKE 'production_data';
-- → retention_time カラムで確認

ストレージコストへの影響

Time TravelとFail-safeは変更前のデータ(古いマイクロパーティション)を保持するため、追加のストレージ費用が発生します。

ストレージ消費の内訳:

[アクティブストレージ]     ← 現在のテーブルデータ
         +
[Time Travelストレージ]    ← 変更前のマイクロパーティション(設定期間分)
         +
[Fail-safeストレージ]      ← Time Travel期間後のデータ(7日分)
         =
[合計ストレージ費用]

※ 頻繁にUPDATE/DELETEされるテーブルほどTime Travel/Fail-safeのストレージが大きくなる
※ INSERT ONLYのテーブルでは追加ストレージはほとんど発生しない
-- ストレージ使用状況の確認
SELECT
  TABLE_NAME,
  ACTIVE_BYTES / (1024*1024*1024) AS active_gb,
  TIME_TRAVEL_BYTES / (1024*1024*1024) AS time_travel_gb,
  FAILSAFE_BYTES / (1024*1024*1024) AS failsafe_gb,
  (ACTIVE_BYTES + TIME_TRAVEL_BYTES + FAILSAFE_BYTES) / (1024*1024*1024) AS total_gb
FROM SNOWFLAKE.ACCOUNT_USAGE.TABLE_STORAGE_METRICS
WHERE TABLE_CATALOG = 'MY_DB'
ORDER BY total_gb DESC
LIMIT 20;

Time Travelの操作

-- 過去の時点のデータを参照(AT句)
SELECT * FROM sales
  AT(TIMESTAMP => '2026-03-20 10:00:00'::TIMESTAMP);

-- 指定時間前のデータを参照(OFFSET)
SELECT * FROM sales
  AT(OFFSET => -3600);  -- 1時間前

-- 特定のステートメント実行前のデータを参照(BEFORE句)
SELECT * FROM sales
  BEFORE(STATEMENT => '01b2c3d4-0001-a234-0000-00000000beef');

-- ドロップしたテーブルの復元
UNDROP TABLE deleted_sales;

-- 過去時点のクローンを作成
CREATE TABLE sales_backup CLONE sales
  AT(TIMESTAMP => '2026-03-20 10:00:00'::TIMESTAMP);

UNDROP動作の仕組み

UNDROPはTime Travel期間内でのみ有効です。同名のテーブルが既に存在する場合はUNDROPは失敗します。

  • UNDROP TABLE: ドロップしたテーブルを復元
  • UNDROP SCHEMA: ドロップしたスキーマを復元(配下のテーブルも復元)
  • UNDROP DATABASE: ドロップしたデータベースを復元
  • 同名オブジェクトが存在する場合は先にRENAMEが必要

データ暗号化

CDPの第3の柱として、SnowflakeはすべてのデータをAES-256で自動暗号化します。

暗号化レベル説明エディション
保管時暗号化(At Rest)ストレージ上のデータをAES-256で暗号化全エディション
転送時暗号化(In Transit)TLS 1.2によるネットワーク暗号化全エディション
階層的鍵管理ルートキー→アカウントキー→テーブルキーの階層全エディション
定期的なキーローテーションSnowflakeが自動で鍵をローテーション全エディション
Tri-Secret Secure(顧客管理鍵)顧客のKMS鍵とSnowflake鍵を組み合わせBusiness Critical

試験対策のポイント

  • Fail-safeは7日間固定で変更不可、復旧はSnowflakeサポート経由のベストエフォート
  • Time Travelはユーザーが自身で復旧可能(UNDROP/AT/BEFORE/CLONE)
  • TransientテーブルとTemporaryテーブルにはFail-safeが適用されない(0日)
  • Enterprise Edition以上ではPermanentテーブルのTime Travelを最大90日に設定可能
  • Standard EditionのTime Travelは最大1日
  • 同名テーブルが存在する場合、UNDROPは失敗する
  • Fail-safe期間はTime Travel期間の終了後に開始する

サンプル問題

Fail-safe / CDP

問題 1

Enterprise Editionで作成したTransientテーブルのTime TravelとFail-safeに関する正しい記述はどれか?

  1. A. Time Travel最大90日、Fail-safe 7日で合計最大97日間の保護が可能
  2. B. Time Travel最大1日、Fail-safe 7日で合計最大8日間の保護が可能
  3. C. Time Travel最大1日、Fail-safe 0日で合計最大1日間の保護が可能
  4. D. Time Travel最大90日、Fail-safe 0日で合計最大90日間の保護が可能

正解: C

Transientテーブルはエディションに関係なくTime Travelが最大1日、Fail-safeは0日(適用なし)です。Enterprise Edition以上でTime Travelを最大90日に設定できるのはPermanent(永続)テーブルのみです。Transientテーブルの合計保護期間は最大1日です。

よくある質問

Fail-safeのデータにユーザーが直接アクセスすることはできますか?

いいえ。Fail-safeのデータにはユーザーが直接アクセスすることはできません。Fail-safeはSnowflakeが管理する災害復旧用の保護層であり、データの復旧が必要な場合はSnowflakeサポートに連絡してリカバリを依頼する必要があります。ユーザーが自分でUNDROPやAT/BEFOREで取得できるのはTime Travel期間内のデータのみです。

Fail-safeのストレージ費用を削減する方法はありますか?

Fail-safe自体の期間(7日間)を変更することはできません。ストレージコストを削減するにはテーブルタイプの選択が重要です。Transientテーブルは0日のFail-safe、Temporaryテーブルも0日のFail-safeとなるため、ステージング用や中間処理用のテーブルにはこれらのテーブルタイプを使用することで、Fail-safeのストレージ費用を抑えられます。

Time TravelとFail-safeの期間を合計した保護期間は最大何日ですか?

Permanent(永続)テーブルでEnterprise Edition以上の場合、Time Travel最大90日+Fail-safe 7日で合計最大97日間の保護が可能です。Standard EditionではTime Travelは最大1日のため、合計最大8日間です。なお、Transientテーブルは最大Time Travel 1日+Fail-safe 0日=1日、Temporaryテーブルは最大Time Travel 1日+Fail-safe 0日=1日ですが、セッション終了時にテーブル自体が削除されます。

この記事で学んだ内容を問題で確認しましょう

16,000問以上の問題で実力チェック

無料で問題を解いてみる
この記事の著者

NicheeLab編集部

データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。


関連記事
Snowflake

Snowflake資格一覧|全11試験(SnowPro)の難易度・費用

Snowflake認定資格(SnowPro)全11試験の一覧・難易度・費用・出題範囲を徹底解説。...

Snowflake

Snowflake試験の難易度ランキング|全11資格を徹底比較

Snowflake(SnowPro)認定全11試験の難易度をランキング形式で比較。学習時間・合格に必要なスキルから分析。...

Snowflake

Snowflake資格の勉強方法|効率的な学習ルートと合格のコツ

Snowflake認定資格(SnowPro)に最短で合格するための勉強方法。公式リソース・学習スケジュールを徹底ガイド。...

Snowflake

SnowPro Core試験完全解説|出題範囲・問題例・合格戦略

SnowPro Core Certification(COF-C03)を徹底解説。出題範囲・100問の試験形式・合格ライ...

Snowflake

SnowPro Platform Associate完全解説|入門試験の攻略

SnowPro Associate: Platform Certification(SOL-C01)を徹底解説。最も簡単...

Snowflakeの記事一覧 (103件)
© 2026 NicheeLab All rights reserved.