Google云端Bigtable与Google云端数据存储

Google Cloud Bigtable和Google Cloud Datastore / App Engine数据存储之间有什么区别,主要的实用优势和劣势是什么? AFAIK云数据存储build立在Bigtable之上。

基于Datastore的经验和阅读Bigtable 文档 ,主要区别是:

  • Bigtable似乎是为了兼容HBase而devise的,而Datastore更适合于Python / Java / Gonetworking应用程序开发人员(最初是App Engine)
  • Bigtable比Datastore“多一点IaaS”,因为它不是“只是在那里”,而是需要configuration一个集群。
  • Bigtable只支持一个索引 – “行键”(Datastore中的实体键)
    • 这意味着查询位于Key上,与数据存储的索引属性不同
  • Bigtable仅在单行上支持primefaces性 – 没有事务
  • 在Bigtable中,突变和删除似乎不是primefaces的,而数据存储提供了最终的和强大的一致性,这取决于读取/查询方法
  • 计费模式非常不同:
    • 数据存储为读/写操作,存储和带宽收费
    • Bigtable 收取 “节点” ,存储和带宽费用

Bigtable针对大量数据和分析进行了优化

  • Cloud Bigtable不会跨区域或区域复制数据(单个群集中的数据将被复制并持续使用),这意味着Bigtable速度更快,效率更高,成本也更低,尽pipe它在默认configuration中不够耐用和可用
  • 它使用HBase API–不存在locking风险或学习新范式的风险
  • 它与开源的Big Data工具集成在一起,这意味着您可以在大多数客户使用的分析工具(Hadoop,Spark等)中分析存储在Bigtable中的数据,
  • Bigtable由单个行键索引
  • Bigtable是在一个单一的区域

Cloud Bigtable适用于大型公司和企业,这些公司和企业通常拥有复杂的后端工作负载所需的大量数据。

数据存储经过优化,可以为应用程序提供高价值的交易数据

  • 云数据存储在复制和数据同步方面具有极高的可用性
  • 数据存储由于其多function性和高可用性而更加昂贵
  • 由于同步复制,数据存储缓慢写入数据
  • 数据存储在事务和查询方面有更好的function(因为二级索引存在)

Bigtable和数据存储是非常不同的。 是的,数据存储是build立在Bigtable的基础上的,但是这并不像它那样。 这就好像说汽车是在车轮顶上build造的,所以汽车与车轮没有多大区别。

Bigtable和Datastore提供了非常不同的数据模型,并且在数据更改方式上提供了非常不同的语义。

主要区别在于数据存储在数据的子集上提供类似SQL数据库的ACID事务(称为实体组)(尽pipe查询语言GQL比SQL有更多的限制)。 Bigtable严格地说是NoSQL,并且有很弱的保证。

考虑到一个相对较小的观点,截至2016年11月,bigtable python客户端库仍在Alpha中,这意味着未来的变化可能不会向后兼容。 另外,bigtable python库与App Engine的标准环境不兼容。 你必须使用灵活的。

如果您阅读论文,BigTable就是这样 ,Datastore就是MegaStore 。 数据存储是BigTable加上复制,事务和索引。 (而且更昂贵)。