Amazon DynamoDB简介

一、DynamoDB的数据是存储在SSD(固态硬盘,固态硬盘),这样可以在预测的低延迟响应时间之内,存储和访问任何规模的数据,另外SSD还具有很高的I / O性能,能够处理大规模请求工作负载我们来看看DynamoDB的不适合的使用场景:如果需要存储大量数据,但这些数据的访问频率很低,但DynamoDB可能不太适合。


DynamoDb的数据模型是无模式的,可认为是简单的键值模式不过特殊的处理在它的主键可以是单属性的哈希键或复合的哈希 - 。范围键例如,单属性的哈希主键可以是“用户ID”,这使您能够快速读取和写入与特定用户ID相关联的项目的数据。

复合的哈希 - 。范围键作为一个哈希键元素和一个范围键元素来索引这个多部分键可保持第一个元素值和第二个元素值之间的层次结构例如,复合的哈希 - 范围键可能是“UserID”(哈希)和“时间戳”(范围)的组合。通过保持哈希键元素的恒定,您可以在范围键元素中进行搜索以检索项目。这样您就使用Query API在一系列时间戳中检索单个用户ID的所有项目等等,这也是DynamoDB作为NoSQL的来讲又非常像SQL的原因,可以同时达到SQL和NoSQL的两个人的优点,就看你怎么设计你的数据库了。


现在DynamoDB已经替换了的SimpleDB中的位置如果你了解的SimpleDB中的话,可以看下边关于两者的对比:

1.因为Amazon SimpleDB自动索引所有项目属性,因而支持灵活查询,想SQL一样,但会影响性能和可扩展性。

2. SImpleDB是限制表的大小为10G,DynamoDB是限制项目的总大小(包括属性名称和属性值)不得超过64KB,但不限制表的大小。

3. Amazon DynamoDB支持三种标准数据类型:数字,字符串和二进制.SimpleDB只支持字符串。

4. DynamoDB的属性值不支持NULL或者空的字符串。


二,在DynamoDB中,数据库是表的集合,表是项目的集合,项目是属性的集合属性约是名称 - 值对。价值可以是单值属性也可以是多值属性(集合)。一个项目的大小不能超过64KB。理解了这个你就入门了。 


另外,DynamoDB为了支持更为丰富的查询,提出了二级索引的思想,可以在表中创建一个或多个二级索引,并对这些索引发出Query请求。有两种类型的二级索引:


本地二级索引(本地二级索引) - 与表拥有相同的哈希键,但范围键却不同的索引。本地二级索引之所以称为“本地”,这是因为它的每个分区的范围都限制在哈希键相同的表分区内。
全局二级索引(Global Secondary Indexes) - 哈希键或哈希 - 范围键可与表中的这些键不同的索引。全局二级索引之所以称为“全局”,这是因为该索引上的查询可跨过所有分区,涵盖表中的所有项目。 


由于具有相同主键哈希值的项目在DynamoDB中共享同一分区,所以“本地”二级索引只包含存储在同一位置(相同分区)的项目。因此,LSI可用于查询具有相同的主键哈希值,但范围键不同的项目。

这里需要指出的是,与表相关的所有GSI都必须在表创建时指定.GSI索引不要求索引属性具有唯一性.GSI支持最终一致性。在表中插入或更新项目时,GSI不会同步更新。


有一些限制需要注意,亚马逊DynamoDB中所有项目集合的大小不得超过10 GB。对任何非重复哈希键值,表中项目大小总和加上该表中本地二级索引所有项目大小总和不得超过10 GB 。



你可能感兴趣的:(AWS)