BigQuery和BigTable有什么区别?

The*_*hat 65 cloud bigtable google-bigquery google-cloud-platform google-cloud-spanner

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

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

Mic*_*hri 72

区别在于:

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

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

  • 谷歌在这里有一个不幸的命名约定。当我通常想到 SQL 时,我会想到表格数据结构,而当我想到查询时,我会想到数据库的键值或查找类型。在本例中,BigTable 是 No-SQL,而 BigQuery Sql 数据库。 (5认同)
  • 在第二段 - 你的意思是'使用BigTable`:o) (2认同)

so-*_*ude 51

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

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

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

想想OLTP与OLAP; 或者,如果你熟悉卡桑德拉和Hadoop,BigTable的大致等同于卡桑德拉,BigQuery的大致等同于Hadoop的(达致协议,不是一个公平的比较,但你的想法)

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

注意

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

成本视角

/sf/answers/2439155141/.在此引用相关部分.

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

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

编辑1

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

在此输入图像描述

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


归档时间:

查看次数:

34551 次

最近记录:

6 年,2 月 前