一、概览

MongoDB与HBase都是技术领先的非关系性数据库。MongoDB使用C++编写,HBase使用Java编写,HBase会受Java GC暂停的影响。MongoDB将数据存储为BSON(JSON的二进制形式表示)的文档。HBase专为 具有随机读取和写入访问模式Key-Value工作负载设计。

二、关键概念

许多关系数据库概念与MongoDB和HBase有相似之处。该表概述了每个系统中的一些常见概念。

RDBMS MongoDB Hbase
表 collection 表
行 Document 列族
没有类似的 分片 分区
GROUP BY Aggregation Pipeline MapReduce
多记录的ACID事务 多记录的ACID事务 没有

特性

开发者关注特性

MongoDB HBase
数据模型 Document 宽列
支持的数据类型 多种 数据转化为二进制
查询模型 多功能的查询 Key-Value
二级索引 支持 需要开发人员自己解决
聚合 支持 需要将数据移动到特定的数据分析框架中
文本搜索 支持 需要将数据转移到的特定的数据分析框架中
数据保证 支持 没有
构建响应、事件驱动应用 支持 没有
驱动支持 11种支持的驱动和30+社区支持 支持Java和Thrift
事务保证 支持简单的事务 单一行原子操作

管理者关注特性

MongoDB HBase
创建产品级集群需要的最少节点 3个:主节点和次节点 10个:主和次级HMaster,RegionServers、hdfs和zookeeper
推荐每个节点存储的最大数据量 没有限制 4TB
主节点失效恢复时间 2秒,数据可在次级节点读取 60秒,数据可在次级节点读取
性能维护 C++编写不会出现Java GC暂停 Java 编写,GC会出现暂停的问题
数据分区 支持hash、range、zone 仅支持hash
备份和恢复
Spark和Hadoop适应 支持 支持

参考

  1. https://www.mongodb.com/compare/mongodb-hbase