- DynamoDB 教程
- DynamoDB - 首页
- DynamoDB - 概述
- DynamoDB - 基本概念
- DynamoDB - 环境
- DynamoDB - 操作工具
- DynamoDB - 数据类型
- DynamoDB - 创建表
- DynamoDB - 加载表
- DynamoDB - 查询表
- DynamoDB - 删除表
- DynamoDB - API 接口
- DynamoDB - 创建项目
- DynamoDB - 获取项目
- DynamoDB - 更新项目
- DynamoDB - 删除项目
- DynamoDB - 批量写入
- DynamoDB - 批量读取
- DynamoDB - 查询
- DynamoDB - 扫描
- DynamoDB - 索引
- 全局二级索引
- 局部二级索引
- DynamoDB - 聚合
- DynamoDB - 访问控制
- DynamoDB - 权限 API
- DynamoDB - 条件
- Web身份联合
- DynamoDB - 数据管道
- DynamoDB - 数据备份
- DynamoDB - 监控
- DynamoDB - CloudTrail
- DynamoDB - MapReduce
- DynamoDB - 表活动
- DynamoDB - 错误处理
- DynamoDB - 最佳实践
- DynamoDB 有用资源
- DynamoDB - 快速指南
- DynamoDB - 有用资源
- DynamoDB - 讨论
DynamoDB - 基本概念
在使用 DynamoDB 之前,您必须熟悉其基本组件和生态系统。在 DynamoDB 生态系统中,您使用表、属性和项目进行操作。表包含一组项目,项目包含一组属性。属性是数据的基本元素,不需要进一步分解,即字段。
主键
主键是表项目唯一标识的方法,二级索引提供查询灵活性。DynamoDB 流记录修改表数据的事件。
表创建不仅需要设置名称,还需要设置主键;主键标识表项目。没有两个项目共享同一个主键。DynamoDB 使用两种类型的主键:
分区键 - 此简单主键由单个属性组成,称为“分区键”。在内部,DynamoDB 使用键值作为散列函数的输入来确定存储位置。
分区键和排序键 - 此键称为“复合主键”,由两个属性组成。
分区键和
排序键。
DynamoDB 将第一个属性应用于散列函数,并将具有相同分区键的项目存储在一起;其顺序由排序键确定。项目可以共享分区键,但不能共享排序键。
主键属性仅允许标量(单个)值;以及字符串、数字或二进制数据类型。非键属性没有这些限制。
二级索引
这些索引允许您使用备用键查询表数据。虽然 DynamoDB 不强制使用它们,但它们可以优化查询。
DynamoDB 使用两种类型的二级索引:
全局二级索引 - 此索引拥有分区键和排序键,它们可能与表键不同。
局部二级索引 - 此索引拥有与表相同的分区键,但其排序键不同。
API
DynamoDB 提供的 API 操作包括控制平面、数据平面(例如,创建、读取、更新和删除)和流的操作。在控制平面操作中,您可以使用以下工具创建和管理表:
- CreateTable
- DescribeTable
- ListTables
- UpdateTable
- DeleteTable
在数据平面中,您可以使用以下工具执行 CRUD 操作:
创建 | 读取 | 更新 | 删除 |
---|---|---|---|
PutItem BatchWriteItem |
GetItem BatchGetItem Query Scan |
UpdateItem | DeleteItem BatchWriteItem |
流操作控制表流。您可以查看以下流工具:
- ListStreams
- DescribeStream
- GetShardIterator
- GetRecords
预置吞吐量
在表创建中,您指定预置吞吐量,这将为读写保留资源。您可以使用容量单位来衡量和设置吞吐量。
当应用程序超过设定的吞吐量时,请求将失败。DynamoDB GUI 控制台允许监控已设置和已使用的吞吐量,以便更好地进行动态配置。
读取一致性
DynamoDB 使用最终一致性和强一致性读取来支持动态应用程序需求。最终一致性读取并不总是提供当前数据。
强一致性读取总是提供当前数据(设备故障或网络问题除外)。最终一致性读取是默认设置,需要在ConsistentRead参数中设置为 true 才能更改它。
分区
DynamoDB 使用分区进行数据存储。这些表的存储分配具有 SSD 后端,并自动跨区域复制。DynamoDB 管理所有分区任务,无需用户参与。
在表创建中,表进入 CREATING 状态,这将分配分区。当它达到 ACTIVE 状态时,您可以执行操作。当其容量达到最大值或您更改吞吐量时,系统会更改分区。