Cassandra / HBase / 文档 / 键值横评
目 录
[二、Cassandra 与 HBase](#二、Cassandra 与 HBase)
[2.1 核心差异](#2.1 核心差异)
[2.2 选型结论](#2.2 选型结论)
[3.1 差异](#3.1 差异)
[3.2 选型结论](#3.2 选型结论)
[四、列族与键值 / 时序](#四、列族与键值 / 时序)
[4.1 与键值(Redis)](#4.1 与键值(Redis))
[4.2 与时序库](#4.2 与时序库)
[5.1 选择逻辑](#5.1 选择逻辑)
一、导读
前四讲完成了列族数据库从认知到部署的闭环。选型阶段需要回答:同为列族的 Cassandra 与 HBase 如何取舍,列族与文档型(MongoDB)、键值(Redis)的边界在哪。本讲把这些方案放入同一坐标系横向对比。
二、Cassandra 与 HBase
2.1 核心差异
|------------|-------------------|-------------------------|
| 维度 | Cassandra | HBase |
| 架构 | 对等无中心 | 主从 + ZooKeeper |
| 一致性 | 最终一致,可调(AP) | 行级强一致(CP) |
| 查询 | CQL(类 SQL) | HBase API / Phoenix SQL |
| 部署依赖 | 独立,自带副本 | 依赖 HDFS + ZooKeeper |
| 数据分布 | 一致性哈希 | 按行键范围 Region 分片 |
| 多数据中心 | 原生支持跨机房复制 | 较弱,依赖上层 |
2.2 选型结论
高并发写入、需无单点与多机房容灾、可容忍短暂不一致 → Cassandra;需要行级强一致、深度绑定 Hadoop / HDFS 生态、单行事务 → HBase。两者都面向海量写入,取舍在于一致性强度与生态耦合。
三、列族与文档型(MongoDB)
3.1 差异
|------------|-----------------------|---------------------|
| 维度 | 列族(Cassandra) | 文档(MongoDB) |
| 数据模型 | 宽表 / 键值,按列组织 | BSON 文档,可嵌套 |
| schema | 表结构较固定 | 灵活,文档字段可变 |
| 查询 | CQL,能力有限 | Query API + 聚合管道丰富 |
| 二级索引 | 有限(需维护) | 支持完善 |
| 事务 | 轻量级事务(LWT) | 多文档 ACID 事务 |
| 写入 | 极高高吞吐,时序友好 | 高,文档模型 |
3.2 选型结论
海量时序 / 日志 / IoT 高吞吐写入、线性扩展 → 列族;需要灵活 schema、丰富查询、二级索引与多文档事务的通用业务数据 → MongoDB。列族胜在写入扩展,文档胜在建模与查询灵活。
四、列族与键值 / 时序
4.1 与键值(Redis)
Redis 内存存储、微秒级读写、数据结构丰富,适合缓存 / 会话 / 计数;Cassandra 面向持久化海量数据,写入可横向扩展。二者常互补:Redis 做热数据缓存,Cassandra 做持久层。
4.2 与时序库
|------------|-----------------------|------------------------|
| 维度 | 列族(Cassandra) | 时序(InfluxDB 等) |
| 专长 | 通用海量写入 + 查询 | 时序写入、时间范围查询 |
| 时间序列优化 | 一般(需设计) | 原生时间分片、聚合下推 |
| 聚合 / 降采样 | 弱 | 强 |
| 适用 | 日志、宽表业务 | 监控指标、传感器、金融行情 |
纯时序监控场景,时序库的时间分片与聚合更省心;列族更适合「带列族结构的通用海量写入」业务。
五、综合对比与选择建议
|------------|------------|-------------|----------------|-------------------|
| 方案 | 模型 | 一致性 | 部署 | 适用场景 |
| Cassandra | 宽表 / 键值 | 最终一致,可调 | 对等,独立 | 海量写入、IoT、日志、多机房 |
| HBase | 宽表 | 行级强一致 | 主从 + HDFS + ZK | Hadoop 生态、强一致海量存储 |
| MongoDB | 文档 | 可调(支持事务) | 副本集 + 分片 | 灵活建模、丰富查询的通用业务 |
| Redis | 键值 | 强一致(单节点) | 内存 | 缓存、会话、计数器 |
5.1 选择逻辑
默认海量写入 + 无单点 → Cassandra;Hadoop 生态 + 强一致 → HBase;灵活建模与丰富查询 → MongoDB;极快内存访问 → Redis。选型核心仍是对齐数据模型、一致性要求与运维能力。
六、本篇小结
本讲对比了列族与相邻方案:Cassandra 以对等架构和可调一致性强于海量写入与多机房,HBase 以行级强一致融入 Hadoop,MongoDB 以灵活建模与丰富查询见长,Redis 以内存速度担纲缓存。选型不是比单一指标,而是匹配场景。