1.1 什么是HBase
HBase基于Google的BigTable的论文而来,是一个分布式海量列式非关系型数据库系统。可以提供超大规模数据集的实时随机读写。
我们之前接触的Mysql,是行式存储的。字段都是固定的,这样对于一些记录,可能会存在字段内容为空的情况。这时即使为空,但存储空间也是要占用的。再有一种情况,如果一个表的数据记录较多时,想要更改这个表的字段,就不是很容易。
这就显示出了列式存储的优点
- 减少存储空间的占用
- 支持列较多
1.2 HBase的特点
海量存储:底层基于HDFS存储海量数据
列式存储:HBase表的数据是基于列族进行存储的,一个列族包含若干列。
极易扩展:底层依赖HDFS,当磁盘空间不足的时候,只需要动态增加DataNode服务节点即可
高 并 发:支持高并发的读写请求。
稀 疏:稀疏主要是针对HBase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。
数据的多版本:HBase表中的数据可以有多个版本值,默认情况下是根据版本号去区分,版本号就是插入数据的时间戳。
数据类型单一:所有的数据在HBase中是以字节数组进行存储。
1.3 HBase的应用
- 交通方面:船舶GPS信息,每天有上千万左右的数据存储。
- 金融方面:消费信息、贷款信息、信用卡还款信息等。
- 电商方面:电商网站的交易信息、物流信息、游览信息等。
- 电信方面:通话信息
总结:HBase适合海量明细数据的存储,而且后期有很好的查询性能(单表超千万、上亿,且并发要求高)。