Google Cloud Bigtable与Google Cloud Datastore

时间:2015-05-06 18:57:00

标签: google-app-engine google-cloud-datastore google-cloud-bigtable

Google Cloud Bigtable与Google Cloud Datastore / App Engine数据存储区之间有什么区别?主要的实际优点/缺点是什么? AFAIK Cloud Datastore构建于Bigtable之上。

10 个答案:

答案 0 :(得分:86)

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

  • Cloud Bigtable不跨区域或区域复制数据(单个群集中的数据被复制且持久),这意味着Bigtable更快,更高效,成本更低,但不太耐用在默认配置中可用
  • 它使用HBase API - 没有锁定风险或新范例可供学习
  • 它与开源大数据工具集成,这意味着您可以在客户使用的大多数分析工具(Hadoop,Spark等)中分析存储在Bigtable中的数据。
  • Bigtable由单个Row Key索引
  • Bigtable位于单个区域

Cloud Bigtable专为大型公司和企业而设计,这些公司和企业通常具有较大的数据需求和复杂的后端工作负载。

数据存储区经过优化,可为应用程序提供高价值的事务数据

  • Cloud Datastore具有极高的复制和数据同步可用性
  • 数据存储,因其多功能性和高可用性,更昂贵
  • 由于同步复制,数据存储区写入数据的速度较慢
  • 数据存储区在事务和查询方面具有更好的功能(因为存在二级索引)

答案 1 :(得分:85)

根据数据存储的经验和阅读Bigtable docs,主要区别在于:

  • Bigtable似乎是为HBase兼容而设计的,而Datastore则更适合Python / Java / Go Web应用程序开发人员(最初是App Engine)
  • Bigtable比数据存储更“IaaS”,因为它不仅仅是'那里',而是需要一个群集configured
  • Bigtable仅支持一个索引 - “行密钥”(数据存储区中的实体密钥)
    • 这意味着查询位于密钥上,与数据存储区的索引属性
    • 不同
  • Bigtable仅支持单行的原子性 - 没有事务
  • 变异和删除在Bigtable中似乎不是原子的,而数据存储提供最终和强大的一致性,具体取决于读取/查询方法
  • 结算模式非常不同:
    • 数据存储区对读/写操作,存储和带宽收费
    • '节点'的Bigtable charges,存储和带宽

答案 2 :(得分:18)

Bigtable和Datastore非常不同。是的,数据存储区建立在Bigtable之上,但这并不像它那样。这有点像说汽车是建在车轮上面的,因此汽车与车轮没什么不同。

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

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

答案 3 :(得分:8)

如果您阅读论文,BigTable为this,数据存储为MegaStore。数据存储区是BigTable以及复制,事务和索引。 (而且要贵得多)。

答案 4 :(得分:4)

这可能是Google Cloud Bigtable和Google Cloud Datastore以及其他服务之间的另一组关键区别。下图中显示的内容还可以帮助您选择合适的服务。

enter image description here

enter image description here

答案 5 :(得分:2)

一个相对较小的一点需要考虑,截至2016年11月,bigtable python客户端https://developer.android.com/training/permissions/requesting.html仍处于Alpha状态,这意味着未来的更改可能不会向后兼容。此外,bigtable python库与App Engine的标准环境不兼容。你必须使用灵活的。

答案 6 :(得分:2)

我将尝试总结以上所有答案以及Coursea Google Cloud Platform Big Data and Machine Learning Fundamentals中给出的内容

+---------------------+------------------------------------------------------------------+------------------------------------------+--+
|      Category       |                             BigTable                             |                Datastore                 |  |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
| Technology          | Based on HBase(uses HBase API)                                   | Uses BigTable itself                     |  |
| ----------------    |                                                                  |                                          |  |
| Access Mataphor     | Key/Value (column-families) like Hbase                           | Persistent hashmap                       |  |
| ----------------    |                                                                  |                                          |  |
| Read                | Scan Rows                                                        | Filter Objects on property               |  |
| ----------------    |                                                                  |                                          |  |
| Write               | Put Row                                                          | Put Object                               |  |
| ----------------    |                                                                  |                                          |  |
| Update Granularity  | can't update row ( you should write a new row, can't update one) | can update attribute                     |  |
| ----------------    |                                                                  |                                          |  |
| Capacity            | Petabytes                                                        | Terbytes                                 |  |
| ----------------    |                                                                  |                                          |  |
| Index               | Index key only (you should properly design the key)              | You can index any property of the object |  |
| Usage and use cases | High throughput, scalable flatten data                           | Structured data for Google App Engine    |  |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+

也检查此图像:enter image description here

enter image description here

答案 7 :(得分:1)

enter image description here

UITAbleView

enter image description here

Cloud Datastore is a highly-scalable NoSQL database for your applications.
Like Cloud Bigtable, there is no need for you to provision database instances.
Cloud Datastore uses a distributed architecture to automatically manage
scaling. Your queries scale with the size of your result set, not the size of your
data set.
Cloud Datastore runs in Google data centers, which use redundancy to
minimize impact from points of failure. Your application can still use Cloud
Datastore when the service receives a planned upgrade.

答案 8 :(得分:0)

数据存储区更适合应用程序使用,适用于各种服务,尤其是微服务。

Datastore的基础技术是Big Table,因此您可以想象Big Table更强大。

数据存储每天提供2万免费操作,您可以期望托管一台具有可靠数据库且成本为零的服务器。

您还可以签出此Datastore ORM库,它具有很多强大的功能 https://www.npmjs.com/package/ts-datastore-orm

答案 9 :(得分:-1)

我刚刚在Datastore文档(强调我的)length page about eventual consistency中找到了这个有用的类比:

  

一种做法是结合使用Cloud Datastore和BigQuery来满足不同的业务需求。 将云数据存储用于核心应用程序逻辑所需的联机事务处理(OLTP),并将BigQuery用于后端操作的联机分析处理(OLAP)。可能需要从Cloud Datastore实施连续数据导出流程使用BigQuery来移动这些查询所需的数据。