Time Travel 和故障安全的存储成本

在 Time Travel 和故障安全期间维护历史数据会产生存储费用。

本主题内容:

存储使用和费用

自数据更改之日起,每 24 小时(即 1 天)计算费用。Snowflake 保留历史数据的天数取决于表类型和表的 Time Travel 保留期。

此外,Snowflake 仅维护恢复已更新或删除的各个表行所需的信息,从而更大限度地减少历史数据所需的存储空间。因此,存储使用量按已更改表的百分比计算。Snowflake 仅在删除或截断表时才会保留表的完整副本。

临时表和瞬态表

为了帮助管理与 Time Travel 和故障安全相关的存储成本,Snowflake 提供了两种表类型:临时表和瞬态表,它们产生的费用与标准(即永久)表不同:

  • 瞬态表的 Time Travel 保留期可以为 0 天或 1 天。

  • 临时表的 Time Travel 保留期也可以为 0 或 1 天;但是,一旦表被删除或创建表的会话结束,此保留期就会结束。

  • 瞬态表和临时表没有故障安全期。

因此,这些类型的表因 Time Travel 和故障安全而产生更多额外费用的时间仅限于 1 天。下表根据表类型说明了不同的场景:

表类型

Time Travel 保留期(天)

故障安全期(天)

维护历史数据的下限和上限时间(天)

永久

0 或 1(适用于 Snowflake Standard Edition)

7

7、8

0 到 90(适用于 Snowflake Enterprise Edition)

7

7、97

瞬态

0 或 1

0

0、1

临时

0 或 1

0

0、1

使用临时表和瞬态表管理存储成本的注意事项

选择是将数据存储在永久表、临时表还是瞬态表中时,请考虑以下详细信息:

  • 当创建临时表的会话结束时,将删除临时表。临时表中存储的数据在删除表后 无法 恢复。

  • Snowflake 不能 在 Time Travel 保留期结束后恢复瞬态表中的历史数据。瞬态表 用于不依赖 Snowflake 即可复制或再现的数据。

  • 长期存在的表(例如事实表)应该 始终 定义为永久表以确保它们受到故障安全的充分保护。

  • 您可以将短期表定义为瞬态表,以消除故障安全成本。例如,您可以对生命周期小于 1 天的数据(例如 ETL 工作表)使用瞬态表。

  • 如果停机时间和重新加载丢失数据所需的时间也是因素,则永久表即使增加了故障安全成本,也可能提供比临时表更好的整体解决方案。

备注

表的默认类型为永久表。要将表定义为临时表或瞬态表,必须在创建表时显式指定类型:

CREATE [ OR REPLACE ] [ TEMPORARY | TRANSIENT ] TABLE <name> ...

有关更多信息,请参阅 CREATE TABLE

将数据从永久表迁移到瞬态表

将数据从永久表迁移到临时表涉及执行以下任务:

  1. 使用 CREATE TABLE ...AS SELECT 可创建临时表并使用原始永久表中的数据填充临时表。

  2. 将在原始表中授予的所有访问控制权限应用于新表。有关访问控制的更多信息,请参阅 访问控制概述

  3. 使用 DROP TABLE 删除原始表。

  4. (可选)使用 ALTER TABLE 重命名新表以匹配原始表。

快照成本

下表描述了快照的费用。

成本组成部分

描述

在公共预览期间计费

快照计算

Snowflake 管理的计算服务生成计划的快照创建和到期。

恢复计算

Snowflake 管理的仓库用于从快照中恢复对象。

快照存储

Snowflake 管理的云对象存储,用于存储快照数据。

按快照的保留字节计费,类似于为克隆保留的字节。

您可以使用 RETAINED_FOR_CLONE_BYTES 列在 TABLE_STORAGE_METRICS 视图中监控快照存储成本,也可以在 SNAPSHOT_STORAGE_USAGE 视图中监控。

语言: 中文