Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase BigQuery与云SQL自动缩放?_Firebase_Google Cloud Platform_Google Bigquery_Google Cloud Sql_Autoscaling - Fatal编程技术网

Firebase BigQuery与云SQL自动缩放?

Firebase BigQuery与云SQL自动缩放?,firebase,google-cloud-platform,google-bigquery,google-cloud-sql,autoscaling,Firebase,Google Cloud Platform,Google Bigquery,Google Cloud Sql,Autoscaling,我声明我是使用谷歌云平台的初学者 我正在使用firebase在react中开发一个web应用程序,因此所有数据都保存在firestore上 现在我需要一个关系数据库,我很困惑云SQL和BigQuery之间哪一个最好 我的想法是将一部分数据放在云SQL上,另一部分放在Firestore上 当事件发生时,来自Cloud SQL和firestore的数据被合并并上传到BigQuery进行分析 例如: 在Firestore上,我有一个产品,它有一个数组字段,其中ID是 存储。这些ID与保存在云SQL上的

我声明我是使用谷歌云平台的初学者

我正在使用firebase在react中开发一个web应用程序,因此所有数据都保存在firestore上

现在我需要一个关系数据库,我很困惑云SQL和BigQuery之间哪一个最好

我的想法是将一部分数据放在云SQL上,另一部分放在Firestore上

当事件发生时,来自Cloud SQL和firestore的数据被合并并上传到BigQuery进行分析

例如:

在Firestore上,我有一个产品,它有一个数组字段,其中ID是 存储。这些ID与保存在云SQL上的数据库相关。什么时候 将订单添加到Firestore上的集合中,然后 附加到BigQuery上的数据库

我的问题是,据我所知,在云SQL上不可能自动缩放,而在BigQuery上则不可能。

所以我的问题是你能在CloudSQL上自动缩放吗

如果不能这样做,只使用BigQuery是否正确

GCP上是否有另一种解决方案允许您拥有一个关系数据库,但具有自动缩放功能

编辑1

这是CloudSQL/BigQuery上数据库的一部分的非常简化的模型

我将使用2/3内部联接查询来获取我需要的所有值


我不知道如何使其非关系化,因此能够使用firestore而不需要大量重复数据,我愿意接受任何类型的建议

我不确定我是否理解正确,但我认为您希望获得一些数据(来自一个数据源),将这些数据与firestore集合中的数据合并/处理,并将结果加载/流式处理到BigQuery中。所有这些都是在运行时运行的。问题在于如何选择该数据源—云SQL或BigQuery

从您的角度来看,云SQL的主要缺点是缺乏可伸缩性(自动缩放),我说的对吗。你想考虑一个BigQuy而不是云SQL,因为“AutoSCALE”?< /P> 目前尚不清楚您期望的请求/查询的速率,以及数据的位置(对全局访问的任何要求),因此可能很难讨论这种情况。无论如何

考虑到BigQuery,在我看来,-这是一个伟大的“数据库”(从我的角度来看是最好的),但主要用于分析目的。。。每个查询都有一些“初始”延迟(查询作业的执行速度不会超过某个阈值),这是无法显著最小化的,并且BigQuery表中没有二进制索引。这意味着每次运行查询都需要几秒钟(假设3秒或更长时间)(除非结果来自缓存)。如果请求的数量很大-它可能会变得昂贵(在BigQuery中)并且在用于处理该任务(即由某个事件触发的云函数)的组件中变得昂贵-因为后者必须在查询期间等待(并且什么也不做)。 此外,BigQuery在将数据加载或存储到其中方面非常好,但在定期更新内部数据方面却不是很好——有很多限制。因此,根据您的上下文,在BigQuery中维护操作数据可能不是一个好主意

如果我排除这个大问题-

  • 我们可以为云SQL牺牲“自动伸缩性”吗

  • 我们是否可以使用Firestore集合而不是云SQL(并牺牲“关系”属性)

  • 我们是否可以使用云SQl并处理表中用于查询的数据量,这样就不会有延迟


  • 我不确定我是否能帮上忙,但至少我提供了一些关于这个问题的想法。

    “现在我需要一个关系数据库,我很困惑云SQL和BigQuery之间哪一个最好。”

    请注意,BigQuery不能用于替代关系数据库,它面向运行分析查询,而不是简单的CRUD操作和查询(如在云SQL中)。这并不意味着BigQuery不能处理规范化的数据和连接。它绝对可以。它只是在非规范化的内容上表现得更好,因为BigQuery本质上是一个OLAP引擎。因此,尽可能地反规范化()


    您可以使用读取复制来扩展云SQL。读取副本实例允许将主实例中的数据复制到一个或多个从属实例。此设置可以提高读取吞吐量。

    非常感谢您的回答,这对我非常有帮助,我已将我的问题编辑得更清楚,如果您能再次帮助我,我将不胜感激y感谢您对特定问题进行编码,询问我们的意见不在指南范围内。例如,询问“哪个更好;X还是y”如果不了解整个用例,我们只是猜测。现在我需要一个关系数据库,为什么?你还混合了两种不同类型的数据库,目的不清楚;为什么不使用Firebase并称之为完成?最重要的是,在NOSQL数据库中复制数据是非常常见的做法-这就是called对数据进行非规范化。这是一个非常重要的话题,请查阅。