我试图了解 Google App Engine (GAE) 数据存储是如何设计的以及如何使用它。我很难从入门页面的描述中可视化结构。
有人可以为我们以视觉为导向的人解释数据存储吗?或者在考虑视觉学习的情况下再次指向一个好的教程?
我正在专门寻找解释如何使用 GAE 的图表/数字的答案。
我试图了解 Google App Engine (GAE) 数据存储是如何设计的以及如何使用它。我很难从入门页面的描述中可视化结构。
有人可以为我们以视觉为导向的人解释数据存储吗?或者在考虑视觉学习的情况下再次指向一个好的教程?
我正在专门寻找解释如何使用 GAE 的图表/数字的答案。
2008 年 IO 会议“Under the Covers of the Google App Engine Datastore”对数据存储区进行了很好的可视化概述。
https://sites.google.com/site/io/under-the-covers-of-the-google-app-engine-datastore
http://snarfed.org/datastore_talk.html
如需更多 IO 会谈,请访问: https ://developers.google.com/appengine/docs/videoresources
我想这里没有正确的答案,只是不同的思维模型。根据您的编程背景,您可能会发现我的启发、令人不安或两者兼而有之。我将数据存储区想象成一个巨大的分布式键值存储桶集合,其中包含任何命名空间中任何类型的所有实体数据以及所有用户的所有 GAE 应用程序。单个存储桶称为实体组。它有一个根键(在后台)由您的 appID、命名空间、种类、实体 ID 或名称组成。在一个实体组中驻留一个或多个实体,这些实体具有扩展根密钥的密钥。属于根密钥本身的实体可能存在也可能不存在。单个实体组中的操作是原子的(事务性的)。实体是一个简单的类似地图的数据结构。2 个内置索引(升序和降序)又是 2 个巨大的索引条目排序集合。每个索引条目都是 appID、命名空间、种类、属性名称、属性类型、属性值、实体键的数据结构 - 按此顺序。每个实体的每个属性的每个(自动)索引值都会创建 2 个这样的索引条目。还有另一个索引,其中只有实体键。然而,自定义索引转到另一个排序集合,其中包含 appID、命名空间、索引类型、组合索引值、实体键的条目。这是整个数据存储中唯一使用元数据的部分。它存储一个索引定义,该定义告诉存储如何从实体形成组合索引值。这是我脑海中烙印的画面,我知道如何让数据存储满意。命名空间、种类、属性名称、属性类型、属性值、实体键 - 按此顺序。每个实体的每个属性的每个(自动)索引值都会创建 2 个这样的索引条目。还有另一个索引,其中只有实体键。然而,自定义索引转到另一个排序集合,其中包含 appID、命名空间、索引类型、组合索引值、实体键的条目。这是整个数据存储中唯一使用元数据的部分。它存储一个索引定义,该定义告诉存储如何从实体形成组合索引值。这是我脑海中烙印的画面,我知道如何让数据存储满意。命名空间、种类、属性名称、属性类型、属性值、实体键 - 按此顺序。每个实体的每个属性的每个(自动)索引值都会创建 2 个这样的索引条目。还有另一个索引,其中只有实体键。然而,自定义索引转到另一个排序集合,其中包含 appID、命名空间、索引类型、组合索引值、实体键的条目。这是整个数据存储中唯一使用元数据的部分。它存储一个索引定义,该定义告诉存储如何从实体形成组合索引值。这是我脑海中烙印的画面,我知道如何让数据存储满意。s 另一个只有实体键的索引。然而,自定义索引转到另一个排序集合,其中包含 appID、命名空间、索引类型、组合索引值、实体键的条目。这是整个数据存储中唯一使用元数据的部分。它存储一个索引定义,该定义告诉存储如何从实体形成组合索引值。这是我脑海中烙印的画面,我知道如何让数据存储满意。s 另一个只有实体键的索引。然而,自定义索引转到另一个排序集合,其中包含 appID、命名空间、索引类型、组合索引值、实体键的条目。这是整个数据存储中唯一使用元数据的部分。它存储一个索引定义,该定义告诉存储如何从实体形成组合索引值。这是我脑海中烙印的画面,我知道如何让数据存储满意。