- HBase从入门到实战
- 张文亮编著
- 735字
- 2024-12-24 10:45:55
1.5 使用HBase的时机
Hadoop是高性能、高稳定、可管理的大数据应用平台。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System,HDFS)。HDFS具有高容错性,被设计部署在低廉的硬件上,为应用程序访问数据提供了高吞吐量,因而适用于那些有着超大数据集的应用程序。HBase的存储是基于Hadoop的。HBase具有超强的扩展性和大吞吐量,采用的存储方式为Key-Value(键-值)方式,故而即使数据量增大,也几乎不会导致查询性能下降。当然,我们也需要注意HBase的缺点。数据分析是HBase的弱项,因为HBase不支持表关联,所以当我们想实现group by或者order by时,需要编写很多的代码来实现MapReduce。正因为如此,我们才需要更合理地使用HBase。下面是笔者根据自己的工作经验给出的一些使用HBase的建议,希望这些建议对于读者的技术选型有所助益。
1.数据量超千万,可以选择使用HBase
一般而言,如果单表的数据量只有百万级或者更少,则不建议使用HBase,而应该考虑关系数据库是否能够满足应用的需求;如果单表的数据量超过千万或者在十亿、百亿的数量级,并且伴有较高并发的存取应用,则可以考虑使用HBase,这样可以充分利用分布式存储系统的优势。
2.数据分析需求不多,可以选择使用HBase
虽然说HBase是一个面向列的数据库,但是它与真正的列式存储系统(比如Parquet、Kudu等)又有所区别,再加上自身存储架构的设计,使得HBase并不擅长做数据分析。所以如果业务需求是为了做数据分析,比如做报表,那么不建议使用HBase。
3.实时根据主键查询,可以选择使用HBase
HBase是一个键-值数据库,默认对RowKey做了索引优化,所以即使数据量非常庞大,根据RowKey查询的效率也会很高。但是,如果还需要根据其他条件进行查询,则不建议使用HBase。
4.多表连接查询,不建议使用HBase
HBase是NoSQL产品中的一种,它也具有NoSQL的缺点,就是不能进行连表查询等操作,也就是说,如果业务场景需要事务支持,或者存在复杂的关联查询,则不建议使用HBase。