【问题标题】:Is Google Cloud Datastore a Column Oriented NoSQL database?Google Cloud Datastore 是面向列的 NoSQL 数据库吗?
【发布时间】:2016-10-02 19:48:08
【问题描述】:

据我了解,BigTable 是一个面向列的 NoSQL 数据库。尽管 Google Cloud Datastore 是建立在 Google 的 BigTable 基础架构之上的,但我还没有看到明确说明 Datastore 本身是一个面向列的数据库的文档。 Python API 保留的名称在 API 中强制执行,而不是在数据存储本身中,这一事实让我质疑数据存储在多大程度上反映了 BigTable 的内部工作。例如,ndb.Model 类中的验证功能在应用程序代码中强制执行,而不是在数据存储中。使用 ndb.Model 类保存的实体可以在应用程序中不使用 Model 类的其他位置检索、修改、添加属性,然后保存到数据存储区而不会引发错误,直到加载到 Model 类的新实例中.话虽如此,可以说 Google Cloud Datastore 是面向列的 NoSQL 数据库吗?如果不是,那是什么?

【问题讨论】:

  • 我不明白数据验证方法与面向列架构的关系

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


【解决方案1】:

严格来说,Google Cloud Datastore 是分布式多维排序图。正如您提到的,它基于 Google BigTable,但是,它只是一个基础。

从高层的角度来看,Datastore 实际上由三层组成。

大表

这是 Datastore 的必要基础。将行键、列键和时间戳(三维映射)映射到字节数组。数据按行键按字典顺序存储。

  • 高可扩展性和可用性
  • 单行强一致性
  • 多行级别的最终一致性

超级商店

这一层在 BigTable 之上添加事务。

数据存储

Megastore 上方的一层。允许在 BigTable 上将查询作为索引扫描运行。这里的索引不是用来提高性能的,而是查询返回结果所必需的。

此外,它还可以选择通过祖先查询为多行级别添加强一致性。此类查询会在执行实际扫描之前强制更新相应的索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 2017-05-07
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    相关资源
    最近更新 更多