DynamoDB - 概述


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

DynamoDB 与 RDBMS

DynamoDB 使用 NoSQL 模型,这意味着它使用非关系系统。下表突出显示了 DynamoDB 和 RDBMS 之间的差异 -

常见任务 关系型数据库管理系统 动态数据库
连接到源 它使用持久连接和 SQL 命令。 它使用HTTP请求和API操作
创建一个表 它的基本结构是表,并且必须被定义。 它仅使用主键,并且在创建时不使用模式。它使用各种数据源。
获取餐桌信息 所有表格信息仍然可访问 仅显示主键。
加载表数据 它使用由列组成的行。 在表中,它使用由属性组成的项目
读取表数据 它使用 SELECT 语句和过滤语句。 它使用 GetItem、Query 和 Scan。
管理索引 它使用通过 SQL 语句创建的标准索引。表更改时会自动对其进行修改。 它使用二级索引来实现相同的功能。它需要规范(分区键和排序键)。
修改表数据 它使用 UPDATE 语句。 它使用 UpdateItem 操作。
删除表数据 它使用 DELETE 语句。 它使用DeleteItem 操作。
删除表 它使用 DROP TABLE 语句。 它使用DeleteTable 操作。

优点

DynamoDB 的两个主要优势是可扩展性和灵活性。它不强制使用特定的数据源和结构,允许用户以统一的方式使用几乎任何东西。

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

局限性

DynamoDB 确实存在某些限制,但是,这些限制并不一定会造成巨大的问题或阻碍稳健的发展。

您可以从以下几点回顾它们 -

  • 容量单位大小- 读取容量单位是每秒对不大于 4KB 的项目进行的一次一致读取。写入容量单位是每秒写入不大于 1KB 的项目。

  • 预配置吞吐量最小值/最大值- 所有表和全局二级索引至少具有 1 个读取和 1 个写入容量单位。最大值取决于地区。在美国,每张表的读写上限仍然是 40K(每个账户 80K),其他地区的每张表的上限为 10K,账户上限为 20K。

  • 预置吞吐量增加和减少- 您可以根据需要增加此数量,但减少量仍限制为每个表每天不超过四次。

  • 每个账户的牌桌大小和数量- 牌桌大小没有限制,但账户有 256 个牌桌限制,除非您请求更高的上限。

  • 每表二级索引- 允许五个本地索引和五个全局索引。

  • 每个表的预计二级索引属性- DynamoDB 允许 20 个属性。

  • 分区键长度和值- 它们的最小长度为 1 字节,最大长度为 2048 字节,但是,DynamoDB 对值没有限制。

  • 排序键长度和值- 其最小长度为 1 字节,最大长度为 1024 字节,值没有限制,除非其表使用本地二级索引。

  • 表和二级索引名称- 名称的长度必须至少为 3 个字符,最多为 255 个字符。它们使用以下字符:AZ、az、0-9、“_”、“-”和“.” 。

  • 属性名称- 最小为 1 个字符,最大为 64KB,键和某些属性除外。

  • 保留字- DynamoDB 不会阻止使用保留字作为名称。

  • 表达式长度- 表达式字符串有 4KB 限制。属性表达式有 255 字节的限制。表达式的替换变量有 2MB 限制。