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