Google Cloud Bigtable 备份和恢复

Posted

技术标签:

【中文标题】Google Cloud Bigtable 备份和恢复【英文标题】:Google Cloud Bigtable backup and recovery 【发布时间】:2016-05-28 11:57:42 【问题描述】:

我是 Google Cloud Bigtable 的新手,并且有一个非常基本的问题,即云产品能否保护我的数据免受用户错误或应用程序损坏?我在 Google 网站上看到很多人提到数据是安全且受保护的,但不清楚是否涵盖了上述场景,因为我没有看到有关如何从以前的时间点副本恢复数据的参考资料。我相信这个论坛上有人知道!

【问题讨论】:

【参考方案1】:

2020 年 7 月 24 日更新:Bigtable 现在支持 backups 和 replication。

目前我们create backups 用于防范灾难性事件并提供灾难恢复。

截至 2017 年 2 月,Cloud Bigtable 目前不提供用户错误或应用程序错误的备份。我们希望在未来的版本中提供此功能 - 目前没有计划的交付日期。同时,您可以使用HBase 或类似过程制作自己的快照。

【讨论】:

感谢您的回复!有没有其他人认为这是产品的一大限制,还是只有我一个人?有兴趣了解其他人如何处理用户错误或应用程序损坏造成的潜在损失 我认为的限制是它根本不起作用。我得到的文档和错误不同步,谷歌不太擅长解决问题。我收到由输出路径不存在或不可写引起的 403 错误代码。但我可以使用 gsutil 创建输出路径和复制文件。 听起来您正在运行 gsutil 的机器能够写入存储桶,但您正在运行 hbase 的机器(没有)。在云控制台中,IAM & Admin > IAM 您可以为您的实例使用的服务帐户设置正确的角色。【参考方案2】:

除了@Greg Dubicki 提到的 Google 的灾难保护之外,在 Egnyte,我们使用两个用于 Bigtable HBase 阴影 jar 的 Python 包装器将关键任务 Bigtable 数据以 Hadoop 序列文件的形式备份到 GCS。

这可以在我们的 BT 集群出现故障或我们的软件/管理端出现错误损坏数据的情况下实现快速恢复,完全在我们的控制之下(即无需等待 Google 支持来按需恢复数据)。一个有用的副作用是访问历史 BT 数据以进行调试。

上周我在 Egnyte 的工程博客上写了这篇文章:https://medium.com/egnyte-engineering/bigtable-backup-for-disaster-recovery-9eeb5ea8e0fb。我们正在考虑将其开源。我们会看看情况如何。

更新:在 2 月 20 日星期四,我已在 Egnyte 的 GitHub 上发布脚本,使用 MIT 许可 - https://github.com/egnyte/bigtable-backup-and-restore。

【讨论】:

【参考方案3】:

截至 2020 年 2 月,Cloud Bigtable确实提供备份,但只是模糊地描述为:

(...) 我们 [确实] 为您的数据创建备份,以防止发生灾难性事件并提供灾难恢复。

Source

【讨论】:

以上是关于Google Cloud Bigtable 备份和恢复的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud Bigtable 协处理器支持

google bigtable 上的多行

在 Google Cloud Datastore 与 Google Cloud Bigtable 中存储用户事件历史记录

从 google appengine 数据存储迁移到 google cloud bigtable 的最佳方法是啥?

Google Cloud Bigtable HBase shell 连接挂起

到 Cloud Bigtable 的 Google Cloud Dataflow 管道中的异常