Hbase定义:
Hbase是一种分布式,可扩展,支持海量数据存储的NoSQL数据库。HBase是一个分布式的、面向列的开源数据库。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
Hbase数据模型:
Hbase的数据模型同关系型数据库类似,数据存储在一张表中,有行有列。但是底层物理存储结构(k-v)。更像一个多维度的map。
BigTable。
多个列组成列族。一个列族下可以有很多列(宽表的切分)。
Rowkey唯一,有序,字典序,自带的。
高表:数据行多,宽表:列表。(垂直切分,水平切分。)
Region:一张表的切片。(行和列组成。个人理解)
store:存储。
Hbase物理存储结构
数据模型:
1)Name Space:命名空间,类似于关系型数据库的database,每个命名空间下有多个表。Habse有两个自带的命名空间,分别是hbase和default。hbase内置,系统的一些表。default是用户默认使用的命名空间。
2)Region(主要定义列族):表的切片。类似于关系型数据库的表概念。高表是才切。Hbase定义表时只需要声明列族即可,不需要声明具体的列。列是动态增加的。
3)Row:Hbase中每行数据有Rowkey和多个Column组成。Rowkey是按照字典顺序存储的。并且查询数据时只能根据Rowkey进行查找。
4)Column:有Column Family(列族)和Column Qualifier(列限定符)进行限定。如:info:name,info:age。创建表时只需要列族,列限定不用预先定义。
5)Time Stamp:时间戳,用于标识不同的版本。每条数据写入是,可以自己指定时间戳,不指定系统会自动加。
6)Cell:由{rowkey,column Family:column Qualifier,time stamp}唯一确定的单元,Cell中的数据是没有类型的。全部已字节码的形式存储。
Hbase基本架构:
Cell中的数据是没有类型的。全部已字节码的形式存储。
Hbase基本架构: