有人会使用BigTable而不是BigQuery吗?两者似乎都支持读写操作,后者提供高级'查询'操作。
我需要开发一个联盟网络(因此我需要跟踪点击次数和'销售'),所以我对这种差异感到很困惑,因为bigQuery似乎只是具有更好API的bigTable。
答案 0 :(得分:63)
区别在于:
BigQuery是一个数据集的查询引擎,它不会发生太大变化,也不会通过附加进行更改。当您的查询需要“表扫描”或需要查看整个数据库时,这是一个很好的选择。考虑总和,平均值,计数,分组。 BigQuery是您收集大量数据时使用的,需要询问有关它的问题。
BigTable是一个数据库。它旨在成为大型可扩展应用程序的基础。当您制作需要读取和写入数据的任何类型的应用程序时,请使用BigTable,并且扩展是一个潜在的问题。
答案 1 :(得分:41)
这可能有助于决定Google云提供的不同数据存储(免责声明!从Google Cloud页面复制)
如果您的要求是实时数据库,则 BigTable 就是您所需要的(虽然不是 OLTP 系统)。如果它更像是一种分析目的,那么 BigQuery 就是您所需要的!
考虑 OLTP vs OLAP ;或者如果你熟悉Cassandra和Hadoop,BigTable大致相当于Cassandra,BigQuery大致等同于Hadoop(同意,它不是一个公平的比较,但你明白了)
https://cloud.google.com/images/storage-options/flowchart.svg
请注意, Bigtable 不是关系数据库,它不支持SQL查询或JOIN
,也不支持多行事务。此外,它不是一个很好的解决方案,适用于少量数据。如果你想要一个RDBMS OLTP,你可能需要查看cloudSQL(mysql / postgres)或者扳手。
成本视角
https://stackoverflow.com/a/34845073/6785908。在这里引用相关部分。
总体费用可归结为您查询'的频率。数据。如果 它是一个备份,你不会经常重播事件,它会变成泥土 廉价。但是,如果您需要每天重播一次,您将开始 触发5 $ / TB非常容易扫描。我们也很惊讶 便宜的插入和存储,但这是因为谷歌预计 您可以在某个时间点对它们运行昂贵的查询。你' 11 不得不围绕一些事情设计。例如。 AFAIK流媒体 insert无法保证写入表中而且你有 经常在列表的尾部进行轮询以查看它是否真的被写入。 使用时间范围表装饰器可以有效地完成拖尾, 虽然(不支付扫描整个数据集)。
如果您不关心订单,您甚至可以免费列出一张桌子。没有 需要运行查询'然后
云扳手相对年轻,但功能强大且充满希望。至少,谷歌营销声称它的功能是两全其美的(传统RDBMS和noSQL)
我知道回答有点迟,但是添加它可能会对其他人有所帮助。
答案 2 :(得分:10)
大桌子
Google BigTable是Google的云存储解决方案,用于低延迟数据访问。它最初于2004年开发,并基于Google文件系统(GFS)构建。关于BigTable有一篇论文:Bigtable:一种用于结构化数据的分布式存储系统。现在,它已广泛用于许多Google的核心服务中,例如Google搜索,Google地图和Gmail。它以NoSQL架构设计,但仍可以使用基于行的数据格式。数据读取/写入时间少于10毫秒,这对于频繁提取数据的应用程序来说非常有用。它可以扩展到数百PB,每秒处理数百万次操作。
BigTable通过扩展与HBase 1.0 API兼容。从HBase进行的任何移动都将更加容易。 BigTable没有SQL接口,您只能使用API进行放置/获取/删除单个行或运行扫描操作。 BigTable可以轻松地与其他GCP工具集成,例如Cloud Dataflow和Dataproc。 BigTable也是Cloud Datastore的基础。
与其他云不同,GCP计算和存储是分开的。计算成本时,需要考虑以下三个部分。 1. Cloud实例的类型,以及该实例中的节点数。 2.表使用的总存储量。 3.使用的网络带宽量。请注意:部分网络流量是免费的。
好与坏。好消息是,如果您的系统空闲,则无需支付计算成本,而只需支付存储成本。不好的部分是,如果您有非常大的数据集,则很难预测您的计算使用量。
BigQuery
BigQuery是Google的基于云的数据仓库解决方案。与BigTable不同,它以大数据为目标,并且可以在短时间内查询大量数据。由于数据以列数据格式存储,因此与BigTable相比,它在扫描大量数据时要快得多。 BigQuery可让您扩展到PB,是出色的企业数据分析仓库。 BigQuery是无服务器的。无服务器计算意味着可以按需分配计算资源。它使用户从零服务器使用率到全面使用率受益,而无需管理员和管理基础结构。根据Google的说法,BigQuery可以在几秒钟内扫描数TB的数据,而在几分钟内可以扫描PB的数据。对于数据提取,BigQuery允许您从Google Cloud Storage或Google Cloud DataStore加载数据,或流式传输到BigQuery存储。
但是,BigQuery确实适用于OLAP类型的查询并扫描大量数据,并且不适用于OLTP类型的查询。对于较小的读/写操作,相同数量的数据大约需要2秒钟,而BigTable大约需要9毫秒。对于OLTP类型的查询,BigTable更好。尽管BigQuery支持原子单行操作,但缺少跨行事务支持。
答案 3 :(得分:1)
BigQuery和Cloud Bigtable不同。 Bigtable是基于Hadoop的NoSQL数据库,而BigQuery是基于SQL的数据仓库。他们有特定的使用场景。
简而言之;