❄️

3分でわかるSnowflake第6回 便利機能:Time Travel・Fail Safe・Zero-Copy Cloningをサクッと解説

に公開

対象読者

  • データエンジニア、データアナリスト、開発担当者
  • Snowflakeの運用効率化やデータ保護を重視する技術者
  • 開発・検証環境の効率化を目指す管理者

説明すること / 説明しないこと

説明すること

  • Time Travel、Fail Safe、Zero-Copy Cloningの概要と活用方法
  • Table Typesとストレージコスト最適化のポイント
  • ベストプラクティスとよくある失敗の回避策

説明しないこと

  • Snowflakeの内部実装や暗号化アルゴリズムの詳細
  • 他社DWHとの詳細な比較やベンチマーク
  • 高度なSQLチューニングやパフォーマンス最適化手法

1. なぜこれらの機能が重要なのか

Snowflakeは、データ保護を強化し、開発効率を向上させるために、他のDWHにはない高度な機能を提供します。これにより、運用リスクを低減し、迅速な開発を実現します。
本記事では、以下の3つを中心に解説します。

  • Time Travel:過去のデータにアクセス
  • Fail Safe:災害復旧のための最終手段
  • Zero-Copy Cloning:データコピーなしで複製

2. Time Travel:過去のデータを簡単に復元

Time Travelを利用することで、過去のデータベース、スキーマ、テーブルの状態に容易にアクセスでき、誤削除や検証作業に迅速に対応できます。

特徴

  • 保持期間:Standardは1日、Enterprise以上は最大90日
  • 用途
    • 誤削除データの復元
    • 過去スナップショットでの検証

サンプルSQL

-- 過去の状態を参照
SELECT * FROM orders AT (TIMESTAMP => '2025-08-01 00:00:00');

-- 過去の状態を基にテーブルを復元
CREATE TABLE orders_restore CLONE orders
BEFORE (TIMESTAMP => '2025-08-01 00:00:00');

3. Fail Safe:災害復旧のための最後の砦

Fail Safeは、Time Travel期間終了後の7日間、Snowflakeがデータを保持する仕組みです。

  • ユーザー操作不可(復旧はSnowflakeサポートのみ)
  • 対象:Permanentテーブルのみ
  • 注意:ストレージコストに影響

4. Zero-Copy Cloning:データコピーなしで複製

Zero-Copy Cloningは、データを物理的にコピーせずにテーブル、スキーマ、データベースを複製でき、ストレージコストを削減し、環境構築を高速化します。

  • 用途
    • 開発・テスト環境の作成
    • 本番データを使った検証
  • メリット
    • ストレージコスト削減
    • 作成が高速

サンプルSQL

-- テーブルをクローン
CREATE TABLE dev_orders CLONE prod_orders;

-- スキーマをクローン
CREATE SCHEMA dev_schema CLONE prod_schema;

5. Table Typesとストレージコスト最適化

Snowflakeには3種類のテーブルタイプがあります。

  • Permanent:Time Travel(最大90日)+Fail Safe
  • Transient:Time Travel(最大1日)、Fail Safeなし
  • Temporary:セッション終了時に削除

ベストプラクティス

  • 開発・検証用:TransientまたはTemporary
  • 本番データ:Permanent

6. ベストプラクティス

  • Time Travel期間を最小限に設定(不要なストレージコストを防ぐ)
  • 開発環境はZero-Copy Cloningで作成
  • Fail Safeは最後の手段と認識し、Time Travelで復旧できるように運用

7. よくある失敗と回避策

失敗1:Time Travelを90日に設定してコスト増

  • 回避策:開発環境はTRANSIENTテーブルを使用

失敗2:クローン後に元データを削除して影響発生

  • 回避策:クローンはメタデータ参照なので、元データ削除に注意

8. 次回予告

次回は 「Snowflakeのデータ共有とセキュリティ」 を解説します。
RBAC、データマスキング、Reader Accountの仕組みを詳しく紹介します。

Discussion