AWS 专用数据库策略 - 15 种以上专业数据库展现的工作负载优化思想

将 AWS 提供的 15 种以上专用数据库服务的设计思想与 Azure Cosmos DB 的统一型方案及 GCP 的 Cloud Spanner/Bigtable 进行比较,解析按工作负载选择最优数据库的优势。

「万能数据库」并不存在

数据库领域长期存在一个争论:是用一个通用数据库应对所有工作负载,还是按工作负载使用专门优化的数据库。AWS 明确站在后者一方。按关系型、键值、文档、图、时序、账本、内存、宽列等数据模型分别提供专业的托管服务。这一设计思想的根基在于避免使用不匹配工作负载特性的数据库所导致的性能下降、运维复杂化和成本增加。AWS 的方案不是在通用数据库上妥协,而是提供一个可以为每个目的选择最优引擎的环境。

AWS 数据库产品组合全景

AWS 的数据库服务超过 15 种。关系型领域中 RDS 支持 MySQL、PostgreSQL、MariaDB、Oracle、SQL Server,Aurora 以 MySQL/PostgreSQL 兼容实现最高 5 倍的性能提升。NoSQL 领域中 DynamoDB 作为保证个位数毫秒延迟的键值存储占据核心地位,DocumentDB 提供 MongoDB 兼容的文档数据库。此外 Neptune 是图数据库,Timestream 是时序数据库,QLDB 是账本数据库,Keyspaces 是 Apache Cassandra 兼容的宽列存储。MemoryDB 是具备 Redis 兼容持久性的内存数据库,ElastiCache 专注于缓存层。由于各服务由独立团队开发运维,对各数据模型的优化深度远超一般水平。

与 Azure Cosmos DB 统一型方案的比较

Azure 采用 Cosmos DB 这一单一服务支持多种数据模型的统一型方案。Cosmos DB 提供文档、键值、图、宽列各 API,并将全球分布和多区域写入作为标准功能。统一型的优势很明确:学习成本低,运维对象只有一个服务,管理得以简化。但统一型存在结构性权衡。图查询优化不及 Neptune 这样的图专用引擎,键值访问的延迟优化也没有 DynamoDB 的 DAX(DynamoDB Accelerator)这样的专用缓存层。Cosmos DB 基于 RU(Request Unit)的计费模型在某些工作负载下难以预测,可能导致成本管理复杂化。

与 GCP 数据库策略的比较

GCP 提供 Cloud SQL、Cloud Spanner、Bigtable、Firestore、Memorystore 等数据库服务。其中 Cloud Spanner 作为全球分布式关系数据库在技术上卓越,能在保持强一致性的同时水平扩展,这是其他厂商没有的独特优势。但 GCP 的数据库产品组合与 AWS 相比选择有限。没有对应账本数据库的服务,时序数据库也需要用 Bigtable 替代。图数据库方面也没有专用托管服务,需要在 Compute Engine 上自行搭建 Neo4j 等。虽然承认 Spanner 的技术优势,但在应对工作负载多样性的产品组合广度上 AWS 明显领先。

专用型带来的实际优势

专用数据库的最大优势是针对工作负载特性的性能优化。DynamoDB 通过分区键设计使读写吞吐量可预测,Timestream 拥有专为时序数据压缩和聚合查询优化的存储引擎。Neptune 原生支持 Property Graph 和 RDF 两种图模型,优化图遍历的查询执行计划。运维方面也有优势。各服务独立运行,某个数据库的故障不会波及其他数据库。扩缩容策略可按工作负载独立设置,成本分配也很清晰。与微服务架构的亲和性也很高,可以自然实现各服务拥有自己数据存储的 Polyglot Persistence 模式。

数据库选型实践指南

面对 AWS 丰富的数据库产品组合感到「该选哪个」是很自然的。选型的基本原则是从数据模型和访问模式逆向推导。需要事务处理选 Aurora,低延迟键值访问选 DynamoDB,以关系探索为主选 Neptune,IoT 传感器数据的积累和聚合选 Timestream。在多种数据模型混合的系统中,推荐不强行统一到一个数据库,而是为每个工作负载组合最优服务的设计。关于数据库架构的设计模式,相关书籍 (Amazon) 也可供参考。

总结

AWS 的专用数据库策略基于明确的设计思想:抛弃「万能数据库」的幻想,为每种工作负载提供优化的引擎。Azure Cosmos DB 的统一型方案虽有管理简化的优势,但在各数据模型的优化深度上不及专业服务。GCP 的 Cloud Spanner 作为全球分布式关系数据库技术上优秀,但产品组合广度不及 AWS。数据库选型应从数据模型和访问模式逆向推导,选择最适合工作负载的服务。拥有 15 种以上专业数据库的 AWS,是提供这种选择自由最广泛的平台。