hbase列存储机制

HBase 是一个面向列NOSQL数据库, 表是按照行(rowid)排序的,如下图所示:

hbase 表模式仅定义包含键值对的列族(column family)。一个表可以有多个列族,每个列族可以有任意数量的列。在这种情况下,列值连续存储在磁盘上。表格的每个单元格值都有一个时间戳(用于表示特定时间发生变化的列值)。

hbase列存储机制

通过上图可以看出,hbase当中有以下概念:

1、表:是行的集合。

2、row:是列族的集合。

3、列族:是列的集合

4、列:键值对的集合。

5、时间戳:用于标识键值对不同版本号下的值。

hbase与关系型数据库的区别:

hbase也有类似关系型数据库的行和列,但是它不是关系型数据库,让我们看看两则的区别:

面向列的数据库(hbase)
面向行的数据库(oracle)
它将表记录存储在一系列列中 它将表记录存储在一系列行中
专为大数据量表而设计,尺寸范围从TB 到 PB。 专为小表设计,大小范围从GB 到 TB。
它将用于分析大量半结构化、非结构化和结构化数据 它用于处理结构化数据
主要应用是OLAP(在线分析处理),如数据挖掘、数据仓库、包括分析在内的应用程序等。 主要应用是OLTP(在线事务处理),如银行和金融等业务系统领域。

举一个简单例子:

传统的Oracle面向行存储:

hbase列存储机制

面向列的hbase存储:

hbase列存储机制