问:什么是 Amazon DynamoDB?
DynamoDB 是一种适用于任何规模的非关系型数据库服务,具有快速又灵活的特点。使用 DynamoDB,客户可以将运行和扩展分布式数据库的管理工作负担交给 AWS,因而无需担心硬件预置、设置和配置、吞吐容量规划、复制、软件修补或集群扩展等问题。
问: DynamoDB 可以代我进行哪些管理?
DynamoDB 消除了影响数据库扩展的主要绊脚石之一:数据库软件的管理,以及运行数据库所需的硬件配置。您可在短短几分钟之内部署非关系数据库。DynamoDB 可自动扩展吞吐容量以满足工作负载需求,并随着您的表大小的增长对数据进行分区和再分区。此外,DynamoDB 还可在一个 AWS 区域的三个数据中心之间同步复制数据,为您提供高可用性和数据持久性。
问: DynamoDB 的一致性模型是什么样的?
从 DynamoDB 读取数据时,用户可以指定希望读取是最终一致性读取还是强一致性读取:
问:DynamoDB 支持哪种类型的查询功能?
DynamoDB 支持使用用户定义的主键来执行 GET/PUT 操作。对于表中的项目,主键是唯一所需要的属性。您在创建表时指定主键,它是标识每个项目的唯一标识符。DynamoDB 还提供灵活的查询功能,让您可以使用全局二级索引和本地二级索引查询非主键属性。
主键可以是单属性的分区键或复合的分区-排序键。例如,单属性的分区键可以是 UserID。通过这样的单属性分区键,可以对与特定用户 ID 相关联的项目快速读取和写入数据。
DynamoDB 将复合的分区-排序键作为一个分区键元素和一个排序键元素进行索引。这个多部分键可保持第一个元素值和第二个元素值之间的层次结构。例如,复合的分区-排序键可以由 UserID(分区)和 Timestamp(排序)组成。通过保持分区键元素的恒定,您可以在排序键元素中进行搜索以检索项目。利用这种搜索,您就可以使用 Query API 进行检索,例如在一系列时间戳中检索带有单个 UserID 的所有项目。
问:如何在 DynamoDB 中更新和查询数据项?
使用 DynamoDB 控制台或 CreateTable API 创建表之后,您可以使用 PutItem 或 BatchWriteItem API 来插入项目。然后,您可以使用 GetItem、BatchGetItem 或 Query API(如果复合主键已启用且正在表中使用)来检索您添加到表中的项目。
问:使用 DynamoDB 如何收费?
每个 DynamoDB 表配置了与其相关联的读取吞吐量和写入吞吐量。如果您超过了免费套餐的范围,将按小时对吞吐容量计费。请注意,无论您是否向表发送请求,我们都将按小时对吞吐容量收费。如果您想更改表的预置吞吐容量,可使用 AWS 管理控制台或 Auto Scaling 的 UpdateTable API 或 PutScalingPolicy API 执行此操作。此外,DynamoDB 将收取数据存储的费用,以及标准的 Internet 数据传输费用。
要了解有关 DynamoDB 定价的更多信息,请查看 DynamoDB 定价页面。
问:我可以为单个 DynamoDB 表配置的最小吞吐量是多少?
您可以为 Auto Scaling 和手动吞吐量预配置请求的最小预置吞吐量为 1 个写入容量单位和 1 个读取容量单位。这种预配置属于免费套餐的范围,后者允许使用 25 个写入容量单位和 25 个读取容量单位。这种免费套餐在账户级别而非表级别上适用。换言之,如果您将所有表的配置容量相加,总容量不超过 25 个写入容量单位和 25 个读取容量单位,则您的配置容量属于免费套餐范围。
问:数据模型和 API
有关数据模型和 API 的更多信息,请查看 Amazon DynamoDB:如何使用。
问:可扩展性、可用性和持久性
有关可扩展性、可用性和持久性的信息,请查看 Amazon DynamoDB 产品详细信息。
问:Auto Scaling
有关 DynamoDB Auto Scaling 的信息,请查看使用 DynamoDB Auto Scaling 自动管理吞吐容量。
问:安全和控制
有关 DynamoDB 安全和控制的信息,请查看 Amazon DynamoDB 的身份验证和访问控制。