据我了解,备份 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 在所有方面都更好。
我很抱歉回答这样的问题,但你的数学错了。乘以 30 和 365。这将为您提供大约 30 年的费用。您的备份成本是
reads = 1000 * 100 * 365 * 0.036/100000 = $13.14 per year
如我错了请纠正我。我可能误解了你的问题。
Edit0:顺便说一下,您可以使用以下命令轻松备份Cloud Firestore 托管导出和导入服务 https://firebase.google.com/docs/firestore/manage-data/export-import.
Edit1:
GCloud 提供了一项名为 BigQuery 的服务(Google 的数据分析框架)。以前,我过去所做的就是您在问题中所描述的,从 Firestore 导出整个集合以在 BigQuery 中进行分析。但现在,您可以配置 BigQuery 和 Firestore 之间的实时同步性。
通过“将集合导出到 BigQuery”扩展,您可以发送
从任何 Firestore 集合进行实时增量更新
大查询。它将监听您指定的文档更改
Firestore 收集,然后将更改导出到 BigQuery。其他
换句话说,BigQuery 中的数据是 Firestore 中内容的镜像。
描述了此功能here https://medium.com/firebase-tips-tricks/how-to-configure-the-export-collections-to-bigquery-extension-and-use-sql-full-power-on-your-f3565d809b96(medium.com)。
Edit2:
正如所讨论的,人们担心,如果 Firestore 中的数据损坏,它可能会影响 BigQuery 中的数据,因为它是实时更新的。
为了解决这个问题,我建议使用Cron job https://en.wikipedia.org/wiki/Cron安排每日从 BigQuery 导出。从 BigQuery 导出是免费的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)