是否有人会使用BigTable而不是BigQuery?两者似乎都支持读和写操作,后者还提供高级的“查询”操作。
我需要开发一个会员网络(因此我需要跟踪点击和“销售”),所以我对两者之间的差异感到困惑,因为bigQuery似乎只是具有更好API的bigTable。
是否有人会使用BigTable而不是BigQuery?两者似乎都支持读和写操作,后者还提供高级的“查询”操作。
我需要开发一个会员网络(因此我需要跟踪点击和“销售”),所以我对两者之间的差异感到困惑,因为bigQuery似乎只是具有更好API的bigTable。
Answers:
区别基本上是:
BigQuery是一个查询引擎,用于那些变化不大或通过追加而变化的数据集。当您的查询需要“表扫描”或需要查看整个数据库时,这是一个很好的选择。考虑总和,平均值,计数,分组。当您收集大量数据并需要提出有关问题时,便使用BigQuery。
BigTable是一个数据库。它被设计为大型可扩展应用程序的基础。在制作需要读取和写入数据的任何类型的应用程序时,请使用BigTable,并且扩展可能是一个潜在问题。
Use BigTable
:(o)
这可能有助于确定Google Cloud提供的不同数据存储之间的关系(免责声明!从Google Cloud页面复制)
如果您的需求是实时数据库,则需要BigTable(不过实际上不是OLTP系统)。如果更多是出于分析目的,那么BigQuery是您所需要的!
想一想OLTP与OLAP ; 或者,如果您熟悉Cassandra与Hadoop,则BigTable大致等同于Cassandra,BigQuery大致等同于Hadoop(同意,这不是一个公平的比较,但是您知道了)
https://cloud.google.com/images/storage-options/flowchart.svg
请记住,Bigtable不是关系数据库,它不支持SQL查询或JOIN
s,也不支持多行事务。同样,对于少量数据来说,这也不是一个好的解决方案。如果需要RDBMS OLTP,则可能需要查看cloudSQL(mysql / postgres)或扳手。
成本角度
https://stackoverflow.com/a/34845073/6785908。在此引用相关部分。
总成本归结为您将“查询”数据的频率。如果它是备份,并且您不经常重播事件,那将是非常便宜的。但是,如果您需要每天重播一次,则将非常容易地触发扫描的5 $ / TB。我们也对廉价的插入和存储如此便宜感到惊讶,但这确实是因为Google希望您在某个时间对它们进行昂贵的查询。但是,您将不得不设计一些东西。例如,AFAIK流插入无法保证被写入表中,因此您必须经常在列表尾部进行轮询,以查看其是否真正被写入。不过,使用时间范围表装饰器可以有效地完成尾部操作(无需为扫描整个数据集付费)。
如果您不关心订单,甚至可以免费列出表格。然后无需运行“查询”。
云扳手相对较年轻,但是功能强大且前景广阔(而且价格也非常昂贵)。至少,谷歌营销声称它的功能是两全其美的(传统的RDBMS和noSQL)
BigQuery和Cloud Bigtable不一样。Bigtable是基于Hadoop的NoSQL数据库,而BigQuery是基于SQL的数据仓库。他们有特定的使用方案。
简单地说: