Amazon DynamoDB 功能

为什么选择 DynamoDB?

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

由于内置了可用性、持久性和容错能力,并且无法关闭,因此无需为这些功能构建应用程序。

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

要了解新的特性和功能,请访问 DynamoDB“新增功能”公告

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

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

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

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

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

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

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

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

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

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

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

安全性与可靠性

DynamoDB 使用 AWS Identity and Access Management(IAM)来验证和授权对资源的访问。您可以指定 IAM 策略、基于资源的策略,使用策略中的标签定义基于属性的访问控制(ABAC),并指定允许细粒度访问的条件,根据身份将读取或写入访问权限限制为表中的特定项目和属性。

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

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

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

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

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

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

成本效益

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

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

对于使用按需容量模式的表,DynamoDB 可以在工作负载上升或下降到以前达到过的任何流量级别时立即使您的工作负载适应。如果某个工作负载的流量达到一个新的峰值,DynamoDB 将快速调整以适应该工作负载。您也可以选择为单个按需表和相关的二级索引配置最大读取或写入(或两者)吞吐量,从而轻松平衡成本和性能。您可以同时对新表和现有表使用按需容量模式,并可以继续使用现有的 DynamoDB API 而不更改代码。

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

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

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

与 AWS 服务的集成

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

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

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

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

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

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

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

常见问题

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

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

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