雪花 - 时间旅行data_retention_time_in_days 和故障安全之间的区别

Posted

技术标签:

【中文标题】雪花 - 时间旅行data_retention_time_in_days 和故障安全之间的区别【英文标题】:Snowflakes -Difference between time traveldata_retention_time_in_days and fail safe 【发布时间】:2020-05-07 18:21:42 【问题描述】:

时间旅行:帮助用户查询数据,它在一段时间之前的样子,我们可以查询,恢复表的先前状态。

故障安全:雪花内部使用它在硬件故障期间恢复数据。

它是假设的(问这个问题是为了更好地理解时间旅行和故障安全)

问题 1

说我们在星期五晚上出现硬件故障并且系统出现故障,而我们在星期一早上意识到硬件故障。我的时间旅行设置为 1 天-data_retention_time_in_days。在这种情况下,我可以在重启失败之前恢复与周五相同的数据吗?

问题 2

有可能吗? 如果我们有时间 data_retention_time_in_days 为 6 并且默认故障安全是(7 天)。在这种情况下,如果我想将数据库恢复到 10 天前的某个点,那么在硬件故障的情况下?

示例: 6天时间旅行+7天故障安全 如果我决定将数据库恢复到 5 月 10 日的状态,请说 5 月 20 日。

【问题讨论】:

您的问题是什么?请收下tour 并阅读How to Ask。 也许我误解了这个场景,但硬件故障不会影响存储在云中的数据。对于永久餐桌,时间旅行最多可以设置 90 天。假设您删除了一张表,几天后才意识到这是一个错误——如果它在您为 Time Travel 设置的数据保留期限内,您可以取消删除它。如果不在期限内,则需要寻找替代方案。一种替代方法是 7 天的故障保护,Snowflake Support 可以帮助恢复。 【参考方案1】:

问题 1:如果您预计 Snowflake 的系统会出现“硬件故障”,您可能需要阅读以下文档:https://docs.snowflake.com/en/user-guide/intro-key-concepts.html。您的问题往往倾向于较旧的本地系统,而是您关于时间旅行及其工作原理的问题。如果您将时间旅行的所有内容都设置为 1 天,那么您可以将任何表或所有表恢复到过去最多 1 天的任何时间点。

问题 2:是的,但在这种情况下,您需要联系 Snowflake 支持。您无权访问故障安全数据,因此 Snowflake 支持需要从故障安全信息中恢复您的数据。

您可能还对 Snowflake 文档中有关时间旅行和故障安全的文档感兴趣(这很好,顺便说一句!)。 https://docs.snowflake.com/en/user-guide/data-availability.html

【讨论】:

Mike Walton:对于问题 2,如果是的话。 5 月 20 日我应该联系 Snowflakes 以将数据库恢复到 5 月 10 日? - 因为它仍然在(6 data_retention_time_in_days+7 故障安全)期间? .并且不可能将数据库恢复到 5 月 2 日之前的任何日期吗? 第一个问题是的,是的,因为它仍然属于故障安全时间范围。不,不可能将数据库恢复到 5 月 7 日(5 月 20 日 - 13 天)之前的任何日期。【参考方案2】:

这真的很有趣,三个核心概念

    时间旅行,用户可以根据他们的雪花版本和对象或帐户特定的时间旅行 (day-data_retention_time_in_days) 设置设置和检索回溯到历史的数据。 故障安全,用户无法控制仅在时间旅行期结束后才适用的数据检索。在这种情况下,只有 Snowflake 支持最多只能提供 7 天的帮助。因此,如果您将时间旅行设置为 6 天(假设),那么您自己可以在事务执行 + 6 天时间后检索数据库对象。从交易执行后的第 7 天到第 13 天,雪花支持可以帮助检索您的对象。 13 天后无法检索或恢复对象 Snowflake 是理想的 SaaS,因此目标云平台/服务的正常运行时间不是用户的责任,Snowflake SLA 表示 99.9% 的服务可用性。需要根据其组织的备份和恢复策略设置时间旅行。

现在来回答你的问题

1:您没有丢失数据,您正在丢失对象的先前状态。星期五发生了一些事情,并在星期一早上意识到(如果时间旅行设置为 1),您自己无法将对象状态恢复到与星期五相似的状态。如果您需要检索状态,雪花支持将是答案。

2 : 如果你想恢复 10 天前的对象状态并且你的时间旅行设置是 6 天,那么你再次需要雪花支持的帮助。

此处根据 CDP(持续数据保护)的基本概念。

雪花帐户用户可以根据您的时间旅行天数恢复状态(假设 X)

Snowflake Support 可以在 X+7 的时间范围内恢复对象状态

【讨论】:

以上是关于雪花 - 时间旅行data_retention_time_in_days 和故障安全之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

CREATE OR REPLACE 语句会影响雪花的时间旅行吗?

雪花 - 时间旅行data_retention_time_in_days 和故障安全之间的区别

计算雪花中数据库的数据存储

雪花如何在内部执行更新?

如何在雪花中创建一个表,但防止在同一角色下删除它?

Snowflake:用户和权限的备份和恢复