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

Snowflake中多次重建表后的数据恢复问题求助

数据恢复方案:CREATE OR REPLACE重建表后的补救措施

问题原因分析

多次使用CREATE OR REPLACE TABLE会直接生成新的表对象,原表被标记为删除状态:

  • 时光旅行查询的OFFSET是基于当前表对象的创建时间倒推,而原表的存在时间早于新表创建时间,导致提示超出期限
  • UNDROP TABLE失败通常是因为原表的保留时间已过时光旅行窗口,或是原表的元数据已被系统清理

可行恢复方法

  • 精准定位原表时间戳查询
    先查询表的历史记录,找到原表的存在时间段:

    SHOW TABLE HISTORY LIKE '{MY_TABLE}';
    

    从结果中提取原表的created_on和dropped_on时间,用具体时间戳执行时光旅行查询:

    SELECT * FROM {MY_TABLE} AT (TIMESTAMP => '<原表存在的有效时间戳>');
    

    查到数据后可插入到新表或重命名后的表中。

  • 检查克隆/快照备份
    如果之前对该表创建过克隆(CREATE TABLE ... CLONE {MY_TABLE})或快照,直接从克隆表中提取数据。

  • 从增量加载源恢复
    由于采用增量加载,可通过加载历史回溯数据源:

    1. 查看COPY INTO的历史记录,获取之前的加载文件路径:
      SHOW COPY HISTORY FOR TABLE {MY_TABLE};
      
    2. 查看任务运行日志(如果用Task执行增量加载):
      SHOW TASK HISTORY LIKE '<加载任务名>';
      

    根据记录重新从源存储(如S3、Azure Blob)加载对应批次的增量数据。

  • 联系Snowflake官方支持
    若以上方法均无效,提交工单给Snowflake支持团队。系统底层可能仍保留未被彻底清理的历史数据,尤其是时光旅行保留期刚过期的场景,官方有更高权限的恢复手段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 16:46:07