You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake瞬态表能否在数据库重启后留存?如何用Time Travel恢复?

Snowflake瞬态表(Transient Tables)常见问题解答

瞬态表在数据库重启后是否留存?

瞬态表不会因为数据库重启被删除,它的存在和数据库重启操作完全无关。只有两种情况会导致瞬态表被彻底清理:

  • 主动执行DROP TABLE命令删除表;
  • 表的Time Travel保留期(加上可选的Fail-safe期,但瞬态表默认Fail-safe为0天)到期后,Snowflake会自动清理表的历史数据和元数据。

如何用Time Travel恢复瞬态表数据?

瞬态表不纳入Snowflake的常规备份日志,但依然支持Time Travel功能,恢复逻辑如下:

  1. 先确认表的Time Travel保留期:执行DESCRIBE TABLE <你的表名>,查看结果里的RETENTION_TIME字段(单位是天,默认1天,最多可设到90天)。
  2. 如果数据丢失发生在保留期内,可通过以下方式恢复:
    • 克隆表到指定时间点生成新表:CREATE TABLE <新表名> CLONE <原表名> AT(OFFSET => -<秒数>); 或用具体时间戳:CREATE TABLE <新表名> CLONE <原表名> AT(TIMESTAMP => 'YYYY-MM-DD HH:MI:SS');
    • 恢复特定行到原表:INSERT INTO <原表名> SELECT * FROM <原表名> AT(OFFSET => -<秒数>) WHERE <过滤条件>;
  3. 注意:如果超过Time Travel保留期,且瞬态表未配置Fail-safe(默认无),数据就无法恢复了——因为这类表不会被备份到Snowflake的长期存储中。

内容的提问来源于stack exchange,提问作者Doug Dailey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 20:32:36