Google Cloud Bigtable与Google Cloud Datastore / App Engine数据存储区之间有什么区别?主要的实际优点/缺点是什么? AFAIK Cloud Datastore构建于Bigtable之上。
答案 0 :(得分:86)
Cloud Bigtable专为大型公司和企业而设计,这些公司和企业通常具有较大的数据需求和复杂的后端工作负载。
答案 1 :(得分:85)
根据数据存储的经验和阅读Bigtable docs,主要区别在于:
答案 2 :(得分:18)
Bigtable和Datastore非常不同。是的,数据存储区建立在Bigtable之上,但这并不像它那样。这有点像说汽车是建在车轮上面的,因此汽车与车轮没什么不同。
Bigtable和Datastore提供了截然不同的数据模型,并且在数据更改方式上有着截然不同的语义。
主要区别在于数据存储区在称为实体组的数据子集上提供类似SQL数据库的ACID事务(尽管查询语言GQL比SQL更具限制性)。 Bigtable严格来说是NoSQL,并且提供了更少的保证。
答案 3 :(得分:8)
答案 4 :(得分:4)
答案 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 | |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
答案 7 :(得分:1)
UITAbleView
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来移动这些查询所需的数据。