【问题标题】:Is there a cost effective way of backing up Firebase Firestore?是否有一种经济高效的方式来备份 Firebase Firestore?
【发布时间】:2021-10-06 21:31:50
【问题描述】:

据我了解,备份 Firestore 数据库会导致读取每个文档。这似乎非常昂贵。

例如,假设我有 1000 个用户的笔记应用程序,每个用户每天创建 100 个文档并阅读 100 个文档。每月的费用为:

reads = 1000 * 100 * 30 * 0.036/100000 = $1.08 per month
writes = 1000 * 100 * 30 * 0.108/100000 = $3.24 per month 

这看起来很合理,甚至很便宜。

但是假设我想创建一个每日备份,以确保客户在发生某种故障时不会丢失他们的笔记。

使用 1 年后,每日备份的每月费用为:

reads = 1000 * 100 * 365 * 30 * 0.036/100000 = $394.20 per month

随着时间的推移,它只会变得越来越贵!

有人对如何处理这个问题有任何建议吗?我知道实时数据库的备份只需要存储空间,但我认为对于这类应用程序,Firestore 在所有方面都更好,除了备份成本。

【问题讨论】:

    标签: firebase google-cloud-firestore


    【解决方案1】:

    对于这样回答这个问题,我深表歉意,但您的数学计算有误。你乘以 30 和 365。这将给你大约 30 年的成本。您的备份成本为

    reads = 1000 * 100 * 365 * 0.036/100000 = $13.14 per year
    

    如果我错了,请纠正我。我可能误解了你的问题。

    Edit0:顺便说一句,您可以使用Cloud Firestore managed export and import service 轻松备份。

    编辑1:

    GCloud 提供名为 BigQuery 的服务(其 Google 的数据分析框架)。以前,我曾经做的是您在问题中描述的,从 Firestore 导出整个集合以在 BigQuery 中分析。但现在,您可以在 BigQuery 和 Firestore 之间配置实时同步。

    使用“将集合导出到 BigQuery”扩展程序,您可以发送 来自任何 Firestore 集合的实时增量更新到 大查询。它将侦听您指定的文档更改 Firestore 集合,然后将更改导出到 BigQuery。其他 换句话说,BigQuery 中的数据是 Firestore 中内容的镜像。

    此功能描述为here (medium.com)。

    编辑2:

    如上所述,如果 Firestore 中的数据损坏,可能会影响 BigQuery 中的数据,因为它是实时更新的。

    要解决此问题,我建议使用 Cron job 安排每天从 BigQuery 导出。从 BigQuery 导出是免费的。

    【讨论】:

    • 感谢尼扎尔的回复。您上面的数学将是每年备份一次数据库的成本。我想大多数人会想要更频繁的备份。我的数学是针对每日备份,因此使用一年后,将有 1000 * 100 * 365 个文档,但每天备份一次,持续 30 天,每月成本为 394.20 美元。通过减少备份频率可以降低成本,但我认为每天是常见的备份节奏。
    • 你是对的,但我不会那样做。我编辑了答案,看看它是否对你有帮助
    • 使用 bigquery 作为备份工具是一个有趣的想法。您设想的过程也是如此:1) 使用扩展将 firestore 数据镜像到 bigquery,以及 2) 将整个数据库的日常数据从 bigquery 导出到云存储。我需要做更多的研究,看看这是否有效,以及备份过程的成本会是什么样子。谢谢!
    • 忘记了第 3 步)以防 Firestore 数据丢失,想办法将导出的 bigquery 数据恢复到 Firestore。
    • 嗯,不是真正的每日镜像,它的实时收听和复制。所以这有点像写入 2 个数据库。在您的数据在 bigquery 中可用并且您想在灾难情况下将其导入到 firestore 后,您可以以 .overall_export_metadata 格式(文件扩展名)从 bigquery 中将其导出。并且您可以将这种类型的文件导入到 firestore。
    猜你喜欢
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多