问:什么是 Amazon DynamoDB?
DynamoDB 是一种快速灵活的非关系数据库服务,适用于任何规模。通过使用 DynamoDB,客户能将操作和扩缩分布式数据库的管理负担转移给亚马逊云科技,这样他们就不必担心硬件预置、设置和配置、吞吐量容量规划、复制、软件修补或集群扩缩等问题。
问:DynamoDB 可代我管理哪些内容?
DynamoDB 消除了扩展数据库的主要障碍之一:管理数据库软件和预置运行它所需的硬件。您在几分钟内就可部署完非关系型数据库。DynamoDB 会自动扩展吞吐量以满足工作负载需求,并随着表大小的增长对数据进行分区和重新分区。此外,DynamoDB 还可以在亚马逊云科技中国区域的三个设施之间同步复制数据,从而为您提供高可用性和数据持久性。
问:DynamoDB 的一致性模型是什么?
从 DynamoDB 读取数据时,用户可以指定他们希望读取是最终一致性读取还是强一致性读取:
问:DynamoDB 支持哪种类型的查询功能?
DynamoDB 通过使用用户定义的主键来支持 GET/PUT 操作。主键是表中项目的唯一必需属性。您可以在创建表时指定主键,它将唯一地标识每个项目。DynamoDB 提供灵活的查询,您还可以使用全局二级索引和本地二级索引查询非主键属性。
主键可以是单属性分区键,也可以是复合分区排序键。例如,单属性分区键可以是 UserID。通过这样的单属性分区键,您将能快速读取和写入与给定用户 ID 关联的项目的数据。
DynamoDB 将复合分区-排序键作为分区键元素和排序键元素进行索引。此多部分键将维护第一个元素值和第二个元素值之间的层次结构。例如,复合分区排序键可以是 UserID(分区)和时间戳(排序)的组合。如果保持分区键元素不变,则可以在排序键元素中进行搜索以检索项目。例如,通过这样的搜索,您将能使用查询 API 在一定时间戳范围内检索单个 UserID 的所有项目。
问:如何使用 DynamoDB 更新和查询数据项目?
使用 DynamoDB 控制台或 CreateTable API 创建表后,您可以使用 PutItem 或 BatchWriteItem API 插入项目。然后,您可以使用 GetItem、BatchGetItem,或者如果复合主键已启用并在表中使用,则可以使用查询 API 来检索添加到表中的项目。
问:在任何操作系统上运行的应用程序是否都能使用 DynamoDB?
可以。DynamoDB 是一项通过 API 访问的完全托管式云服务。在任何操作系统(例如 Linux、Windows、iOS、Android、Solaris、AIX 和 HP-UX)上运行的应用程序都可以使用 DynamoDB。我们建议使用亚马逊云科技软件开发工具包开始使用 DynamoDB。
问:使用 DynamoDB 的费用如何?
每个 DynamoDB 表都预置了与之关联的读取吞吐量和写入吞吐量。如果您超出了亚马逊云科技中国(宁夏)区域免费套餐的范围,则将按小时向您收取该吞吐量的费用。请注意,无论您是否向表发送请求,都需要按小时收取吞吐量费用。如果您想更改表的预置吞吐容量,可以使用亚马逊云科技管理控制台(用于弹性伸缩的 UpdateTable API)进行更改。此外,DynamoDB 还将收取数据存储费用以及标准互联网数据传输费用。
要了解有关 DynamoDB 定价的更多信息,请参阅 DynamoDB 定价页面。
问:我可以为单个 DynamoDB 表预置的最大吞吐量是多少?
每个 DynamoDB 表的最大吞吐量实际上是无限的。有关现有限制的信息,请参阅 DynamoDB 中的限制。
问:我可以为单个 DynamoDB 表预置的最小吞吐量是多少?
对于弹性伸缩和手动配置吞吐量,您可以请求的最小预置吞吐量为 1 个写入容量单位和 1 个读取容量单位。此类预置属于亚马逊云科技中国(宁夏)区域免费套餐范围,该套餐包含 25 个写入容量单位和 25 个读取容量单位。亚马逊云科技中国(宁夏)区域免费套餐的适用条件是按账户级别区分,而不是表级别。换言之,如果您将所有表的预置容量相加,并且总容量不超过 25 个写入容量单位和 25 个读取容量单位,则您的预置容量将属于亚马逊云科技中国(宁夏)区域免费套餐范围内。
问:数据模型和 API
有关数据模型和 API 的更多信息,请参阅 Amazon DynamoDB:工作原理。
问:可扩展性、可用性和持久性
有关可扩展性、可用性和持久性的信息,请参阅 Amazon DynamoDB 产品详细信息。
Q:弹性伸缩
有关 DynamoDB 弹性伸缩的信息,请参阅使用 DynamoDB Auto Scaling 自动管理吞吐量。
问:安全和控制
有关 DynamoDB 安全和控制的信息,请参阅 Amazon DynamoDB 的身份验证和访问控制。