一、DynamoDB 核心特性
- 全托管 NoSQL 数据库
- 完全由 AWS 管理,无需维护或打补丁,高可用(多可用区复制)。
- 支持事务操作,与 IAM 深度集成保障安全性。
- 高性能与可扩展性
- 毫秒级延迟,支持每秒数百万请求、万亿行数据、PB 级存储。
- 灵活的存储类型
- 提供标准表(Standard)和低频访问表(IA),优化成本。
二、容量模式(Capacity Modes)
| 模式 | 适用场景 | 特点 | 
|---|---|---|
| 预配置模式(Provisioned) | 流量稳定可预测的应用程序 | 需预先设置读写容量单位(RCU/WCU),按配置付费,支持手动调整吞吐量。 | 
| 按需模式(On-Demand) | 流量波动大或不可预测的应用程序 | 自动根据实际流量扩展吞吐量,按实际使用量付费,无需预配置。 | 
三、高级功能
- 全球表(Global Tables)
- 多主区域架构:支持跨多个 AWS 区域部署,每个区域均可读写。
- 自动数据同步:数据变更秒级复制到其他区域,实现低延迟全球访问。
- 备份与恢复
- 全托管备份:自动定期备份数据,保留策略可配置。
- 时间点恢复(PITR):可将表恢复到特定时间点(精确到秒级)。
- 与 S3 集成
- 数据导出到 S3:用于长期存储、数据分析或备份。
- 流处理 + Lambda:通过 DynamoDB Streams 捕获数据变更,触发 Lambda 函数实现实时处理(如 ETL、通知)。
四、流处理(Stream Processing)
- DynamoDB Streams
- 实时捕获数据变更(插入/更新/删除),触发 Lambda 函数。
- 典型场景:实时分析、跨表同步、事件驱动架构(如新用户欢迎邮件)、数据审计。
- 对比 Kinesis Data Streams
 | 特性 | DynamoDB Streams | Kinesis Data Streams | |------------------|----------------------------|--------------------------------| | 数据保留期 | 24 小时(固定) | 可配置(最长 365 天) | | 消费者数量 | 有限(通常与 Lambda 绑定) | 支持多消费者(KCL/KPL) | | 数据来源 | 仅 DynamoDB 表变更 | 任意数据源(日志、设备等) |
五、缓存加速(DynamoDB Accelerator, DAX)
- 核心作用:为 DynamoDB 提供毫秒级读缓存,降低数据库负载。
- 优势:
- 完全托管,无缝集成 DynamoDB,无需修改应用代码。
- 支持最终一致性数据缓存,自动管理缓存失效。
- 对比 ElastiCache
 | 场景 | DAX | ElastiCache(Redis/Memcached) | |------------------------|------------------------------------|----------------------------------------| | 适用数据库 | 仅 DynamoDB | 任意数据库(RDS、自定义等) | | 缓存内容 | DynamoDB 查询结果 | 任意数据(查询结果、会话状态等) | | 读写支持 | 仅加速读操作,写操作直通 DynamoDB | 支持读写 |
六、典型应用场景
- 实时应用
- Web/移动应用后端、游戏、IoT 设备数据处理。
- 无服务器架构
- 搭配 Lambda 实现事件驱动(如实时通知、ETL)。
- 全球化业务
- 通过 Global Tables 支持多地低延迟访问。
- 大数据分析
- 导出数据到 S3,使用 Athena/Redshift 进行分析。
总结
DynamoDB 是 AWS 为高并发、低延迟、全球扩展场景设计的托管 NoSQL 数据库。其核心优势在于: - 自动化运维:托管服务减轻运维负担。 - 弹性伸缩:按需模式应对流量波动。 - 生态集成:深度结合 Lambda、S3、Global Tables 等服务,支持实时流处理、全球部署和多级缓存(DAX)。 - 成本灵活:通过容量模式和存储类型(标准/IA)优化成本。