Amazon DynamoDB
保证毫秒级延迟的全托管 NoSQL 数据库服务,可自动扩展以应对任何规模的流量
概述
Amazon DynamoDB 是 AWS 提供的全托管 NoSQL 数据库服务。无论数据量和请求量如何增长,都能保持一位数毫秒的响应延迟。支持键值和文档两种数据模型,通过自动分区实现几乎无限的扩展能力。内置加密、备份、时间点恢复和全球表等企业级功能。
分区键设计与热分区规避
DynamoDB 的性能和扩展性取决于分区键的设计。分区键决定数据在物理分区上的分布,如果特定的分区键值集中了大量访问,就会产生热分区导致限流。良好的分区键应该具有高基数(唯一值多)且访问均匀分布。例如用户 ID 作为分区键通常是好的选择,而日期或状态值则容易产生热点。对于写入密集型工作负载,可以使用写入分片(在分区键后附加随机后缀)来分散负载。
按需模式与预置模式的判断标准
DynamoDB 提供按需(On-Demand)和预置(Provisioned)两种容量模式。按需模式按实际请求数计费,无需容量规划,适合流量不可预测或有突发峰值的工作负载。预置模式需要预先设定读写容量单位(RCU/WCU),适合流量稳定可预测的工作负载,配合预留容量可节省最多 77% 的费用。判断标准:如果能准确预测流量模式且追求成本最优,选预置模式;如果流量波动大或处于新服务初期,选按需模式。两种模式可以每 24 小时切换一次。
DAX、TTL 和备份的运营优化
DAX(DynamoDB Accelerator)是专用的内存缓存,将读取延迟从毫秒降至微秒。适合读取密集且相同数据被反复访问的场景。TTL(Time to Live)可以自动删除过期数据,适用于会话数据、临时令牌等有生命周期的数据,无需额外费用。备份方面,按需备份可随时创建全表快照,时间点恢复(PITR)可恢复到最近 35 天内任意秒的状态。全球表(Global Tables)提供多区域主动-主动复制,实现跨区域的低延迟读写和灾难恢复。