是否有一种经济有效的方法来备份 Firebase Firestore?

2024-05-02

据我了解,备份 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(使用前将#替换为@)

是否有一种经济有效的方法来备份 Firebase Firestore? 的相关文章

随机推荐

  • 在 Android 设备/模拟器上加载 NPAPI 插件

    我编译了从这个链接获得的示例 NPAPI 插件http code google com p npapi sdk http code google com p npapi sdk 使用NDK编译后 我得到了 so文件libs armeabi
  • 速度事件处理程序

    在速度中 当你执行 object variable 时 如果它无法找到 getter 函数 访问它或者 getter 返回 null 它只会在页面上显式显示 object variable 我知道有一个安静的参考 但我不想添加 对数千个变量
  • 针对 Laravel 后端的 Angular Auth

    我正在使用 Laravel 创建一个应用程序 并构建一个小型内部 API 来连接到 Angular 前端 我的身份验证工作正常 但想确保这是一种可接受的用户登录方式 并确保一切都是安全的 会话控制器 public function inde
  • XP 和 Vista 之间使用 Winsock API 的 UDP 多播差异

    Windows XP 和 Windows Vista 之间设置 UDP 多播套接字所需的实现似乎有所不同 具体来说 在 Windows XP 下 您must call bind 在您可以引用任何特定于多播的套接字选项之前 然而 在windo
  • sqlite:获取所有行的最快方法(连续磁盘访问)

    我想使用 system data sqlite 读取表中的所有行 由于我有一个非常大的表 gt 450GB 超过 60 亿行 我想确保 sqlite 将使用连续的磁盘访问 正如您可能知道的那样 对硬盘的随机访问速度很慢 由于内存限制 我无法
  • 上传大文件(几 GB)时,nginx 返回内部服务器错误

    我在 nginx 后面有一个 Artifactory 上传大于 4 GB 的文件失败 我相当确定这是 nginx 的错误 因为如果文件从本地主机上传 上传到本地主机 则不会出现问题 nginx 设置为client max body size
  • SailsJS:如何正确地对控制器进行单元测试?

    一直在使用 Sails js 但在为控制器进行 Jasmine 单元测试时遇到了困难 如果这是显而易见的事情 请原谅我的无知 因为我在过去的 3 4 个月里才深入研究 JavaScript 开发 在过去的框架 特别是 ASP Net MVC
  • Windows 服务和 Windows 进程有什么区别?

    是什么不同之处窗户之间service和一个窗户process 服务是真正的 Windows 进程 没有区别 服务的唯一特殊之处在于它由操作系统启动并在单独的会话中运行 一种独立的方式 可防止其干扰桌面会话 传统上命名为daemon http
  • 确保 HttpConfiguration.EnsureInitialized()

    我已经安装了 Visual Studio 2013 当我运行我的应用程序时 出现以下错误 我不知道在哪里初始化这个对象 该怎么办 Server Error in Application The object has not yet been
  • PyQt MainWindow 在 Windows 上使用多处理

    我尝试创建一个PyQt应用 为了在后台运行进程并保持PyQt5应用程序可用于新指令 我想使用multiprocessing 在 Windows 操作系统上 当我从 Qt 调用函数时MainWindow与 一起上课multiprocessin
  • MongoDB 聚合管道 C#

    我有以下 Mongo 查询 db BusRatings aggregate match VId 2020 project vid VId sb SvcRating StaffBehavior bq SvcRating BusQuality
  • Discord.js:无效的位字段标志或数字:GUILDS

    我正在第一次尝试制作 Discord 机器人 该代码非常基本 只是一个在启动时将自己的标签记录到控制台的机器人 const Discord require discord js const TOKEN REDACTED const clie
  • 使用二级缓存时,nhibernate 查询缓存和实体缓存有什么区别?

    我正在尝试设置 nhibernate 二级缓存我在这篇文章中看到 http www gitshah com 2012 03 nhibernate and caching part 2 html我想了解查询缓存和实体缓存之间的区别 它说你需要
  • React:将组件作为 prop 传递,而不使用 this.props.children

    我有这个组件Foo js a svg component with a star svg icon import IconStar from react svg icons call a button with a custom icon
  • Javascript 访问浏览器上的拼写检查器

    是否可以从 Javascript 访问浏览器中合并的文本区域拼写检查器 我希望能够在我的代码中控制拼写检查 如今 大多数浏览器 IE 除外 似乎都内置了某种拼写检查器 据我所知 最常见的访问方式是禁用或启用字段上的拼写检查 内联禁用 Fir
  • 使用一条语句在 MySQL 中添加多列

    我试图将多个列添加到 phpMyAdmin 中的现有表中 但我不断收到相同的错误 1064 你的 SQL 语法有错误 检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法 我在写信 ALTER TABLE WeatherCente
  • 我们已经让 MEF 与 MVC4 一起工作,那么基于约定的模型怎么样?

    经过深入研究 我发现可以在 MVC4 中使用 MEF 进行 DI 下面的 SO 链接给出了几个示例 如何将 MEF 与 ASP NET MVC 4 和 ASP NET Web API 集成 https stackoverflow com q
  • 检索 Python 脚本的返回值

    我有一个外部 C 程序 它使用以下命令执行 Python 脚本Process class 我的脚本返回一个数字代码 我想从我的 C 程序中检索它 这可能吗 问题是 我得到的返回码是python exe而不是从我的脚本返回的代码 例如 3 解
  • 如何在 Windows 上使用 Pyreverse

    我想使用pyreverse 创建图表类 我下载它 当我使用这个命令时 pyreverse bat c PyreverseCommand a1 s1 f ALL o png test py 我收到错误 名称 点 无法识别 什么是 点 如何创建
  • 是否有一种经济有效的方法来备份 Firebase Firestore?

    据我了解 备份 Firestore 数据库会导致读取每个文档 这看起来非常昂贵 例如 假设我有一个有 1000 个用户的笔记应用程序 每个用户每天创建 100 个文档并阅读 100 个文档 每月的费用为 reads 1000 100 30