HBase从入门到实战
上QQ阅读APP看书,第一时间看更新

1.4 HBase与关系数据库的区别

本节从下面6点介绍HBase和关系数据库的区别。

(1)数据类型:关系数据库采用关系模型,具有丰富的数据类型和存储方式;HBase采用更加简单的数据模型,它把数据存储为未经解释的字符串。

(2)数据操作:关系数据库中包含丰富的操作,其中包含复杂的多表连接等;HBase操作不存在复杂的表与表之间的关系,只有简单的插入、查询、删除、清空等,因为HBase在设计上就避免了复杂的表和表之间的关系。

(3)存储模式:关系数据库是基于行模式存储的;HBase是基于列模式存储的,每个列族都由几个文件保存,不同列族的文件是分离的。

(4)数据索引:关系数据库通常可以针对不同列构建复杂的多个索引,以提高数据的访问性能;HBase只有一个索引,通过巧妙的RowKey设计,HBase中的所有访问方法,要么通过RowKey访问,要么通过RowKey扫描,使得整个系统的运行速度不会减慢。

(5)数据维护:在关系数据库中,更新操作会用新的当前值来替换记录中原来的旧值,旧值被覆盖后就不存在了;在HBase中执行更新操作时,并不会删除旧值,而是生成一个新值,旧值仍然保留。

(6)可伸缩性:关系数据库很难实现横向扩展,纵向扩展的空间也比较有限;HBase是为了实现灵活的水平扩展而开发的,所以能够通过在集群中增加或者减少硬件数量的方式轻松实现性能的伸缩。