Google app engine 为什么实体在Appengine数据存储中需要密钥

Google app engine 为什么实体在Appengine数据存储中需要密钥,google-app-engine,app-engine-ndb,Google App Engine,App Engine Ndb,appengine数据存储中密钥的用途是什么:我是appengine新手,关于它的任何信息都很好。 为了简单起见,假设MySQL将表中的所有行存储在一个文件中。这样,它可以通过扫描该文件找到所有行 appengine的数据存储(BigTable)没有表的概念。每个实体(MySQL中的~行)都单独存储。[它也可以有一个单独的结构(~columns)。]因为实体没有以任何方式连接,所以没有“默认”方法来遍历所有实体。每个实体都需要一个ID,必须编制索引 键结构 密钥包括: 应用程序ID(MySQL

appengine数据存储中密钥的用途是什么:我是appengine新手,关于它的任何信息都很好。

为了简单起见,假设MySQL将表中的所有行存储在一个文件中。这样,它可以通过扫描该文件找到所有行

appengine的数据存储(BigTable)没有表的概念。每个实体(MySQL中的~行)都单独存储。[它也可以有一个单独的结构(~columns)。]因为实体没有以任何方式连接,所以没有“默认”方法来遍历所有实体。每个实体都需要一个ID,必须编制索引

键结构 密钥包括:

  • 应用程序ID(MySQL中最接近的东西是数据库)
  • 种类(MySQL中最接近的东西是
  • ID或名称(MySQL中最接近的东西是主键)
  • (可选)父密钥(其他实体的所有上述项)。(为了简单起见,省略了细节。)
请注意,最接近的意思是概念相似性从技术上讲,这些东西并不相关。在MySQL中,数据库和表代表实际的存储结构。在BigTable中,它们只是ID,存储实际上是扁平的,即每个实体本质上都是一个文件

换句话说,identity-wise
指向实体,就像
数据库+表+主键
指向MySQL表中的行一样

钥匙的责任 实体的密钥:

  • 说明实体所属的应用程序
  • 它是什么样的(班级、桌子)
  • 通过上述方法以及数字键ID或文本键名称,可以唯一地标识实体
  • (可选)实体的父实体是什么。(为了简单起见,省略了细节。)
用法 为了让您能够检索同一种类的所有实体,应用程序引擎会自动构建索引。这意味着AppEngine会维护所有实体的列表。更具体地说,它维护实体密钥的列表。
可以定义复杂索引以在多个属性(~列)上运行查询

与MySQL不同,每个BigTable查询都需要一个索引。每当运行查询时,都会扫描相应的索引以查找满足查询条件的实体,然后按键检索各个实体

一个常见的高级用途是标识URL中的实体,因为每个键都可以表示为URL安全字符串。在URL中传递实体的键时,可以毫不含糊地检索实体,因为键唯一地标识实体

此外,通过键检索实体具有很强的一致性,这与索引查询相反,这意味着当通过键检索实体时,它保证是最新版本

提示
  • BigTable中存储的每个实体都有一个键。这样的键可以在应用程序中以编程方式创建,并提供任意键名。如果不是,则在存储实体时,将透明地分配数字ID
  • 存储实体后,其密钥可能不会更改
  • 可选的父组件可能用于定义实体的层次结构,但它真正重要的是事务和强一致性。
    • 共享父实体的实体被称为属于同一实体组
    • 组内的查询具有强一致性
  • 只是重申一下,通过键检索实体或通过父键查询索引是非常一致的。以其他方式(例如通过查询属性)检索实体最终是一致的
词汇表
  • 实体-单个键值文档
  • 最终一致性—在不保证复制已完成的情况下检索一个实体(通常是多个实体),这可能会导致某些实体为旧版本,而某些实体则丢失,因为它们尚未从存储在其上的服务器中取出
  • 键-实体的ID
  • 种类-一类实体(如用户或文章)的任意文本名称
  • 密钥ID-密钥的数字标识符。通常自动分配
  • 密钥名称-密钥的文本标识符
  • 强一致性—检索实体的方式应确保检索到其最新版本
(我在示例中特意使用了MySQL,因为我对它的熟悉程度比任何其他关系数据库都要高。)

比较 为了简单起见,假设MySQL将表中的所有行存储在一个文件中。这样,它可以通过扫描该文件找到所有行

appengine的数据存储(BigTable)没有表的概念。每个实体(MySQL中的~行)都单独存储。[它也可以有一个单独的结构(~columns)。]因为实体没有以任何方式连接,所以没有“默认”方法来遍历所有实体。每个实体都需要一个ID,必须编制索引

键结构 密钥包括:

  • 应用程序ID(MySQL中最接近的东西是数据库)
  • 种类(MySQL中最接近的东西是
  • ID或名称(MySQL中最接近的东西是主键)
  • (可选)父密钥(其他实体的所有上述项)。(为了简单起见,省略了细节。)
请注意,最接近的意思是概念相似性从技术上讲,这些东西并不相关。在MySQL中,数据库和表代表实际的存储结构。在BigTable中,它们只是ID,存储实际上是扁平的,即每个实体本质上都是一个文件

换句话说,身份方面的
一个键是一个e