Auto-sync: 2026-04-28 16:03
This commit is contained in:
@@ -1,70 +1,54 @@
|
||||
---
|
||||
title: "Purpose-Built Databases"
|
||||
type: concept
|
||||
tags:
|
||||
- AWS
|
||||
- Database
|
||||
- Architecture
|
||||
- Cloud-Native
|
||||
sources:
|
||||
- ctp-topic-51-architecting-with-aws-purpose-built-databases
|
||||
last_updated: 2026-04-23
|
||||
---
|
||||
|
||||
## Definition
|
||||
专用数据库(Purpose-Built Databases)是一种数据库选型原则——根据应用的数据模型、访问模式和性能需求,选择最适合该用例的专用数据库类型,而非用单一数据库解决所有问题。
|
||||
|
||||
## Core Principle
|
||||
> "We need to start thinking of the right purpose-built database for the right application." — Femi George, AWS Database Sales Specialist
|
||||
|
||||
核心理念:**从用例出发,选择最佳工具,避免一刀切(One-Size-Fits-All)**。
|
||||
|
||||
## AWS Database Categories
|
||||
|
||||
| 类别 | AWS 产品 | 适用场景 |
|
||||
|------|---------|---------|
|
||||
| 关系型 | RDS, Aurora | 固定 schema、ACID 事务、复杂关联查询 |
|
||||
| 键值 | DynamoDB | 高吞吐量、简单键值访问、无 schema 约束 |
|
||||
| 文档 | DocumentDB | 半结构化 JSON、灵活 schema、嵌套查询 |
|
||||
| 宽列 | Keyspaces | 大规模写入、Cassandra 兼容工作负载 |
|
||||
| 内存缓存 | ElastiCache | 微秒级延迟、高频读取、会话存储 |
|
||||
| 图数据库 | Neptune | 高度互连数据、欺诈检测、推荐引擎 |
|
||||
| 时序数据库 | Timestream | IoT 遥测、监控指标、时间序列分析 |
|
||||
| 账本数据库 | QLDB | 不可变事务日志、审计追踪 |
|
||||
|
||||
## Selection Criteria
|
||||
选择专用数据库时应考虑:
|
||||
1. **应用规模**:用户数量、请求量、数据量
|
||||
2. **访问模式**:读密集 vs 写密集、点查 vs 范围查询
|
||||
3. **数据模型**:结构化 vs 半结构化、关系复杂度
|
||||
4. **性能需求**:延迟、吞吐量、可用性
|
||||
5. **运维成本**:托管 vs 自管理、团队技能
|
||||
|
||||
## Multi-Database Architecture
|
||||
现代应用常采用多数据库混合架构:
|
||||
|
||||
**Duolingo 案例**(来源:[[ctp-topic-51-purpose-built-databases]]):
|
||||
- **DynamoDB**:存储个性化学习进度数据(键值访问)
|
||||
- **ElastiCache**:缓存高频词/短语(内存缓存)
|
||||
- **Aurora**:处理事务性数据(关系型)
|
||||
|
||||
**Netflix 案例**(来源:[[ctp-topic-51-purpose-built-databases]]):
|
||||
- **DynamoDB**:高弹性、低延迟 JSON 文档访问
|
||||
|
||||
## Aliases
|
||||
- Purpose-Built Databases
|
||||
- 专用数据库
|
||||
- 专用数据库选型
|
||||
- Database Polyglot
|
||||
- Polyglot Persistence
|
||||
|
||||
## Related Concepts
|
||||
- [[Multi-Database-Architecture]]:多数据库混合架构模式
|
||||
- [[Amazon-DynamoDB]]:AWS 专用键值数据库
|
||||
- [[Amazon-Aurora]]:云原生关系型数据库
|
||||
- [[Amazon-Neptune]]:AWS 图数据库
|
||||
- [[Amazon-Timestream]]:AWS 时序数据库
|
||||
- [[Amazon-Keyspaces]]:AWS 宽列数据库
|
||||
- [[Amazon-DocumentDB]]:AWS 文档数据库
|
||||
- [[Amazon-ElastiCache]]:AWS 内存缓存数据库
|
||||
- [[DBA-Role-Evolution]]:云时代数据库架构师角色的转变
|
||||
---
|
||||
title: "Purpose-Built Databases"
|
||||
type: concept
|
||||
tags:
|
||||
- AWS
|
||||
- Database
|
||||
- Architecture
|
||||
- Multi-Model
|
||||
sources:
|
||||
- ctp-topic-51-architecting-with-aws-purpose-built-databases
|
||||
last_updated: 2026-04-28
|
||||
---
|
||||
|
||||
## Overview
|
||||
专用数据库(Purpose-Built Databases)是一种架构理念:针对不同的数据模型、访问模式和性能需求,选择专门优化的数据库,而非用单一通用数据库解决所有问题。
|
||||
|
||||
## Core Principle
|
||||
> "为正确的应用选择正确的专用数据库" — Femi George, AWS Database Sales Specialist
|
||||
|
||||
## AWS Database Categories
|
||||
|
||||
| 类别 | AWS 服务 | 适用场景 |
|
||||
|------|----------|----------|
|
||||
| 关系型 | RDS, Aurora | 固定 schema,引用完整性,ACID 事务 |
|
||||
| 键值 | DynamoDB | 高并发,任意规模,低延迟 |
|
||||
| 文档 | DocumentDB (MongoDB兼容) | 灵活 schema,嵌套 JSON |
|
||||
| 宽列 | Keyspaces (Cassandra兼容) | 大规模写入,结构化/半结构化 |
|
||||
| 内存缓存 | ElastiCache (Redis/Memcached) | 毫秒级响应,会话/排行榜 |
|
||||
| 图数据库 | Neptune | 复杂关系,欺诈检测,推荐 |
|
||||
| 时序数据库 | Timestream | IoT/监控,高吞吐量时序数据 |
|
||||
| 账本数据库 | QLDB | 不可变事务记录,审计日志 |
|
||||
|
||||
## Selection Criteria
|
||||
选择专用数据库时需考虑:
|
||||
- **应用规模**:用户量、数据量、请求量
|
||||
- **访问模式**:读写比例、查询复杂度、延迟要求
|
||||
- **数据模型**:结构化/半结构化/非结构化
|
||||
- **一致性需求**:强一致性 vs 最终一致性
|
||||
- **运维能力**:团队数据库管理能力
|
||||
- **成本模型**:按查询/存储/实例计费
|
||||
|
||||
## Why Not One-Size-Fits-All?
|
||||
- 传统单一关系型数据库在所有场景下存在性能瓶颈
|
||||
- NoSQL 牺牲强一致性换取扩展性和性能
|
||||
- 不同数据模型(文档/图/时序)有最优专用引擎
|
||||
- 现代微服务架构天然支持多数据库混用
|
||||
|
||||
## Connections
|
||||
- [[Multi-Database-Architecture]]:专用数据库理念的直接实践形式
|
||||
- [[Amazon-Aurora]] / [[Amazon-DynamoDB]] / [[Amazon-ElastiCache]] 等:AWS 专用数据库品类中的具体产品
|
||||
- [[DBA-Role-Evolution]]:专用数据库多样化增加了 DBA 的选型职责
|
||||
|
||||
## Referenced In
|
||||
- [[ctp-topic-51-architecting-with-aws-purpose-built-databases]]
|
||||
|
||||
Reference in New Issue
Block a user