Amazon DynamoDB 是一项无服务器 NoSQL 数据库服务,支持键-值文档数据模型。开发人员可以使用 Amazon DynamoDB 来构建现代化的无服务器应用程序,这些应用程序可以从小规模起步并在全球范围内扩展。Amazon DynamoDB 可通过自动水平扩缩进行扩展,以支持几乎任何大小的表。

Amazon DynamoDB 每天持续处理超过 10 万亿个请求。由于内置了可用性、持久性和容错能力,并且无法关闭,因此无需为这些功能构建应用程序。

Amazon DynamoDB 可运行 Internet 规模的高性能应用程序,这些应用程序将为传统的关系数据库带来沉重的负担。凭借十多年开拓创新的投资,Amazon DynamoDB 可提供无限的可扩展性,稳定的个位数毫秒级性能和高达 99.999% 的可用性。

要了解正在推出的新特征和功能,可以通过 Amazon DynamoDB 的“最新资讯”公告轻松了解新发布的内容。

什么是 Amazon DynamoDB?

无服务器性能和无限可扩展性

键-值和文档数据模型

Amazon DynamoDB 支持键-值和文档数据结构。作为 NoSQL 数据库,Amazon DynamoDB 具有灵活的架构,因此每个项目都可以有许多不同的属性。灵活的架构使您可以轻松适应业务需求的变化,而不必像在关系数据库中那样重新定义表架构。

可缩减到零的无服务器

使用 Amazon DynamoDB 后,无需预置、修补或管理服务器,也不需要安装、维护或操作软件。Amazon DynamoDB 没有版本(主版本、次要版本或补丁版本),没有维护时段,而且可以实现零停机时间维护。Amazon DynamoDB 按需定价提供即用即付定价模式,可将费用缩减至零,并且可以自动扩展表以适应容量,无需管理即可保持性能。

ACID 事务

Amazon DynamoDB 专为任务关键型工作负载构建,为适用于需要复杂业务逻辑的应用程序提供对原子性、一致性、隔离性和持久性(ACID)事务的支持。Amazon DynamoDB 提供对事务的原生服务器端支持,简化了开发人员对表内和表间的多个项目进行全有或全无的协调式更改的体验。

现在,Amazon DynamoDB 支持每个事务 100 个操作,提高了开发人员的工作效率。利用对事务的支持,开发人员可以将 Amazon DynamoDB 的规模、性能和企业收益扩展到更广泛的任务关键型工作负载。

使用全局表进行主动-主动复制

Amazon DynamoDB 全局表可在您选择的 AWS 区域内提供数据的主动-主动复制,可用性达 99.999%。全局表是多活动表,这意味着您可以从任何副本进行写入和读取,而且您的全球分布式应用程序可以在选定区域本地访问数据,以获得个位数毫秒级的读取和写入性能。

此外,全局表会自动扩展容量以适应您的多区域工作负载。全局表可提高应用程序的多区域弹性,应将其视为组织业务连续性战略的一部分。

作为事件驱动型架构一部分的 Amazon DynamoDB Streams

Amazon DynamoDB Streams 是一项变更数据捕获功能。每当应用程序创建、更新或删除表中的项目时,Amazon DynamoDB Streams 都会近乎实时地记录每个项目级更改的时间顺序,因此非常适合事件驱动型架构应用程序使用和操作变更。这些更改会去除重复项并存储 24 小时。

应用程序还可以访问此日志,并近乎实时地查看修改前后的数据项。Amazon DynamoDB Streams 可确保每条流记录在流中只出现一次,对于每个修改过的项目,流记录的显示顺序与对项目的实际修改顺序相同。

二级索引

与所有其他数据库系统类似,首先要创建一个表,该表是项目的集合。在 Amazon DynamoDB 中,表中的每个项目都有自己的主键。许多应用程序也可以通过具有一个或多个辅助键来更有效地使用其他属性搜索数据。Amazon DynamoDB 提供了创建全局和本地二级索引的选项,允许您使用辅助键或备用键查询表中的数据。

全局二级索引也称为稀疏索引。除了在数据访问方式方面为您提供最大的灵活性外,您还可以以更低的成本配置更低的写入吞吐量和出色的性能

安全性与可靠性

Amazon DynamoDB 通过加密帮助保护您的数据,并持续备份您的数据以进行保护。

精细访问控制

使用 Amazon DynamoDB 时,无需用户名或密码。Amazon DynamoDB 使用 AWS Identity and Access Management(IAM)来验证、创建和访问资源。您可以指定允许细粒度访问的 IAM 策略基于资源的策略和条件,根据用户的身份限制对表中特定项目和属性的读取或写入权限。这使客户能够在代码级别强制执行安全策略。

静态加密

默认情况下,Amazon DynamoDB 会对所有客户静态数据进行加密。静态加密通过使用在 AWS Key Management Service(AWS KMS)中存储的加密密钥来提高数据的安全性。 通过添加 AWS 数据库加密 SDK,您可以执行属性级加密,以进一步对表中的数据实施精细访问控制。通过 Amazon DynamoDB,您可以构建符合严格的加密合规性和监管要求的安全敏感型应用程序。

加密密钥通过保护数据,防止未经授权访问底层存储,额外增加了一层数据保护。 您可以指定 Amazon DynamoDB 应使用 AWS 拥有的密钥(默认加密类型)、AWS 托管式密钥还是客户管理的密钥来加密用户数据。默认加密(即使用 AWS 拥有的 KMS 密钥加密)免费提供。

时间点恢复

时间点故障恢复(PITR)有助于保护 Amazon DynamoDB 表免遭意外写入或删除操作。PITR 提供了 Amazon DynamoDB 表数据连续备份功能,您可以将该表还原到任何时间点,最多到前 35 天内的第二个时间点。

PITR 不使用预置容量,也不会影响应用程序的性能或可用性。启用 PITR 或启动备份和还原操作非常简单,只需在 AWS 管理控制台中单击一下或调用一次 API 即可。

按需备份和还原

利用按需备份和还原,您可以创建 Amazon DynamoDB 表数据的完整备份以进行数据存档,这可帮助您满足企业和政府法规要求。无论表中包含的数据量是几 MB 还是几百 TB,您都能对表进行备份,并且不影响生产应用程序的性能或可用性。通过 AWS Backup 集成,您还可以跨账户和跨区域复制按需备份,为备份添加成本分配标签,以及将备份过渡到冷存储。

专用网络连接

Amazon DynamoDB 支持网关 Virtual Private Cloud(VPC)端点和接口 VPC 端点,以在 VPC 内或本地数据中心进行连接。您可以通过使用 AWS PrivateLink 启用的接口 VPC 端点配置从本地应用程序到 DynamoDB 的专用网络连接。这使客户能够简化与 DynamoDB 的专用连接并保持合规性。

成本效益

读/写容量模式

Amazon DynamoDB 为每个表提供按需和预置两种容量模式。

  •  对于不太容易预测的工作负载(您不确定是否会频繁使用它),按需容量模式可为您管理容量,您只需为所使用的内容付费。
  • 使用预置容量模式的表需要您设置读取和写入容量。如果您确信您会合理地利用您指定的预置容量,预置容量模式更加经济高效。 

按需模式

对于使用按需容量模式的表,Amazon DynamoDB 可以在工作负载上升或下降到以前达到过的任何流量级别时立即使您的工作负载适应。如果某个工作负载的流量达到一个新的峰值,Amazon DynamoDB 将快速调整以适应该工作负载。您可以同时对新表和现有表使用按需容量模式,并可以继续使用现有的 Amazon DynamoDB API 而不更改代码。

标准低频访问(Standard-IA)表类

对于不经常访问的数据,可以使用 Amazon DynamoDB Standard-IA 表类,该表类可以帮助将 Amazon DynamoDB 成本降低多达 60%。Standard-IA 表较低的存储成本专为长期存储不经常访问的数据而设计,例如应用程序日志、历史游戏数据、早期社交媒体帖子等。它具有与 Amazon DynamoDB Standard 表相同的可用性、持久性和性能,后者是大多数工作负载的默认选项,也是最具成本效益的选项。

自动扩缩以提高成本效益

对于使用预置容量的表,Amazon DynamoDB 通过监控您的应用程序的性能使用情况,根据您以前设置的容量提供吞吐量和存储的自动扩缩

  • 如果应用程序流量增长,Amazon DynamoDB 将增加吞吐量以适应负载。
  • 如果您的应用程序流量减少,Amazon DynamoDB 将缩减吞吐量,使您为未使用的容量支付更低的费用。

预留容量

与 Amazon DynamoDB Standard 表中单区域读写容量单元的预置容量相比,预留容量可让您选择预留一年期或三年期的数据库容量,以换取大幅折扣。如果您的应用程序具有可预测的读取和写入吞吐量,则可以考虑预留容量,与标准预配置容量费率相比,一年期最多可为您节省 54%,三年期最多可节省 77%。

免费套餐

Amazon DynamoDB 为任何寻求无风险体验 Amazon DynamoDB 功能的用户提供慷慨的免费套餐

与 AWS 服务的集成

选择 Amazon DynamoDB,您可以从与其他 AWS 服务的广泛集成中受益,例如使用 AWS Backup 进行数据保护。

利用 Amazon DynamoDB Accelerator 实现微秒级延迟

Amazon DynamoDB Accelerator(DAX)是与 Amazon DynamoDB 兼容的缓存服务,通过支持您使用完全托管的内存缓存来大规模地为您的表提供快速读取性能。借助 DAX,您的 Amazon DynamoDB 表可实现高达 10 倍的性能提升(读取时间从数毫秒缩短到数微秒),甚至在每秒处理的请求数达到数百万的情况下也是如此。了解有关 DAX 功能DAX 定价的更多信息。

从 Amazon Simple Storage Service(S3)批量导入/导出

从 S3 批量导入/导出无需编写代码即可将 Amazon DynamoDB 表从一个应用程序、账户或区域移动、转换和复制到另一个应用程序、账户或区域,从而帮助您从数据中获得更多价值。批量导入/导出不会使用表的读取或写入容量,因此您无需计划或预置额外容量。批量导入/导出过程由 Amazon DynamoDB 完全托管。

通过 S3 批量导入,您可以使用支持的格式(包括 CSV、Amazon DynamoDB JSON 和 Amazon Ion)导入任何规模的数据,从兆字节到太字节不等。 通过从 S3 进行批量导入,与使用预置容量的基于客户端的写入相比,客户最多可以节省 66% 的成本

通过批量导出到 S3,您可以从启用了时间点故障恢复(PITR)的表中导出数据,以每秒的粒度为过去 35 天内任一时间点进行导出。将数据从 Amazon DynamoDB 导出到 Amazon S3 后,您可以使用其他 AWS 服务(例如 Amazon Athena、Amazon SageMaker 等)来分析您的数据并提取可行的见解。

借助适用于 Amazon DynamoDB 的 Kinesis Data Streams 构建高级流应用程序

适用于 Amazon DynamoDB 的 Amazon Kinesis Data Streams 可捕获您的 Amazon DynamoDB 表中的项目级更改,以支持实时仪表板、生成指标并将数据传输到数据湖。Kinesis Data Streams 使您能够构建高级流式处理应用程序,如实时日志聚合、实时业务分析和 IoT 数据捕获。

通过 Kinesis Data Streams,您还可以使用 Amazon Kinesis Data Firehose 将 Amazon DynamoDB 数据自动传输到其他 AWS 服务,例如 Amazon S3、Amazon OpenSearch Service 和 Amazon Redshift。

利用触发器实现变更跟踪

Amazon DynamoDB 与 AWS Lambda 集成,可提供触发器。当检测到 Amazon DynamoDB 表中的项目级更改时,您可以使用触发器自动运行自定义函数。使用触发器,您可以构建事件驱动型应用程序,这些应用程序会对 Amazon DynamoDB 表中的数据修改做出反应。Lambda 函数可以执行您指定的任何操作,例如发送通知或启动工作流程。

使用 Amazon Cloudwatch 监控和诊断系统性能

为了轻松监控您的数据库性能,Amazon DynamoDB 与 Amazon Cloudwatch 集成,后者可以收集和处理原始数据库性能数据。您可以使用 Amazon CloudWatch 为您的 Amazon DynamoDB 数据库创建指标和警报的自定义视图和控制面板。默认情况下,此监控功能是免费提供的。您还可以创建根据指标性能自动发送给您的警报。

Amazon CloudWatch Contributor Insights 可帮助您快速确定谁或什么在影响您的数据库和应用程序性能。此功能便于在操作事件期间更快地隔离、诊断和修复问题。

常见问题

Amazon DynamoDB 有何用途?

Amazon DynamoDB 是一个 NoSQL 数据库,用于运行任何规模的高性能应用程序。当您的应用程序需要高读取/写入吞吐量、个位数性能和跨多个区域的无限可扩展性时,它是不二之选。如果您的应用程序需要横向扩展并能够缩减到零,Amazon DynamoDB 可提供全自动和完全托管的体验。

Amazon DynamoDB 有哪些优势?

Amazon DynamoDB 的独特优势包括,它是一个经过验证的完全托管、可缩减到零的无服务器数据库,可提供个位数毫秒的性能和高达 99.999% 的可用性。凭借其稳定的大规模性能,Amazon DynamoDB 还为要求最严苛的全球应用程序提供所需的内置安全性、持久性和可靠性。

由于其易用性和无限的可扩展性,Amazon DynamoDB 经常被用于新的现代应用程序和成熟的互联网规模应用程序,这些应用程序寻求稳定的快速性能和无限的可扩展性。

使用 Amazon DynamoDB 主要有哪些好处?

Amazon DynamoDB 是一个完全托管的无服务器 NoSQL 数据库,可提供无限的可扩展性、主动-主动数据复制以实现多区域弹性,并为要求最严苛的应用程序提供经过验证且一致的个位数毫秒级响应时间。Amazon DynamoDB 很容易上手,而且使用起来也很简单。

Amazon DynamoDB 是无服务器的吗?

是的,Amazon DynamoDB 是无服务器的。您无需管理服务器,因此无需执行容量预置和修补等基础设施管理任务。此外,Amazon DynamoDB 没有版本和升级,并且提供零停机维护服务。

Amazon DynamoDB 符合 ACID 吗?

是的,Amazon DynamoDB Transactions 在单个 AWS 账户和区域内的一个或多个表之间符合 ACID。因此,当构建需要作为单个逻辑业务操作一部分对多个项协调插入、删除或更新的应用程序时,您可以使用 Amazon DynamoDB。

Amazon DynamoDB 有只读副本吗?

Amazon DynamoDB 可以自动横向扩展以容纳任意数量的读取流量,因此不需要只读副本(通常是关系数据库概念)。

Amazon DynamoDB 会自动扩展吗?

是的,Amazon DynamoDB 会根据您的应用程序要求自动横向扩展。Amazon DynamoDB 的自动扩缩功能和可缩减到零的能力使其成为许多应用程序的理想之选。

Amazon DynamoDB 的速度有多快?

Amazon DynamoDB 的响应时间不到 10 毫秒,可以持续为要求最严苛的应用程序提供这种性能。举例来说,在 2022 年 Amazon Prime Day 活动上,Amazon DynamoDB 以个位数毫秒级性能在数万亿次 API 调用中每秒可靠地处理了 1.052 亿个请求。

如何设置 Amazon DynamoDB?

Amazon DynamoDB 专为开发人员打造,由于它是无服务器的,因此可以轻松使用我们的技术文档进行设置

网页图片
访问定价页面

浏览 Amazon DynamoDB 的定价选项。

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

立即享受 AWS Free Tier。 

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

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

登录