关于 Amazon DynamoDB

什么是 Amazon DynamoDB?

DynamoDB 是一种适用于任何规模的非关系型数据库服务,具有快速又灵活的特点。使用 DynamoDB,客户可以将运行和扩展分布式数据库的管理工作负担交给 AWS,因而无需担心硬件预调配、设置和配置、吞吐能力规划、复制、软件修补或集群扩展等问题。

DynamoDB 可以代我进行哪些管理?

DynamoDB 消除了影响数据库扩展的主要绊脚石之一:数据库软件的管理,以及运行数据库所需的硬件配置。您可在短短几分钟之内部署非关系数据库。DynamoDB 可自动扩展吞吐容量以满足工作负载需求,并随着您的表大小的增长对数据进行分区和再分区。此外,DynamoDB 还可在一个 AWS 区域的三个数据中心之间同步复制数据,为您提供高可用性和数据持久性。

DynamoDB 的一致性模型是什么样的?

从 DynamoDB 读取数据时,用户可以指定希望读取是最终一致性读取还是强一致性读取:

  • 最终一致性读取(默认)– 最终一致性选项可以最大程度地提高读取吞吐量。但是,最终一致性读取可能不会反映最近完成的一次写入操作的结果。所有数据副本通常在一秒内达到一致。在短时间之后重复读取,应会返回更新的数据。
  • 强一致性读取 – 除了提供最终一致性读取外,DynamoDB 还使您可以根据应用程序或应用程序某元素的要求,以灵活而有控制力的方式请求强一致性读取。强一致性读取返回的结果可反映在读取前收到成功响应的所有写入。
  • ACID 事务 – DynamoDB 事务在一个 AWS 账户和区域中跨一个或多个表为开发人员提供原子性、一致性、隔离性和持久性 (ACID)。当构建需要作为单个逻辑业务操作一部分对多个项协调插入、删除或更新的应用程序时,您可以使用事务。

入门

DynamoDB 支持哪种类型的查询功能?

DynamoDB 支持使用用户定义的主键来执行 GET/PUT 操作。对于表中的项目,主键是唯一所需要的属性。您在创建表时指定主键,它是标识每个项目的唯一标识符。DynamoDB 还提供灵活的查询功能,让您可以使用全局二级索引本地二级索引查询非主键属性。

主键可以是单属性的分区键或复合的分区-排序键。例如,单属性的分区键可以是 UserID。通过这样的单属性分区键,可以对与特定用户 ID 相关联的项目快速读取和写入数据。

DynamoDB 将复合的分区-排序键作为一个分区键元素和一个排序键元素进行索引。这个多部分键可保持第一个元素值和第二个元素值之间的层次结构。例如,复合的分区-排序键可以由 UserID(分区)和 Timestamp(排序)组成。通过保持分区键元素的恒定,您可以在排序键元素中进行搜索以检索项目。利用这种搜索,您就可以使用 Query API 进行检索,例如在一系列时间戳中检索单个 UserID 的所有项目。

如何在 DynamoDB 中更新和查询数据项?

使用 DynamoDB 控制台CreateTable API 创建表之后,您可以使用 PutItemBatchWriteItem API 来插入项目。然后,您可以使用 GetItemBatchGetItemQuery API(如果复合主键已启用且正在表中使用)来检索您添加到表中的项目。

任何操作系统下的应用程序是否都能使用 DynamoDB?

是。DynamoDB 是一项完全托管的云服务,可以通过 API 使用。在任何操作系统(例如,Linux、Windows、iOS、Android、Solaris、AIX 和 HP-UX)上运行的应用程序都可以使用 DynamoDB。我们建议借助 AWS SDK 开始使用 DynamoDB。

计划

使用 DynamoDB 如何收费?

每个 DynamoDB 表预调配与其相关联的读取吞吐量和写入吞吐量。您将按小时对吞吐量付费。请注意,无论您是否向表发送请求,我们都将按小时对吞吐量收费。如果您想更改表的预调配吞吐能力,可使用 AWS 管理控制台更改,或者使用 UpdateTable APIPutScalingPolicy API 自动扩缩。此外,DynamoDB 将收取数据存储的费用,以及标准的 Internet 数据传输费用。

要了解有关 DynamoDB 定价的更多信息,请查看 DynamoDB 定价页面

我可以为单个 DynamoDB 表预调配的最大吞吐量是多少?

每个 DynamoDB 表的最大吞吐量实际上无限制。有关设定的限制的信息,请参阅 DynamoDB 的限制。如果要申请提高上限,请联系 Amazon。 

我可以为单个 DynamoDB 表预调配的最小吞吐量是多少?

您可以为 Auto Scaling 和手动吞吐量预调配请求的最小预调配吞吐量为 1 个写入容量单位和 1 个读取容量单位。这种预配置属于免费套餐的范围,后者允许使用 25 个写入容量单位和 25 个读取容量单位。这种免费套餐在账户级别而非表级别上适用。换言之,如果您将所有表的预调配容量相加,总容量不超过 25 个写入容量单位和 25 个读取容量单位,则您的预调配容量属于免费套餐范围。

DynamoDB 表类有哪些?

DynamoDB 提供两种旨在帮助您优化成本的表类。DynamoDB Standard 表类为原定设置,建议用于大部分工作负载。DynamoDB Standard-Infrequent Access (DynamoDB Standard-IA) 表类针对表进行了优化,用于存储不频繁访问的数据,其中,存储是主要成本。每个表与一个表类关联,每个表类提供不同的数据存储定价以及读写请求次数。您可以根据表的存储要求和数据访问模式,选择最经济高效的表类。

应在何时使用 DynamoDB Standard-IA?

DynamoDB Standard-IA 帮助您为存储不频繁访问数据的表降低 DynamoDB 总成本,例如应用程序日志、旧的社交媒体帖子、电子商务订单历史记录和以前的游戏成就。如果存储是主要表成本,即存储成本一致超过吞吐量(读写)成本的 50%,则 DynamoDB Standard-IA 表类是您最经济的选择。要了解有关 DynamoDB Standard-IA 定价的更多信息,请查看 DynamoDB 定价页面

DynamoDB 标准-IA 表如何用于现有 DynamoDB 功能并集成其他 AWS 服务?

DynamoDB 标准-IA 表与 DynamoDB 标准表在支持所有现有 DynamoDB 功能方面没有区别,包括全局表、辅助索引、按需备份和时间点故障恢复(PITR)。DynamoDB 标准-IA 表也具有与其他 AWS 服务的内置集成,其方式与 DynamoDB 标准表相同。例如,可以使用 Amazon CloudWatch 监测 DynamoDB 标准-IA 表的性能,使用 AWS CloudFormation 模板预调配和管理 DynamoDB 标准-IA 表,使用 DynamoDB Accelerator(DAX)添加缓存以提高性能,将更改数据记录流式传输到 Amazon Kinesis Data Streams,将 DynamoDB Standard-IA 表数据导出到 Amazon Simple Storage Service(Amazon S3)。

工作原理

数据模型和 API

有关数据模型和 API 的更多信息,请查看 Amazon DynamoDB:如何使用

可扩展性、可用性和持久性

有关可扩展性、可用性和持久性的信息,请查看 Amazon DynamoDB 产品详细信息

Auto Scaling

有关 DynamoDB Auto Scaling 的信息,请参阅使用 DynamoDB Auto Scaling 自动管理吞吐能力

安全和控制

有关 DynamoDB 安全和控制的信息,请查看 Amazon DynamoDB 的 Identity and Access Management

网页图片
访问定价页面

查看 Amazon DynamoDB 定价。

了解更多 
账户注册图片
注册免费账户

立即享受 AWS 免费套餐。 

注册 
工具箱图片
开始在控制台中构建

在 AWS 管理控制台中,使用 Amazon DynamoDB 开始构建。

登录