Dynamodb 简明教程

DynamoDB - Overview

DynamoDB 允许用户创建能够存储和检索任意数据量并服务于任意流量的数据库。它在服务器上自动分配数据和流量,以动态管理每个客户的请求,并且还保持了快速性能。

DynamoDB vs. RDBMS

DynamoDB 使用 NoSQL 模型,这意味着它使用非关系系统。下表重点介绍了 DynamoDB 和 RDBMS 之间的差异 −

Common Tasks

RDBMS

DynamoDB

Connect to the Source

它使用持久连接和 SQL 命令。

它使用 HTTP 请求和 API 操作

Create a Table

其基本结构是表,并且必须定义。

它仅使用主键,在创建时没有架构。它使用各种数据源。

Get Table Info

所有表信息仍然可访问

仅显示主键。

Load Table Data

它使用由列组成的行。

在表中,它使用由属性组成的项

Read Table Data

它使用 SELECT 语句和过滤语句。

它使用 GetItem、Query 和 Scan。

Manage Indexes

它使用通过 SQL 语句创建的标准索引。在表更改时,对其进行的修改会自动进行。

它使用辅助索引来实现相同的功能。它需要规范(分区键和排序键)。

Modify Table Data

它使用一条 UPDATE 语句。

它使用 UpdateItem 操作。

Delete Table Data

它使用 DELETE 语句。

它使用 DeleteItem 操作。

Delete a Table

它使用 DROP TABLE 语句。

它使用 DeleteTable 操作。

Advantages

DynamoDB 的两个主要优点是可伸缩性与灵活性。它不要求使用特定数据源与结构,这让用户能在几乎所有内容上操作,但以统一的方式。

其设计也支持从较轻任务与操作 到 要求苛刻的企业功能 的广泛用途。它还允许使用多种语言:Ruby、Java、Python、C#、Erlang、PHP 和 Perl。

Limitations

但是,DynamoDB 确实存在某些限制,不过这些限制不会一定造成大问题或妨碍稳固的开发。

您可以从以下观点对其进行审阅 −

  1. Capacity Unit Sizes − 读容量单位是在不超过 4KB 的项目上,每秒执行一次一致读取。写容量单位是不超过 1KB 的项目上,每秒执行一次写操作。

  2. Provisioned Throughput Min/Max − 所有表和全局二级索引都至少一个读容量单位和一个写容量单位。最大值取决于区域。在美国,每表最高为 40K 读写(每个账户最高 80K),而其他区域每表最高为 10K,每个账户最高为 20K。

  3. Provisioned Throughput Increase and Decrease − 您可按需任意增加容量,但仅限于每天对每表最多减少 4 次。

  4. Table Size and Quantity Per Account − 表大小没有限制,但每个账户的表限制为 256 个,除非您申请较高的限制。

  5. Secondary Indexes Per Table − 允许五个本地和五个全局。

  6. Projected Secondary Index Attributes Per Table − DynamoDB 允许 20 个属性。

  7. Partition Key Length and Values − 其最小长度为 1 字节,最大长度为 2048 字节,不过,DynamoDB 对值不设限制。

  8. Sort Key Length and Values − 其最小长度为 1 字节,最大长度为 1024 字节,对值不设限制,除非其表使用本地二级索引。

  9. Table and Secondary Index Names − 名称的最小长度为 3 个字符,最大长度为 255 个。他们使用以下字符:AZ、a-z、0-9、“_”、“-”和“.”.

  10. Attribute Names − 最小长度为 1 个字符,最大长度为 64KB,但密钥和某些属性除外。

  11. Reserved Words − DynamoDB 不会阻止将保留字用作名称。

  12. Expression Length − 表达式字符串有 4KB 限制。属性表达式有 255 字节限制。表达式的替换变量有 2MB 限制。