标签:
HBase是Google Big Table的一个开源实现,关于其基础和架构网上很多,这里就不一一说明,转一篇,这里主要谈谈我个人对Hbase的看法
1、查询:都知道HBase查询快,因为其实基于内存查询,Hbase在写入的时候,优先写入MemStore,这个MemStore就是内存了,查询的时候也就是从内存中返回,所以从这个方面Hbase可以理解为一个分布式缓存,跟平时的缓存没有差别,最简单的WEB系统在使用缓存时,也是在插入的时候先写入内存,在持久化到数据库。查询也是先从内存获取,获取失败再从数据库查询。
2、数据结构:Hbase是列存储,为什么要列存储,其实很简单,传统数据库,如果一个表有20个字段,查询某个字段时,也扫描了该行的全部数据,而列存储的好处是,查询哪些字段,就扫描对应的列表即可,这种在数据量较小下可能看不出什么优势,但是在大数据下,优势还是很明显的
3、关于Region,Region在数据量达到一定阀值后,会split为两个Region,其实这种思想跟数据库按照数据量建表原理一样,为了保证高效查询,在数据量达到一定阀值之后,建立新的表。
因此,个人认为,Hbase的核心就是缓存+列存储+拆表。其余特性其实是分布式系统的特性,例如HMaster的HA,这种在中心化分布式系统中也是很成熟的解决方案,数据的多版本也是分布式系统副本的特性,仅此而已。
标签:
原文地址:http://blog.csdn.net/yangfei001/article/details/44117881