BigQuery和BigTable有什么区别?[关闭]


82

是否有人会使用BigTable而不是BigQuery?两者似乎都支持读和写操作,后者还提供高级的“查询”操作。

我需要开发一个会员网络(因此我需要跟踪点击和“销售”),所以我对两者之间的差异感到困惑,因为bigQuery似乎只是具有更好API的bigTable。


我想说的是,BigTable对于需要更高性能的人员而言,更像是一个低级且管理较少的Cloud Datastore。
dyeray

1
在过去的SO线程可以帮助过:stackoverflow.com/questions/34437572/...
埃利奥特布罗萨德

@dyeray是的,我知道,但是有人有理由在BigTable和BigQuery中维护相同的数据,而不是仅维护BigQuery吗?
不戴帽子的用户

BigTable非常适合单行或小范围查找。BigQuery在全局方面非常擅长。如果您希望通过有效的向下钻取进行分析,则可以将BigQuery用于大规模分析,将BigTable用于较小范围的分析。
所罗门·迪斯基斯

系统属性比较Google BigQuery与Google Cloud Bigtable与Google Cloud Datastore。!图片(免责声明!从db-engines.com复制)
Le Khiem,

Answers:


103

区别基本上是:

BigQuery是一个查询引擎,用于那些变化不大或通过追加而变化的数据集。当您的查询需要“表扫描”或需要查看整个数据库时,这是一个很好的选择。考虑总和,平均值,计数,分组。当您收集大量数据并需要提出有关问题时,便使用BigQuery。

BigTable是一个数据库。它被设计为大型可扩展应用程序的基础。在制作需要读取和写入数据的任何类型的应用程序时,请使用BigTable,并且扩展可能是一个潜在问题。


2
在第二段中-您的意思是Use BigTable:(o)
Mikhail Berlyant '16

@MikhailBerlyant谢谢,编辑
Michael Manoochehri

3
Google有点不幸的命名约定。当我通常想到SQL时,我想到的是表格数据结构,而当我想到查询时,则想到数据库的键值或查找类型。在这种情况下,BigTable是No-SQL,而BigQuery是Sql数据库。
Maksood19年

@迈克尔Manoochehri cloud.google.com/bigquery/... :请阅读下面的报价
gstackoverflow

您可以与用户(包括服务帐户)或组共享对永久外部表的访问。要查询外部表,您的用户或组必须被授予(至少):在数据集级别或更高级别的bigquery.dataViewer角色,以访问包含外部表的数据集在项目级别的bigquery.user角色或更高的级别以便运行查询作业Cloud Bigtable中的bigtable.reader角色提供对元数据和表的只读访问
gstackoverflow

80

Google Cloud-GCP数据库选项决策流程图

这可能有助于确定Google Cloud提供的不同数据存储之间的关系(免责声明!从Google Cloud页面复制)

如果您的需求是实时数据库,则需要BigTable(不过实际上不是OLTP系统)。如果更多是出于分析目的,那么BigQuery是您所需要的!

想一想OLTPOLAP ; 或者,如果您熟悉Cassandra与Hadoop,则BigTable大致等同于Cassandra,BigQuery大致等同于Hadoop(同意,这不是一个公平的比较,但是您知道了)

https://cloud.google.com/images/storage-options/flowchart.svg

注意

请记住,Bigtable不是关系数据库,它不支持SQL查询或JOINs,也不支持多行事务。同样,对于少量数据来说,这也不是一个好的解决方案。如果需要RDBMS OLTP,则可能需要查看cloudSQL(mysql / postgres)或扳手。

成本角度

https://stackoverflow.com/a/34845073/6785908。在此引用相关部分。

总成本归结为您将“查询”数据的频率。如果它是备份,并且您不经常重播事件,那将是非常便宜的。但是,如果您需要每天重播一次,则将非常容易地触发扫描的5 $ / TB。我们也对廉价的插入和存储如此便宜感到惊讶,但这确实是因为Google希望您在某个时间对它们进行昂贵的查询。但是,您将不得不设计一些东西。例如,AFAIK流插入无法保证被写入表中,因此您必须经常在列表尾部进行轮询,以查看其是否真正被写入。不过,使用时间范围表装饰器可以有效地完成尾部操作(无需为扫描整个数据集付费)。

如果您不关心订单,甚至可以免费列出表格。然后无需运行“查询”。

编辑1

云扳手相对较年轻,但是功能强大且前景广阔(而且价格也非常昂贵)。至少,谷歌营销声称它的功能是两全其美的(传统的RDBMS和noSQL)

在此处输入图片说明


您可以与用户(包括服务帐户)或组共享对永久外部表的访问。要查询外部表,您的用户或组必须被授予(至少):在数据集级别或更高级别的bigquery.dataViewer角色,以访问包含外部表的数据集在项目级别的bigquery.user角色或更高的级别以便运行查询作业Cloud Bigtable中的bigtable.reader角色提供对元数据和表的只读访问
gstackoverflow

我从cloud.google.com/bigquery/…中引用了上面的报价。为什么要访问bigtable我需要包含单词bigquery的权限?
gstackoverflow

-3

BigQuery和Cloud Bigtable不一样。Bigtable是基于Hadoop的NoSQL数据库,而BigQuery是基于SQL的数据仓库。他们有特定的使用方案。

简单地说:

  • 如果您不需要ACID交易的支持,或者您的数据结构不高,请考虑使用Cloud Bigtable。
  • 如果您需要在线分析处理(OLAP)系统中的交互式查询,请考虑使用BigQuery。

5
Bigtable不是基于Hadoop的NoSQL数据库,实际上是相反的-基于Bigtable白皮书HBase(基于Hadoop的NoSQL)构建的。因此,它们共享相似的(相同的)API。
伊戈尔·德沃扎克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.