Hbase数据库介绍、优势与劣势、应用场景与选型依据

信息分类: 数据库 发布时间: 2022-09-07 15:10:15 访问量: 613

没有最好的数据库,只有最适合你的应用场景的数据库! 本篇文章来看看Hbase(重量级数据库)


一:Hbase简介

HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。

就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。

HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。

另一个不同的是HBase基于列的而不是基于行的模式。


HBase是当年谷歌大数据三驾马车之一的BigTable方案的实现,很多大数据项目,都可见HBase的身影。因此绝对算得上是大数据时代最有代表性的技术之一了。

总结:高可靠性、高性能、面向列、可伸缩的分布式存储系统。


二:Hbase的优势

HBase最大的优势就是对海量数据的支持,以及极强的横向(存储容量)扩展能力。和Redis类似,HBase也需要为每一行数据定义一个key,之后所有的查询都依赖这个key进行。但是不同的地方在于,HBase中的一行数据还可以有非常多的列项(类似MongoDB字段),数据会按照列进行分组和存储,同一列的数据存储在同一个地方,这也是HBase被称为列式存储数据库的原因。其实从本质上来说,HBase相当于是把逻辑上的一张大表按照列族分拆成若干张小表分别进行存储,不仅是列,数据的行数到达一定数量后表也会再被拆分。因此,HBase能够把巨大的表分布到很多台机器上,从而容纳规模近乎无限的数据。同时,对HBase进行横向扩展也非常方便,你基本只需要添加新的机器,而不用对数据做任何改动,就可以实现数据库容量线性的增长,这在其他SQL数据库中是难以做到的(尽管其他数据库也有诸如MongoDB分片集群之类的功能帮助你进行数据规模横向扩展,但是无论是在实施的难度上还是在对数据的影响方面这些都无法跟HBase相提并论)

Hbase存储的量可以达到百亿甚至以上,比mongodb的存储量大多了。


三:Hbase的劣势

HBase的列式存储特性带来了海量数据规模的支持和极强的扩展能力,但是也给数据的读取带来很大的局限。由于只有同一列族的数据才会被存放在一起,而且所有的查询都必须要依赖Key,这就使得很多复杂查询难以进行。例如,如果你的查询条件涉及多个列项,或者你无法获取要查询数据的key,那么查询效率将会非常低下。


四:Hbase的应用场景

hbase非常适合数据量极大,查询条件简单,列与列之间联系不大的轻查询应用场景。

最典型的比如搜索引擎所使用的网页数据库。

HBase不适合数据结构复杂,且需要复杂查询的应用场景。另外值得一提的是,HBase是很重的一款产品,需要依赖很多的Hadoop组件,因此如果你的数据规模不大,那就完全没必要杀鸡用牛刀,MongoDB这类产品完全可以更好的满足你的需求。


如有转载,请注明出处!《Hbase数据库介绍、优势与劣势、应用场景与选型依据》的原文地址:http://www.xiao6.net/post/246.html