文档数据库的基本概念与 AWS 服务选择 - DocumentDB 与 DynamoDB 的对比

解说文档数据库的基本概念和 AWS 的选择方案。对比 Amazon DocumentDB 和 DynamoDB 的特性,介绍根据工作负载特性选择最佳服务的方法。

文档数据库的基本概念与 AWS 服务选择

文档数据库是为存储和检索 JSON 或 BSON 格式灵活数据结构而设计的 NoSQL 数据库。无需像关系数据库那样事先严格定义 Schema,可随应用程序的演进灵活变更数据结构。AWS 提供 Amazon DocumentDB(MongoDB 兼容)和 DynamoDB 两种文档数据库服务,各有不同的架构和最佳用例。

Amazon DocumentDB 的特性

Amazon DocumentDB 是兼容 MongoDB 3.6、4.0、5.0 的托管数据库服务。存储自动扩展至最大 128 TiB,在 3 个可用区保持 6 个副本,实现高持久性和可用性。可添加最多 15 个只读副本进行读取扩展,故障转移通常在 30 秒内完成。聚合管道、文本索引、地理空间索引等丰富的查询功能适合需要复杂查询模式的工作负载。

DynamoDB 的文档模型与用例

DynamoDB 在文档型数据存储方面也表现出色。每个项目可拥有最大 400 KB 的嵌套 JSON 结构,可自由组合 Map 类型和 List 类型属性来表达文档。使用 PartiQL(SQL 兼容查询语言)可查询嵌套文档的特定属性。DynamoDB 的优势在于无服务器架构带来的无限扩展性和个位数毫秒的一致延迟。

DocumentDB 与 DynamoDB 的选择

DocumentDB 和 DynamoDB 都可处理文档数据,但最佳用例不同。DocumentDB 适合需要复杂查询模式的场景,如即席查询、聚合管道、文本搜索、地理空间查询等,可直接利用 MongoDB 丰富的查询功能。DynamoDB 适合需要可预测低延迟和无限扩展性的场景,如高流量 Web 应用的会话管理、游戏排行榜、IoT 设备数据等。

DocumentDB 与 DynamoDB 的费用对比

DocumentDB 的 db.r6g.large 月费约 199 美元,存储每 GB 月费约 0.10 美元。DynamoDB 按需模式读取每 100 万单位约 0.25 美元,写入每 100 万单位约 1.25 美元。DynamoDB 的 25 GB 免费存储和按需计费适合流量波动大的工作负载。DocumentDB 适合稳定的查询密集型工作负载。

总结 - 文档数据库策略的优化

DynamoDB 提供无服务器的可扩展性和一致的低延迟,与 Lambda 的原生集成使事件驱动架构的构建变得容易。根据工作负载特性选择两种服务,可同时实现灵活的数据建模和高性能。文档数据库的选择应基于查询模式的复杂度、扩展需求和运维模型综合判断。