Google cloud platform 撇开价格不谈,为什么选择谷歌云Bigtable而不是谷歌云数据存储?

Google cloud platform 撇开价格不谈,为什么选择谷歌云Bigtable而不是谷歌云数据存储?,google-cloud-platform,nosql,google-cloud-datastore,bigtable,google-cloud-bigtable,Google Cloud Platform,Nosql,Google Cloud Datastore,Bigtable,Google Cloud Bigtable,如果我对海量数据存储和搜索能力都有一个用例,为什么我会选择Google Cloud Bigtable而不是Google Cloud data Store 我已经看到一些关于SO和其他方面的问题“比较”Bigtable和Datastore,但似乎归结为相同的非特定答案 以下是我目前的知识和想法: 数据存储更昂贵 在这个问题的背景下,让我们完全忘记定价 Bigtable适用于大型数据集 看起来数据存储也是这样?我看不出是什么让Bigtable在客观上更优越 Bigtable在分析方面优于数据存储 怎

如果我对海量数据存储和搜索能力都有一个用例,为什么我会选择Google Cloud Bigtable而不是Google Cloud data Store

我已经看到一些关于SO和其他方面的问题“比较”Bigtable和Datastore,但似乎归结为相同的非特定答案

以下是我目前的知识和想法:

数据存储更昂贵

在这个问题的背景下,让我们完全忘记定价

Bigtable适用于大型数据集

看起来数据存储也是这样?我看不出是什么让Bigtable在客观上更优越

Bigtable在分析方面优于数据存储

怎么做?为什么?看起来我也可以在数据存储中进行分析,没问题。为什么Bigtable似乎是全行业一致的分析决策?GMail、eBay等从Bigtable中获得的数据存储无法提供的价值是什么

Bigtable与Hadoop、Spark等集成

考虑到数据存储是建立在Bigtable上的,它也不一样吗

自年月日起,该声明在答复中作出:


Bigtable和Datastore是非常不同的。是的,数据存储是建立在Bigtable之上的,但这并不意味着它与Bigtable有任何相似之处。这有点像说汽车是在车轮上建造的,所以汽车与车轮没有太大区别

然而,这种类比似乎是荒谬的,因为汽车(包括车轮)本质上提供的价值超过了汽车车轮本身的价值


乍一看,Bigtable似乎比Datastore差得多,只提供了一个索引,限制了快速搜索能力。我缺少什么?

Bigtable和Datastore针对略有不同的用例进行了优化,并提供了不同的折衷方案。主要有:

数据模型:

  • Bigtable是一个宽列数据库——想想HBase和Cassandra
  • 数据存储是一个文档数据库——比如MongoDB
  • 注意,这两种方法都可以用于键值用例
成本模式:

  • 每个已配置节点的Bigtable费用
  • 数据存储是无服务器的,每次操作都要收费
通常,如果需要,Bigtable是一个不错的选择:

  • 快速点读取和范围扫描(特别是在刻度上)。Bigtable将为键值查找提供更低的延迟,以及对连续行的快速扫描,这是一个强大的工具,因为行是按字典顺序存储的。如果您有简单的、可预测的查询模式,并且能够很好地设计模式,那么从Bigtable读取数据将非常高效

  • 高吞吐量写入(同样,尤其是在大规模写入时)。这在一定程度上是可能的,因为Bigtable最终是一致的——作为交换,您可以看到价格/性能方面的巨大胜利
对于Bigtable来说非常有用的示例用例包括时间序列数据(用于物联网、监控等——想想超负荷的工作负载和在x个时间单位内生成的大量数据)、分析(想想欺诈检测、个性化、推荐)和广告服务(每微秒计数)

如果需要,数据存储(或Firestore)是一个不错的选择:

  • 查询灵活性:数据存储提供文档支持和辅助索引
  • 强一致性和/或事务:Bigtable最终具有一致性复制,不支持多行事务
  • 移动SDK:数据存储和Firestore与firebase生态系统的集成非常好
示例用例包括移动和web应用程序、游戏状态、用户配置文件和产品目录

要明确回答您的几个问题:

  • 为什么Bigtable用于分析?主要是关于性能:分析用例更有可能具有大型数据集,并且需要高写入吞吐量。如果您存储的是clickstream数据,那么很容易受到数据库的限制,而不是像用户帐户信息这样的东西。快速扫描对于分析用例也很重要:Bigtable允许您极其快速地检索用户或设备所需的所有信息,您可以在批处理作业中处理这些信息,也可以使用这些信息动态创建建议和分析
  • Bigtable是否严格地比Datastore差?Datastore无疑提供了更多的内置功能,如辅助索引和文档支持,如果您需要这些功能,Datastore是一个不错的选择。但这种功能需要权衡。Bigtable提供的API级别可能较低,但性能令人难以置信,允许用户自己进行权衡:如果用户重视(比如)二级索引的写入性能,Bigtable是一个很好的选择。你可以把它看作是一个功能极其强大的基础设施构件。事实上,我喜欢车轮/汽车的类比:有时你不想要汽车——如果你真正需要的是一辆土制自行车,那么一套实心车轮就更有用:)

我建议在混合中考虑云扳手和Firestore。在进行比较时,我建议考虑每秒10万次以上操作的价格/性能。我还研究了Firestore,当然也考虑了这一点。我不一定要考虑Cloud Spanner,因为它是关系数据库。在10万次/秒的速度下,价格肯定会起作用,但这里的用例可能永远不会超过500-1000次/秒,而且两家商店之间的价格非常相似。感谢Sandy Ghai的详细回答。“Bigtable最终是一致的”——这不是真的。除非使用集群复制,否则Bigtable是强一致的。这很公平!Bigtable在一个区域内是高度一致的,最终在区域之间也是一致的——但大多数