根据 DynamoDB 的文档,它支持 NoSQL 的键值和面向文档的属性,即使其他 NoSQL 数据库仅属于一种类型:键值、文档、图形或面向列
它还说
Amazon DynamoDB“基于 Dynamo 的原则构建”[3],是 AWS 基础设施内的托管服务。然而,Dynamo 基于无领导者复制,而 DynamoDB 使用单领导者复制。
而迪纳摩则是
一组技术,共同构成高可用的键值结构化存储系统[1]或分布式数据存储
因此,当 DynamoDB 建立在与面向文档的存储系统无关的 Dynamo 原则之上时,并且由于开发人员必须创建主键并且表中的每个项目都需要键,因此 DynamoDB 如何以及在什么意义上被称为面向文档的数据库 ?
数据库首先可以分为两种类型的 NoSQL 数据库吗?
首先,重要的是要认识到“Dynamo”是 Amazon 设计的早期 nosql 数据库,其设计于 2007 年公开(例如,参见https://www.allthingsdistributed.com/2007/10/amazons_dynamo.html https://www.allthingsdistributed.com/2007/10/amazons_dynamo.html)。后来其他人采用了这种设计和其他当代设计(例如 Google 的 BigTable)并对其进行了改进,产生了诸如 Cassandra (2008) 等项目。亚马逊的DynamoDB2012 年才发布,基于其他系统(尤其是 Cassandra)的许多想法,与最初的“Dynamo”几乎没有共同之处。因此,当您讨论现代 DynamoDB 时,几乎所有关于原始“Dynamo”的内容都无关紧要。
现在关于您的主要问题:
键值存储为每个键保存一个value。可以说,如果该值可以是一个完整的document,您可以将此数据库称为“文档存储”。从这个意义上说,DynamoDB 是一个文档存储。 DynamoDB API 可让您方便地将 JSON 文档存储为值,并且还可以直接读取或写入该文档的一部分,而不是读取或写入整个文档(尽管您实际上需要为读取和写入该文档付费)entire文档)。
您应该注意到,DynamoDB,如 Cassandra 和 BigTable(与原始的“Dynamo”不同)实际上为您提供的不仅仅是这些:每个所谓的“分区键”不仅可以保存一个值(或文档),还可以保存一个排序列表这样的价值观。我在问题中提到了这个有趣的功能,但我不知道如何调用它DynamoDB和Cassandra的数据模型如何称呼? https://stackoverflow.com/questions/60798118/how-do-you-call-the-data-model-of-dynamodb-and-cassandra
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)