AWS DynamoDB 是一种高性能 NoSQL 数据库服务,旨在作为键值存储。作为一项完全托管的无服务器服务,DynamoDB 为在云中存储和查询数据提供了快速、灵活且经济高效的解决方案。在这篇博文中,我详细介绍了 DynamoDB 的主要功能、设计模式和最佳实践。
什么是NoSQL?
NoSQL 代表“Not Only SQL”或“Non-SQL”,指的是一大类不同于经典关系数据库的数据库管理系统。 NoSQL 数据库旨在满足需要处理大量非结构化或半结构化数据(例如 Web 应用程序、社交媒体、大数据和其他场景中的数据)的现代应用程序的需求。
DynamoDB – 简介
DynamoDB 是一种基于 NoSQL 原则的非关系型键值存储。作为AWS云中的完全托管服务,该数据库不需要手动服务器管理,使开发人员能够专注于应用程序开发而不是底层基础设施。
DynamoDB 提供了创建全球分布式数据库的能力。该架构使得跨 喀麦隆 whatsapp 数据 不同 AWS 区域管理数据成为可能,从而确保高弹性和可用性。这会将查询性能降低到毫秒级。通过使用 DAX 缓存扩展,甚至可以实现微秒范围内的延迟。此外,DynamoDB 还支持将备份和数据重置到特定时间点(时间点恢复 - PITTR)。这对于保护数据免遭意外丢失非常重要。 DynamoDB 提供用于执行 CRUD(创建、读取、更新、删除)操作的 API。事务还可以按照 ACID 原则(原子性、一致性、隔离性、持久性)跨多个表执行,但不使用联接。
构建 DynamoDB
AWS DynamoDB 结构的特点是层次结构清晰,其中表充当顶级实体。与关系数据库不同,表之间没有严格的关系。每个表代表一个独特且独立的实体,允许灵活的数据建模。
性能控制发生在表级别,这意味着开发人员有机会单独优化每个表的性能,而不会影响数据库中的其他表。数据或项目以 DynamoDB 的特殊 JSON 格式存储,这不仅可以实现高效存储,还可以快速检索。
该结构的一个关键元素是主键,它是强制性的,而架构的其余部分则保持灵活。主键可以是简单的(只有一个属性)或复合的(两个属性:分区键和排序键)。这种灵活性也适用于表中的其他可选属性。
下图以计算机游戏数据为例展示了表格的结构。这里的主键由分区键(玩家 ID)和排序键(游戏 ID)组成。各个属性并非适用于每个条目,因此非常灵活。