通过Firestore向移动/Web应用程序公开BigQuery中的数据



我正在寻找一种简单的方法(当然具有良好的性能(,将BigQuery表中的数据公开给web应用程序。

当前正在运行的解决方案是使用Cloud Function和Firestore(在本机模式下(在BigQuery中公开数据。实现类似于-一旦数据被写入最终的大查询表,我们就会触发云函数(每次提交500条记录(来更新我们最终的firestore表中的数据firestore表中的数据最终暴露给App/Web客户端。

而且,为了避免与云函数相关的超时问题,我们将整个数据集划分为多个批,每个云函数实例将只处理一批记录。

但在上线后不久,我们就遇到了写入的可伸缩性问题,因为我们正在顺序触发云函数实例。

提高性能的一个简单方法是从云函数内部进行并行写入,但根据firestore文档,对一个集合进行每秒1000次以上的写入会降低性能。因此,最终我们通过这种方法获得的性能提升可能是最小的。在我们的案例中,我们只有一个集合。

这里有人有处理针对Firestore的大量写入和读取的经验吗?数据存储模式下的Firestore可以用于高容量写入,但读取延迟如何?

此外,我正在考虑为此目的使用BigTable(最终的一致性对我们来说可能很好(,但使用BigTable可能会添加额外的层来公开数据,可能是通过web服务。

我们预计数据大小仅为GB左右。

PS:我不需要Firestore提供的离线功能,选择Firestore的原因只是为了便于开发。

根据您共享的信息,对于您将要同时添加的数据量,Firestore似乎不是一个合适的产品选择,此外,如果我们谈论TB的数据,这可能会比其他产品的成本更高,我认为是这样。

一般来说,出于定价原因,不建议将Firestore用于数据密集型应用程序或写入次数过多的应用程序,因为读取比写入便宜得多。

就我个人而言,在这种情况下,我会选择Big Table,原因如下:

  • 支持高吞吐量的应用程序
  • 在执行此操作时,可轻松扩展而不会损失性能或实例停机时间
  • 如果与Big Query保持在同一区域或区域,则将数据迁移到Big Table不会产生额外成本

相关内容

  • 没有找到相关文章

最新更新