更改 Snowflake 中已删除表的数据保留

Change data retention for Dropped tables in Snowflake

我们正在利用 Snowflake 作为仓库平台。在将数据加载到 Snowflake 时,我们有一些 drop create 逻辑来填充雪花中的数据。我们没有使用临时或瞬态 table,而是意外地利用了永久性 table,这导致了巨大的存储大小作为时间旅行存储的一部分(接近 140 tb)。
由于我们已经删除了永久性的 tables,所以它们没有列出雪花模式。想检查是否有任何方法可以 更改已丢弃的 tables 的保留期,以便我们可以释放这些丢弃的 table 使用的时间旅行存储]s.
非常感谢,
普拉桑

如果您没有更改默认的时间旅行保留时间,则默认为一天。如果是这样,您将看到数据在八天内开始清除(1 天时间旅行 + 7 天故障安全)。如果你没有改变它,你可能只想让它老化直到自动清除。如果您更改了持续时间,则可以尝试更改保留时间。它应该可以工作。

如果您有新的 table 旧的 table 名称,您需要暂时重命名新的 table。详情请参考这篇知识库文章:KB Article for Time Travel on dropped tables.

临时重命名新的 table 后,取消删除旧的 table。然后您可以将它们的保留设置为 0(100% 您想要这个),然后删除 table.

undrop MY_TABLE;
alter table MY_TABLE set DATA_RETENTION_TIME_IN_DAYS = 0; 
drop MY_TABLE;

当然,当您重新删除旧的 tables 时,您可以将新的瞬态 tables 重命名为它们的正确名称。虽然这应该有效,但您不会看到时间旅行数据立即消失。后台服务会在某个时候删除它们。