一、概览

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