亚马逊云科技 DynamoDB 是一种完全托管式、无服务器的 NoSQL 键值数据库,旨在运行任何规模的高性能应用程序。DynamoDB 提供内置安全性、连续备份、自动多区域复制、内存缓存和数据导入与导出工具。
DynamoDB 是一个键-值和文档数据库,利用水平扩展支持几乎任何大小的表。DynamoDB 可扩展到每天超过 10 万亿个请求,并且表具有每秒超过一千万个读写请求和 PB 级数据存储。
DynamoDB 支持键-值和文档数据结构。这使 DynamoDB 能够拥有灵活的架构,从而使每个行在任意时间点都能拥有任意数量的列。这使您可以在业务需求变化时轻松调整表,而不必像在关系数据库中那样重新定义表架构。
DynamoDB Accelerator (DAX) 是一个内存内缓存,通过支持您使用完全托管的内存中的缓存来大规模地为您的表提供快速读取性能。借助 DAX,您的 DynamoDB 表可实现高达 10 倍的性能提升(读取时间从数毫秒缩短到数微秒),甚至在每秒处理的请求数达到数百万的情况下也是如此。
DynamoDB 全局表将自动跨您选择的 AWS 区域复制您的数据,并自动扩展容量以适应您的工作负载。利用全局表,您的全球分布式应用程序可在选定区域本地访问数据,从而获得个位数毫秒级读写性能。
Amazon Kinesis Data Streams for DynamoDB 可以将项目级更改作为一个 Kinesis 数据流捕获到您的 DynamoDB 表中。此功能使您能够构建高级流式处理应用程序,如实时日志聚合、实时业务分析和 IoT 数据捕获。通过 Kinesis Data Streams,您还可以使用 Amazon Kinesis Data Firehose 将 DynamoDB 数据自动交付给其他 AWS 服务。
使用 DynamoDB 后,无需预置、修补或管理服务器,也不需要安装、维护或操作软件。DynamoDB 可自动扩展表来针对容量做出调整,并能在不进行任何管理的情况下保持性能。由于内置了可用性和容错能力,您无需为这些功能构建应用程序。
DynamoDB 为每个表提供按需和预置两种容量模式。对于不太容易预测的工作负载(您不确定是否会频繁使用它),按需容量模式可为您管理容量,您只需为所使用的内容付费。使用预置容量模式的表需要您设置读取和写入容量。如果您确信您会合理地利用您指定的预置容量,预置容量模式更加经济高效。
对于使用按需容量模式的表,DynamoDB 可以在工作负载上升或下降到以前达到过的任何流量级别时立即使您的工作负载适应。如果某个工作负载的流量达到一个新的峰值,DynamoDB 将快速调整以适应该工作负载。您可以同时对新表和现有表使用按需容量模式,并可以继续使用现有的 DynamoDB API 而不更改代码。
对于使用预置容量的表,DynamoDB 通过监控您的应用程序的性能使用情况,根据您以前设置的容量提供吞吐量和存储的自动扩展。如果应用程序流量增长,DynamoDB 将增加吞吐量以适应负载。如果您的应用程序流量减少,DynamoDB 将向下扩展,使您为未使用的容量支付更低的费用。
DynamoDB 与 AWS Lambda 集成,可提供触发器。当检测到 DynamoDB 表中的项目级更改时,您可以使用触发器自动运行自定义函数。利用触发器,您可以创建应对 DynamoDB 表中的数据修改的应用程序。Lambda 函数可以执行您指定的任何操作,例如发送通知或启动工作流程。
DynamoDB 是为任务关键型工作负载构建的,包括对适用于需要复杂业务逻辑的众多应用程序的原子性、一致性、隔离性和持久性(ACID)事务的支持。DynamoDB 可利用加密保护您的数据,持续备份您的数据以提供保护,并通过服务等级协议保障了可靠性。
DynamoDB 提供了对事务的本机服务器端支持,从而简化了开发人员对表内和表间的多个项目进行要么全有要么全无的协调式更改的体验。利用对事务的支持,开发人员可以将 DynamoDB 的规模、性能和企业收益扩展到更广泛的任务关键型工作负载。
默认情况下,DynamoDB 会对所有客户静态数据进行加密。静态加密通过使用在 AWS Key Management Service(AWS KMS)中存储的加密密钥提高数据的安全性。通过静态加密,您可以构建符合严格的加密合规性和法规要求的安全敏感型应用程序。使用 AWS 拥有的 KMS 密钥的默认加密是免费提供的。
时间点恢复 (PITR) 有助于保护 DynamoDB 表免遭意外写入或删除操作。PITR 提供了 DynamoDB 表数据的连续备份,您可以将该表还原到任何时间点,最多到前 35 天内的第二个时间点。只需在 AWS 管理控制台中单击一次或发出一次 API 调用,即可启用 PITR 或发起备份和还原操作。
利用按需备份和还原,您可以创建 DynamoDB 表数据的完整备份以进行数据存档,这可帮助您满足企业和政府法规要求。无论表中包含的数据量是几 MB 还是几百 TB,您都能对表进行备份,并且不影响生产应用程序的性能或可用性。