当前位置: 首页 > 知识库问答 >
问题:

是否有经济高效的方法备份Firebase Firestore?

乜华翰
2023-03-14

据我所知,备份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在所有方面都更好,除了备份成本。

共有1个答案

司徒焕
2023-03-14

我很抱歉这样回答这个问题,但是你的数学错了。你乘以30和365。这将给你大约30年的成本。你的备份成本是

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

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

Edit0:顺便说一句,您可以使用Cloud FiRecovery托管导出和导入服务轻松备份。

编辑1:

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

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

此处介绍了此功能(medium.com)。

编辑2:

如前所述,人们担心如果Firestore中的数据损坏,可能会影响BigQuery中的数据,因为它正在实时更新。

为了解决这个问题,我建议使用Cron作业来安排BigQuery的每日导出。BigQuery的导出是免费的。

 类似资料:
  • 我看到了这个问题:使用AWS Elastic Beanstalk将多个应用程序部署到一个EC2实例中 所以我的下一个问题是:处理这种情况最具成本效益的方法是什么? 我需要部署两个密切相关但截然不同的基于MVC的Web应用程序。我正试图找到最有效的方式来部署它们,而不会造成太多浪费。我在想: 将它们合并到一个web部署包中,让beanstalk进行部署 重用beanstalk的某些元素,如负载平衡器

  • 问题内容: Java具有格式字符串的概念,与其他语言的格式字符串非常相似。它用于诸如输出转换之类的JDK方法中。 我想知道在Java中是否有类似于C的输入转换方法? 问题答案: 看一下该站点,它解释了两种使用java中的控制台读取的方法,使用或使用System.in中的经典方法。 以下代码摘自引用的网站: - 问候。

  • 本文向大家介绍oracle备份之备份测试脚本的方法(冷备、热备、rman),包括了oracle备份之备份测试脚本的方法(冷备、热备、rman)的使用技巧和注意事项,需要的朋友参考一下 1、数据库环境 数据库DBID及打开模式 数据文件: 控制文件: 联机日志: 2、数据库备份脚本 冷备份脚本 说明: 1、以上脚本在数据库关闭状态下备份数据库所有的数据文件,联机日志,控制文件,归档日志(在一个目录下

  • 我检查apache Flink代码如何创建连接客户端:https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/io/network/netty/PartitionRequestClientFactory.java#L55-L108 我正在考虑2秒后超时的wait

  • 我正在尝试为我的spring boot应用程序实现一个审计层。到目前为止,我尝试了两种方法。 1) 创建了1个审核表,其中包含字段user\u name、table\u name、column\u name、old\u value、new\u value、uuid、event\u type。 每当保存任何更改时,填充审计实体并将其保存。 > 易于管理,因为只有一个审计表 > 有时,它涉及太多从业务

  • 我有一个多索引df,带有“海龟”列 我需要的是“网络Pos”。我想不出一个优雅的方法。我需要的是使用Numpy或熊猫的colNet位置。数据集很大,需要使用递归并避免崩溃。 6将被分为6次1 1 1 1 1 1 1 第一个1将乘以基本数量,因此为1*2 第二个1将与第一个1的结果乘以海龟系数2*3 第四个1将与第三个1计算的结果相乘,乘以18*3以上的海龟因子,以此类推,最后求和,得到第一行的结果