Amazon DynamoDB 经典2012年〜
提供毫秒级延迟的全托管 NoSQL 数据库
它能做什么
Amazon DynamoDB 是一款同时支持键值和文档模型的全托管 NoSQL 数据库。无论请求规模如何,都能在毫秒内返回响应,完全无需服务器预置或补丁管理。按需模式下按请求数完全按量计费。
使用场景
适用于移动应用和游戏的用户数据管理、电商购物车、IoT 设备数据存储、会话管理等需要低延迟和高吞吐量的工作负载。与 Lambda 结合的无服务器架构模式尤为常见。
日常类比
可以将其比作一个超高速的图书卡片系统。只需报出卡片编号 (分区键),就能从数百万张卡片中瞬间找到目标卡片。卡片格式自由,后续添加字段也没有问题。
什么是 DynamoDB
Amazon DynamoDB 是 AWS 提供的全托管 NoSQL 数据库服务。只需创建表并读写数据即可使用,无需服务器管理或容量规划。数据自动复制到 3 个可用区,实现 99.999% 的可用性。
键设计与数据模型
DynamoDB 表由分区键和可选的排序键组成。分区键决定数据的存储位置,排序键控制同一分区内数据的排列顺序。键设计直接影响性能,因此预先分析访问模式来确定键非常重要。使用二级索引 (GSI/LSI) 可以按不同键进行查询。
容量模式与定价
DynamoDB 有按需模式和预置模式两种计费方式。按需模式按请求计费,适合流量难以预测的工作负载。预置模式预先指定读写容量单位,在流量稳定时成本效率更高。启用 Auto Scaling 后,预置模式也能根据负载自动调整。 有关容量模式和定价的案例与活用方法,也可参阅 专业书籍 (Amazon)。
入门指南
在 DynamoDB 控制台点击「创建表」,指定表名和分区键即可创建表。可立即通过 AWS SDK 或 CLI 读写数据。启用 DynamoDB Streams 后,可以用 Lambda 函数实时捕获数据变更,构建事件驱动架构。
注意事项
- Partition key design directly impacts performance, so it is important to avoid hot partitions where access concentrates on specific keys
- On-demand mode is convenient but can be more expensive than provisioned mode when handling large volumes of requests
- The free tier includes 25 GB of storage and 250 million read/write requests per month, always free