HBase是一个构建在HDFS上的分布式列存储系统,
主要用于海量结构化数据存储,
从逻辑上讲,HBase将数据按照表、行和列进行存储。
HDFS适合批处理场景
不支持数据随机查找
不适合增量数据处理
不支持数据更新
以上HDFS不适合、不支持的场景,HBase都支持
大数据上高并发操作,比如每秒对PB级数据进行上千次操作,并且
读写访问均是非常简单的操作。
Hbase表的特点
大:一个表可以有数十亿行,上百万列;
无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列;
面向列:面向列(族)的存储和权限控制,列(族)独立检索;
稀疏:对于空(null)的列,并不占用存储空间,表可以设计的非常稀疏;
数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳;
数据类型单一:Hbase中的数据都是字符串,没有类型。
行存储和列存储的比较
传统行式数据库
数据是按行存储的
没有索引的查询使用大量I/O
建立索引和物化视图需要花费大量时间和资源
面向查询的需求,数据库必须被大量膨胀才能满足性能要求
列式数据库
数据是按列存储-每一列单独存放