Xでデータエンジニアの好きなSnowflake機能のアンケートを見かけました。Time Travel、Cloning、Streams、Tasksが挙がっていて、特にTime TravelとCloningの人気が高い。

自分でも試してみました。

Time Travel: 「昨日に戻して」が一発

Time Travelは、過去のある時点のデータにアクセスできる機能です。

-- 1時間前のデータを確認
SELECT * FROM sales AT(OFFSET => -60*60);

-- 特定の日時のデータを確認
SELECT * FROM sales AT(TIMESTAMP => '2026-02-25 10:00:00'::timestamp);

間違えてDELETEしてしまった場合も復旧できます。

-- やってしまった
DELETE FROM sales WHERE month = '2026-02';

-- 復活
UNDROP TABLE sales;

Standard Editionで1日、Enterprise以上で最大90日遡れます。ストレージコストは差分保存なので、追加分だけ。

BigQueryにもスナップショット機能はありますが、BigQueryは明示的にスナップショットを作る必要があります。Snowflakeは 自動で保持されている ので、「あ、やばい」と思ったときにすぐ戻れる。この違いは大きい。

Cloning: テスト環境が一瞬で立つ

Cloningは、テーブルやデータベースのクローンを一瞬で作れる機能です。

-- 本番テーブルのクローンを作成(一瞬で完了)
CREATE TABLE sales_test CLONE sales;

-- データベースまるごとのクローンも可能
CREATE DATABASE analytics_dev CLONE analytics_prod;

ポイントは ゼロコピークローン だということ。物理的にデータをコピーしません。メタデータだけコピーするので、一瞬で完了し、追加ストレージコストもほぼゼロです。変更した分だけ課金される。

本番データで安全にテストできる。新しい集計ロジックを試したいけど本番を壊したくない、というときにクローンを作ってそっちで試せばいい。

組み合わせ: Time Travel + Cloning

この2つを組み合わせると、さらに便利です。

-- 昨日の時点のデータをクローンとして保存
CREATE TABLE sales_yesterday CLONE sales AT(OFFSET => -86400);

「昨日のデータと今日のデータを比較する」が一発でできる。月次の変動分析とか、前日比の確認に使えます。

現場だとどうなるか

クライアント先で 「本番触るの怖い」 と言われる場面は多いです。

  • 新しい集計ロジックを試したいけど、本番データを壊したくない → Cloningで解決
  • 「先月のデータと今月のデータ、何が変わった?」を知りたい → Time Travelで比較
  • 誰かが間違えてデータを消してしまった → UNDROPで復旧

「やり直せる」という安心感 は、技術的な機能以上に、データ活用を始める心理的なハードルを下げてくれます。「壊しても大丈夫」と言えることが、最初の一歩を踏み出す後押しになる。

まとめ

  • Time TravelとCloningは地味だけど「安心して触れる環境」を作る機能
  • Cloningのゼロコピーは、テスト環境のコスト問題を根本から解決する
  • データ活用を始めるとき「壊しても大丈夫」は一番大事な前提条件
  • 次の記事では、もっと地味だけど実務で効く機能を調べてみます