关于 Amazon DynamoDB

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

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

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

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

入门

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

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

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

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

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

计划

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

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

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

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

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

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 的更多信息,请查看 Amazon DynamoDB:如何使用

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

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

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