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

如何查询Time Travel实际存储数据量及表的可用时间回溯深度

Snowflake Time Travel 相关问题解答

1. Time Travel 实际存储的数据量

Time Travel占用的存储是表所有未过期的历史版本数据总和,不会和当前活跃表的存储重复计量,包含两类内容:

  • DML操作(增删改、合并等)产生的旧数据版本
  • 表结构变更、数据重集群等操作产生的历史元数据和对应数据版本

你可以通过以下SQL查询指定表的Time Travel实际存储用量:

SELECT 
  TABLE_NAME,
  TIME_TRAVEL_BYTES,
  ROUND(TIME_TRAVEL_BYTES / 1024 / 1024 / 1024, 2) AS TIME_TRAVEL_GB
FROM INFORMATION_SCHEMA.TABLE_STORAGE_METRICS
WHERE TABLE_CATALOG = '你的数据库名'
  AND TABLE_SCHEMA = '你的Schema名'
  AND TABLE_NAME = '你的表名';

返回的TIME_TRAVEL_BYTES就是该表当前Time Travel实际占用的存储大小。

2. 单张表实际可用的Time Travel回溯范围查询

配置的保留天数是理论最大回溯上限,实际可回溯范围受表创建时间、历史数据清理进度影响,完全可以通过系统视图提前查询可用范围,避免查询报错。

查询最早可回溯时间点

执行以下SQL即可拿到指定表当前能回溯到的最早时间:

SELECT MIN(QUERY_START_TIME) AS earliest_time_travel_available
FROM TABLE(INFORMATION_SCHEMA.TABLE_HISTORY(
  TABLE_NAME => '你的数据库名.你的Schema名.你的表名'
));

只要你要查询的时间点在earliest_time_travel_available到当前时间之间,就可以正常使用Time Travel功能,不会出现数据不存在的报错。

查询所有可用快照区间

如果需要确认特定时间点是否有有效快照,可以查询所有可用的快照时间区间:

SELECT MIN_CREATED_ON, MAX_CREATED_ON
FROM TABLE(INFORMATION_SCHEMA.TABLE_HISTORY(
  TABLE_NAME => '你的数据库名.你的Schema名.你的表名'
))
ORDER BY MIN_CREATED_ON ASC;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:48:03