一、HBase 简介
### --- [HBase]
~~~ [HBase简介之HBase是什么]
~~~ [HBase简介之HBase特点及应用场景]
~~~ [HBase数据模型]
~~~ [HBase整体架构]
### --- HBase是什么
~~~ HBase 基于 Google的BigTable论文而来,是一个分布式海量列式非关系型数据库系统,
~~~ 可以提供超大规模数据集的实时随机读写。
~~~ 接下来,通过一个场景初步认识HBase列存储;如下MySQL存储机制,空值字段浪费存储空间
id | NAME | AGE | SALARY | JOB |
1 | 小明 | 23 | 学生 | |
2 | 小红 | 10w | 律师 |
### --- 如果是列存储的话,可以这么玩......
rowkey: 1 name: 小明
rowkey: 1 age: 23
rowkey: 1 job: 学生
rowkey: 2 name: 小红
rowkey: 2 salary: 10w
rowkey: 2 job: 律师
....
### --- 列存储的优点:
~~~ 减少存储空间占用。
~~~ 支持好多列
二、HBase的特点
### --- HBase的特点
~~~ # 海量存储:
~~~ 底层基于HDFS存储海量数据
~~~ # 列式存储:
~~~ HBase表的数据是基于列族进行存储的,一个列族包含若干列
~~~ # 极易扩展:
~~~ 底层依赖HDFS,当磁盘空间不足的时候,只需要动态增加DataNode服务节点就可以高并发:
~~~ 支持高并发的读写请求
~~~ # 稀疏:
~~~ 稀疏主要是针对HBase列的灵活性,在列族中,你可以指定任意多的列,
~~~ 在列数据为空的情况下,是不会占用存储空间的。
~~~ # 数据的多版本:
~~~ HBase表中的数据可以有多个版本值,默认情况下是根据版本号去区分,
~~~ 版本号就是插入数据的时间戳
~~~ # 数据类型单一:
~~~ 所有的数据在HBase中是以字节数组进行存储
三、HBase的应用
### --- HBase的应用
~~~ # 交通方面:
~~~ 船舶GPS信息,每天有上千万左右的数据存储。
~~~ # 金融方面:
~~~ 消费信息、贷款信息、信用卡还款信息等
~~~ # 电商方面:
~~~ 电商网站的交易信息、物流信息、游览信息等
~~~ # 电信方面:
~~~ 通话信息
~~~ # 总结:
~~~ HBase适合海量明细数据的存储,
~~~ 并且后期需要有很好的查询性能(单表超千万、上亿,且并发要求高)