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

问题描述 投票:56回答:4

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

我需要开发一个联盟网络(因此我需要跟踪点击次数和'销售'),所以我很困惑,因为bigQuery似乎只是一个更好的API的bigTable。

google-cloud-platform google-bigquery cloud bigtable google-cloud-spanner
4个回答
64
投票

区别在于:

BigQuery是一个数据集的查询引擎,它不会发生太大变化,也不会通过附加进行更改。当您的查询需要“表扫描”或需要查看整个数据库时,这是一个很好的选择。考虑总和,平均值,计数,分组。 BigQuery是您收集大量数据时使用的,需要询问有关它的问题。

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


45
投票

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

Google Cloud - GCP database options decision flowchart

如果您的需求是实时数据库,那么BigTable就是您所需要的(尽管不是真正的OLTP系统)。如果它更像是一种分析目的,那么BigQuery就是您所需要的!

想想OLTP与OLAP;或者如果你熟悉Cassandra和Hadoop,BigTable大致相当于Cassandra,BigQuery大致相当于Hadoop(同意,这不是一个公平的比较,但你明白了)

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

Note

请记住,Bigtable不是关系数据库,它不支持SQL查询或JOINs,也不支持多行事务。此外,它不是一个很好的解决方案,适用于少量数据。如果你想要一个RDBMS OLTP,你可能需要查看cloudSQL(mysql / postgres)或者spanner。

成本视角

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

总体成本归结为您“查询”数据的频率。如果它是一个备份而你不经常重播事件,它将是便宜的。但是,如果您需要每天重播一次,您将很容易开始触发5 $ / TB扫描。我们也很惊讶插入和存储的价格是多么便宜,但这是因为谷歌希望你在某个时间点运行昂贵的查询。你必须围绕一些事情进行设计。例如。 AFAIK流式插入无法保证写入表中,您必须经常在列表尾部轮询以查看它是否真的已写入。可以使用时间范围表装饰器有效地完成拖尾(不支付扫描整个数据集)。

如果您不关心订单,您甚至可以免费列出一张桌子。然后不需要运行'查询'。

Edit 1

云扳手相对年轻,但功能强大且前途无量。至少,谷歌营销声称它的功能是两全其美的(传统的RDBMS和noSQL)

enter image description here

我知道回答有点晚,但是添加它可能会对未来的其他人有所帮助。


11
投票

选择使用什么qazxsw poi

大表

Google BigTable是Google针对低延迟数据访问的云存储解决方案。它最初开发于2004年,基于谷歌文件系统(GFS)。有一篇关于BigTable的论文:Bigtable:结构化数据的分布式存储系统。现在,它广泛应用于Google的许多核心服务,如Google搜索,Google地图和Gmail。它采用NoSQL架构设计,但仍可使用基于行的数据格式。数据读/写时间在10毫秒以下,对于频繁接收数据的应用程序来说是个好消息。它可以扩展到数百PB,每秒处理数百万次操作。

BigTable通过扩展与HBase 1.0 API兼容。从HBase的任何移动将更容易。 BigTable没有SQL接口,您只能使用API​​ go put / Get / Delete单个行或运行扫描操作。 BigTable可以轻松地与其他GCP工具集成,例如Cloud Dataflow和Dataproc。 BigTable也是Cloud Datastore的基础。

与其他云不同,GCP计算和存储是分开的。在计算成本时,您需要考虑以下三个部分。 1.云实例的类型以及实例中的节点数。 2.表使用的总存储量。 3.使用的网络带宽量。请注意:网络流量的某些部分是免费的。

这是好事还是坏事。好的部分是,如果系统处于空闲状态并且您只需支付存储成本,则无需支付计算成本。不好的一点是,如果您拥有非常大的数据集,那么预测您的计算使用情况并不容易。 enter image description here

BigQuery的

BigQuery是Google基于云的数据仓库解决方案。与BigTable不同,它以大图片为目标数据,可以在短时间内查询大量数据。由于数据以柱状数据格式存储,因此与BigTable相比,扫描大量数据的速度要快得多。 BigQuery允许您扩展到PB级,是用于分析的出色企业数据仓库。 BigQuery是无服务器的。无服务器计算意味着计算资源可以按需旋转。它使用户从零服务器使用到全面使用,而无需管理员和管理基础设施。根据谷歌的说法,BigQuery可以在几分钟内扫描数TB的数据和数PB的数据。对于数据提取,BigQuery允许您从Google云端存储或Google Cloud DataStore加载数据,或者流式传输到BigQuery存储中。

但是,BigQuery实际上是用于OLAP类型的查询和扫描大量数据,并不是为OLTP类型查询而设计的。对于小的读/写,大约需要2秒,而BigTable对于相同数量的数据需要大约9毫秒。对于OLTP类型的查询,BigTable要好得多。虽然BigQuery支持原子单行操作,但它缺乏跨行事务支持。 enter image description here

有关更多信息,请参阅以下内容enter image description here Link 1`` Link 2


0
投票

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

用非常简短的术语;

  • 如果您不需要支持ACID交易,或者您的数据结构不高,请考虑使用Cloud Bigtable。
  • 如果您需要在线分析处理(OLAP)系统中进行交互式查询,请考虑BigQuery。
© www.soinside.com 2019 - 2024. All rights reserved.