Amazon Web Services(AWS)是亚马逊公司(Amazon.com, Inc.)的云计算子公司,总部位于美国西雅图,2006 年 3 月正式对外推出公有云服务,是全球最早、规模最大的云基础设施与平台服务提供商之一

DynamoDB
公司介绍:
产品详情
AWS DynamoDB是一款全托管的NoSQL数据库服务,旨在提供高性能、高可用性、可弹性扩展的键值与文档数据存储能力,支持全球分布式部署,适用于各类需要低延迟、大规模数据处理的应用场景。其核心设计目标是消除数据库运维负担,同时满足企业级应用对一致性、安全性与可靠性的严格要求。
一、核心定位与整体架构
DynamoDB的核心理念是“全托管”与“全球分布式”。作为Serverless服务,它无需用户管理服务器、存储或数据库软件,自动完成扩缩容、备份、故障恢复等运维操作;同时通过全球表功能实现多区域数据复制,确保全球用户的低延迟访问与业务连续性。
- 全托管Serverless:用户仅需定义数据模型与访问模式,无需关注底层基础设施。自动处理硬件故障、软件更新、容量规划等任务,降低运维成本与技术门槛。
- 全球分布式:支持跨AWS区域的数据同步,提供毫秒级延迟的全球访问能力,满足全球化应用的业务需求。
- 高性能低延迟:基于分布式架构设计,单表可支持每秒数百万次读写操作,端到端延迟控制在毫秒级,适用于高并发场景。
- 弹性扩展:根据业务负载自动调整读写容量,支持按需模式与预置容量模式,平衡性能与成本。
DynamoDB的逻辑架构分为以下五层:
- 数据模型层:定义键值对与文档数据结构,支持分区键、排序键及二级索引的灵活配置。
- 存储引擎层:基于分布式存储系统,采用多副本机制确保数据 durability(99.999%可用性),支持自动分片与负载均衡。
- 全球复制层:实现跨区域数据同步,提供冲突解决策略(如最后写入获胜、自定义逻辑),保障多区域数据一致性。
- API与服务层:提供RESTful API、SDK及控制台访问方式,支持事务操作、流处理、备份恢复等核心功能。
- 安全与监控层:集成IAM权限控制、数据加密、审计追踪及CloudWatch监控告警能力,满足企业级安全合规要求。
二、核心功能模块详解
1. 数据模型与表结构
DynamoDB支持键值对与文档两种数据模型,允许存储半结构化数据(如JSON、DynamoDB JSON格式)。表结构设计是其性能优化的核心,主要包含以下元素:
- 主键设计:
- 分区键(Partition Key):用于数据分片的唯一标识,需选择高基数、均匀分布的字段(如用户ID、设备ID),确保负载均衡。
- 复合主键(Partition Key + Sort Key):在分区键基础上增加排序键,支持范围查询与排序操作(如订单表中,分区键为用户ID,排序键为订单时间)。
- 二级索引:
- 全局二级索引(GSI):跨分区的索引,支持基于非主键字段的查询,拥有独立的读写容量与存储,适用于多维度查询场景。
- 本地二级索引(LSI):与主表同分区的索引,排序键可自定义,吞吐量与主表共享,适用于同一分区内的多维度查询。
- 属性定义:支持字符串、数字、布尔、二进制、列表、映射等多种数据类型,允许动态添加属性无需预先定义表结构。
2. 全球表功能
全球表是DynamoDB实现多区域高可用的核心特性,支持自动跨区域数据复制,主要功能包括:
- 多区域部署:用户可选择多个AWS区域作为复制目标,数据自动同步,确保任一区域故障时业务无缝切换。
- 冲突解决策略:
- 最后写入获胜(LWW):基于时间戳自动保留最新写入的数据,适用于无复杂冲突场景。
- 自定义冲突解决:通过Lambda函数实现业务逻辑驱动的冲突处理,满足复杂业务需求。
- 低延迟访问:全球用户可访问最近的区域节点,实现毫秒级延迟的读写操作。
3. Serverless弹性扩缩容
DynamoDB的Serverless特性体现在自动扩缩容与按需计费模式,主要包括:
- 容量模式:
- 按需模式(On-Demand Mode):按实际读写操作量计费,无需预先配置容量,适用于负载波动较大的场景(如电商促销、突发流量)。
- 预置容量模式(Provisioned Mode):预先配置读写容量单元(RCU/WCU),支持自动扩缩容策略,适用于负载稳定的场景,成本更优。
- 自动扩缩容:根据设定的阈值(如容量利用率超过70%)自动调整预置容量,确保性能稳定同时避免资源浪费。
- 吞吐量优化:支持批量操作(BatchGetItem、BatchWriteItem)减少API调用次数,降低成本;支持压缩数据减少存储与传输开销。
4. 一致性与事务支持
DynamoDB提供灵活的一致性模型与ACID事务支持,满足不同业务场景的需求:
- 一致性模型:
- 最终一致性:默认模式,读写操作延迟低,适用于非实时数据场景(如用户历史订单查询)。
- 强一致性:通过设置ConsistentRead参数实现,确保读取到最新写入的数据,延迟略高,适用于实时数据场景(如用户余额查询)。
- 事务操作:
- 事务API(TransactGetItems、TransactWriteItems):支持最多25个操作、100KB数据的原子性操作,确保ACID特性(原子性、一致性、隔离性、持久性)。
- 应用场景:如电商订单创建时,同时扣减库存与生成订单记录,避免数据不一致。
5. 流处理与CDC
DynamoDB Streams是捕获表数据变化的功能,支持变更数据捕获(CDC)与实时处理:
- 流记录类型:捕获INSERT、UPDATE、DELETE操作的前后数据,支持三种视图模式(键值对、新旧图像、新图像、旧图像)。
- 集成能力:与AWS Lambda深度集成,实现实时数据处理(如同步到Elasticsearch做搜索、同步到Redshift做分析、触发业务逻辑)。
- 应用场景:实时监控用户行为、数据同步到数据仓库、触发通知系统等。
6. 备份与恢复
DynamoDB提供完善的备份与恢复机制,确保数据安全:
- 点-in-time恢复(PITR):自动保留最近35天的历史数据,支持任意时间点的数据恢复,无需手动创建备份。
- 按需备份:用户可手动创建全量备份,备份数据无过期时间,支持跨区域恢复。
- 恢复策略:恢复操作可指定目标表名、区域,支持恢复到原表或新表,不影响原表运行。
7. 安全与合规
DynamoDB满足企业级安全合规要求,提供多层次安全保障:
- IAM权限控制:通过IAM角色与策略实现细粒度访问控制,支持基于资源、操作、条件的权限配置。
- 数据加密:
- 静态加密:默认使用SSE-S3加密存储数据,支持SSE-KMS自定义密钥管理。
- 传输加密:所有API通信采用TLS加密,确保数据传输安全。
- 网络隔离:支持VPC端点(VPC Endpoint),允许在VPC内访问DynamoDB,避免公网暴露。
- 审计追踪:集成AWS CloudTrail,记录所有API操作日志,支持合规审计与故障排查。
- 合规认证:通过SOC、PCI DSS、HIPAA、GDPR等多项合规认证,适用于金融、医疗、政府等敏感行业。
8. 监控与运维
DynamoDB提供全面的监控与运维工具,帮助用户优化性能与成本:
- CloudWatch监控:内置关键指标(如ConsumedReadCapacityUnits、ConsumedWriteCapacityUnits、Latency、ThrottledRequests),支持自定义仪表盘与告警。
- DynamoDB Accelerator(DAX):全托管的内存缓存服务,支持微秒级读取延迟,适用于读密集型场景(如游戏排行榜、实时数据分析)。
- 性能优化工具:
- 查询分析器(Query Editor):可视化查询构建与执行,支持性能分析与优化建议。
- 容量计算器(Capacity Calculator):根据负载预测所需读写容量,帮助用户选择最优容量模式。
- 日志与调试:支持启用详细日志记录,帮助排查慢查询、容量不足等问题。
三、技术特点与优势
- 高性能低延迟:单表支持每秒数百万次读写操作,端到端延迟控制在10-20毫秒(强一致性)或1-5毫秒(最终一致性),满足高并发场景需求。
- 高可用性与Durability:数据存储在多AZ(可用区),自动复制3份,确保99.999%的可用性;全球表支持跨区域复制,进一步提升业务连续性。
- 弹性扩展:无需停机即可调整容量,按需模式自动适应负载变化,预置模式支持自动扩缩容,灵活应对业务增长。
- 全托管无运维:消除服务器管理、软件更新、备份恢复等运维负担,让用户专注于业务逻辑开发。
- 全球覆盖:支持全球20+ AWS区域部署,通过全球表实现多区域数据同步,满足全球化应用的低延迟访问需求。
- 与AWS生态深度集成:与Lambda、S3、Redshift、Elasticsearch、Kinesis等服务无缝集成,构建完整的数据处理 pipeline。
- 成本优化:按需模式按实际使用计费,预置模式支持自动扩缩容,批量操作与数据压缩降低API调用与存储成本。
四、典型应用场景
- 电商平台:存储用户购物车、订单信息、商品目录等数据,支持高并发读写与全球访问,如亚马逊电商平台自身使用DynamoDB处理海量订单。
- 游戏应用:存储玩家资料、游戏状态、排行榜数据,利用排序键实现快速排行榜查询,DAX加速读取性能,如《堡垒之夜》使用DynamoDB支持全球玩家数据存储。
- IoT设备数据:处理传感器产生的时序数据,支持高并发写入与实时流处理,如智能设备监控系统使用DynamoDB存储设备状态数据。
- 实时分析:通过DynamoDB Streams与Lambda集成,实现实时数据同步与分析,如用户行为分析系统实时处理点击流数据。
- 移动应用后端:存储用户资料、会话信息、推送通知数据,支持低延迟访问与全球部署,如社交应用使用DynamoDB存储用户关系数据。
- 广告技术:存储用户画像、广告投放数据,支持高并发查询与实时竞价,如广告平台使用DynamoDB处理广告请求数据。
- 金融服务:存储交易记录、用户账户信息,利用事务功能确保数据一致性,如支付系统使用DynamoDB处理转账交易。
五、最佳实践
- 单表设计原则:尽量将相关数据存储在一个表中,利用主键与二级索引实现多维度查询,减少表关联操作,提升性能。
- 分区键选择:选择高基数、均匀分布的字段作为分区键(如用户ID、设备ID),避免热点分区(某一分区负载过高)。
- 索引优化:合理使用GSI与LSI,避免过度创建索引(增加存储与写入成本);GSI选择合适的投影类型(KEYS_ONLY、INCLUDE、ALL),减少数据传输开销。
- 容量模式选择:负载波动大的场景使用按需模式,负载稳定的场景使用预置模式并启用自动扩缩容。
- 事务使用:控制事务大小(最多25个操作、100KB数据),避免大事务影响性能;仅在需要ACID特性的场景使用事务。
- 流处理优化:选择合适的流视图模式,避免不必要的数据传输;使用Lambda批量处理流记录,减少API调用次数。
- 成本优化:启用PITR替代手动备份,删除未使用的索引与表,使用批量操作减少API调用,利用DAX加速读密集型场景。
- 监控与调优:定期查看CloudWatch指标,优化慢查询,调整容量配置,确保性能与成本平衡。
总结
AWS DynamoDB是一款功能强大的全托管NoSQL数据库服务,通过高性能、弹性扩展、全球分布式等特性,满足各类企业级应用的需求。其Serverless设计消除了运维负担,让用户专注于业务创新;丰富的功能模块(如全球表、事务、流处理)支持复杂业务场景;与AWS生态的深度集成构建了完整的数据处理 pipeline。无论是电商、游戏、IoT还是金融服务,DynamoDB都能提供稳定、高效、安全的数据存储解决方案。
了解更多产品详情,请访问AWS DynamoDB官方网站:
登录后查看
https://aws.amazon.com/cn/dynamodb" rel="noopener noreferrer" target="_blank" style="color: rgb(230, 0, 0, null, null, null, null, null, 9, null, 0, 0, null, 0, null, 0, null, 0, 0, null, 0);">https://aws.amazon.com/cn/dynamodb


案例介绍
版权/专利


.png)
.png)










.png)

.png)
.png)
.png)
