NoSQL databases
NoSQL 类型与场景
NoSQL 是一个大类,指不以 SQL 作为主要数据访问语言的 database,也常被称为 non-relational database。与 relational database 不同,NoSQL 数据不一定遵循预定义 schema。NoSQL 通常遵循 BASE consistency model。
常见 NoSQL 类型:
Document
Document database(文档型)以 documents 存储数据,是通用型数据库,适用于 transactional 与 analytical 应用。
Advantages
- 直观、灵活
- 易于 horizontal scaling
- Schemaless
Disadvantages
- Schemaless(缺乏强约束)
- Non-relational
Examples
Key-value
Key-value database 是最简单的 NoSQL 类型之一,用 key-value pairs 存数据,也叫 key-value store。
Advantages
- 简单且 performant
- 高 traffic 场景易扩展
- 适合 session management
- lookup 速度快
Disadvantages
- 仅支持基础 CRUD
- value 不能过滤
- 缺少 indexing 与 scanning 能力
- 不适合复杂 query
Examples
Graph
Graph database 使用 graph 结构(nodes、edges、properties)表达与存储数据,适合语义查询。
Graph 通过 edges 连接 nodes,表示关系,很多场景可以一次 query 直接拿到关联数据。
Advantages
- Query 速度快
- 灵活、agile
- 数据关系表达清晰
Disadvantages
- 复杂度高
- 缺少统一 query 标准
Use cases
- Fraud detection
- Recommendation engines
- Social networks
- Network mapping
Examples
Time series
Time-series database 针对 time-stamped 数据做优化。
Advantages
- 插入与读取速度快
- 存储效率高
Use cases
- IoT data
- Metrics analysis
- Application monitoring
- 金融趋势分析
Examples
Wide column
Wide column database(wide column store)是 schema-agnostic,把数据存到 column families,而不是传统 rows/columns。
Advantages
- 高 scalability,可处理 PB 级数据
- 适合 real-time big data 应用
Disadvantages
- 成本较高
- 写入时间增加
Use cases
- Business analytics
- Attribute-based data storage
Examples
Multi-model
Multi-model database 把不同模型(relational、graph、key-value、document 等)集成到单一 backend,使其支持多种 data types、indexes 与 queries。
Advantages
- 灵活
- 适合复杂项目
- 数据一致性好
Disadvantages
- 复杂
- 生态相对不成熟
Examples