当前位置: 首页 > 知识库问答 >
问题:

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

端木夕
2023-03-14

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

我看到了一些关于“比较”Bigtable和Datastore的问题,但似乎归结为相同的非特定答案。

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

数据存储更昂贵。

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

Bigtable适用于大型数据集。

看来Datastore也是?我看不出是什么让Bigtable客观上更优越。

Bigtable在分析方面比Datastore更好。

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

Bigtable与Hadoop、Spark等集成。

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

从这个问题出发,我在回答中这样说:

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

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

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

共有1个答案

羊舌胡非
2023-03-14

Bigtable和Datastore针对稍微不同的用例进行了优化,并提供了不同的权衡。主要有:

数据模型:

  • Bigtable是一个宽列数据库——想想HBase和Cassandra

成本模型:

  • 每个配置节点的Bigtable费用

一般来说,如果需要,Bigtable是一个不错的选择:

  • 快速点读取和范围扫描(尤其是在刻度上)。Bigtable将提供更低的键值查找延迟,以及对连续行的快速扫描,这是一个强大的工具,因为行是按字典顺序存储的。如果您有简单、可预测的查询模式,并且设计好了模式,那么从Bigtable读取数据可能会非常高效
  • 高吞吐量写入(同样,尤其是大规模写入)。这在一定程度上是可能的,因为Bigtable最终是一致的——作为交换,你可以在价格/性能上看到巨大的胜利

对于Bigtable来说,非常有用的示例用例包括时间序列数据(用于物联网、监控等——想想超负荷的工作和在x个时间单位内生成的大量数据)、分析(想想欺诈检测、个性化、推荐)和广告服务(每微秒计数)。

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

  • 查询灵活性:数据存储提供文档支持和二级索引
  • 强一致性和/或事务:Bigtable最终具有一致性复制,不支持多行事务
  • 移动SDK:数据存储和Firestore与firebase生态系统的集成非常好

示例用例包括移动和web应用程序、游戏状态、用户配置文件和产品目录。

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

  • 为什么Bigtable用于分析?主要是关于性能:分析用例更有可能拥有大数据集,并且需要高写吞吐量。如果您存储点击流数据,与用户帐户信息相比,它更容易遇到数据库的限制。快速扫描对于分析用例也很重要:Bigtable允许您非常快速地检索您需要的关于用户或设备的所有信息,您可以在批处理作业中处理这些信息,或者使用这些信息快速创建建议和分析。
  • Bigtable是否比Datastore更差?Datastore无疑提供了更多的内置功能,如辅助索引和文档支持,如果您需要这些功能,Datastore是一个极好的选择。但这种功能是有权衡的。Bigtable提供了可能较低级别但性能令人难以置信的API,允许用户为自己做出这些权衡:例如,如果用户重视编写性能而不是辅助索引,Bigtable是一个极好的选择。您可以将其视为一个极其通用和强大的基础架构构建模块。我其实很喜欢轮子/汽车的类比:有时候你不想要汽车——如果你真正需要的是一辆越野自行车,一套实心轮子要有用得多:)
 类似资料:
  • 我是亚马逊AWS的狂热用户,但与谷歌的云SQL相比,我不确定RDS。在这个网站上,提到了每次使用计费计划的存在。 这是怎么计算的?其中提到“连续使用期间收费,四舍五入至最接近的小时”。 进展如何?如果我的网站没有访客,就不收费,对吗?如果我说我有100个连续30天的用户呢。我还会被收取每小时0.025美元(不包括网络使用费)吗? 我如何将我现在的SQL数据库上传到谷歌云服务?这和亚马逊使用甲骨文工

  • 介绍如何在谷歌云平台获取在云联壹云平台需要使用的配置参数。 如何获取谷歌云服务帐号密钥信息? 纳管指定项目 打开“GCP Console中的IAM和管理-IAM页面”页面并登录。 单击顶部“选择项目”,选择需要授权的项目。 在左侧导航栏中选择“服务账号”,进入指定项目的服务账号页面。 单击 “创建服务账号” 按钮,进入创建服务账号页面。 配置服务账号名称、服务账号ID、服务账号说明等,单击 “创建

  • 我正在看新的谷歌云数据存储,看起来很棒。但有件事我不明白。。。它应该替代谷歌应用引擎数据存储吗?我如何在GAE内部使用它?它们之间有什么区别? 我在Java有一个GAE应用程序,它使用3个实体,每个实体都有数千行,我需要经常做连接...

  • 我知道可以使用谷歌API视觉在网上找到类似的图片。我的目标是根据我的图像数据库找到类似的图像。我不想在网上看到类似的图片。 可能吗? 如果是,你能给我一些链接或建议吗? 谢谢

  • storage和colab之间的链接如下所示:

  • 上面写着“Google Cloud Messaging(GCM)是一个免费服务”,但是为了使它能够运行,我需要在Google Cloud平台中创建一个项目,这需要花钱…那怎么免费呢?还是我错过了什么?