HBase数据模型

HBase以表的形式存储数据。表由行和列族组成。列划分为若干个列族(row family),其逻辑视图如下:

下面分别说说几个关键概念:
1.行键(RowKey)
  行键是字节数组, 任何字符串都可以作为行键;
  表中的行根据行键进行排序,数据按照Row key的字节序(byte order)排序存储;
  所有对表的访问都要通过行键 (单个RowKey访问,或RowKey范围访问,或全表扫描)
2.列族(ColumnFamily)
  CF必须在表定义时给出
  每个CF可以有一个或多个列成员(ColumnQualifier),列成员不需要在表定义时给出,新的列族成员可以随后按需、动态加入
    数据按ColumnFamily分开存储.,HBase所谓的列式存储就是根据ColumnFamily分开存储(每一个ColumnFamily对应一个Store),这种设计非常适合于数据分析情形.
3.时间戳(TimeStamp)
  每个Cell有多个版本,它们用时间戳区分.
4.单元格(Cell)
  Cell由行键,列族,时间戳唯一确定
  Cell中的数据是没有类型的全部以字节码的形式贮存.
5.区域(region)
  HBase自动把表水平(按RowKey)分成若干个区域(Region),每个Region会保存表里一段连续的数据.
  刚开始表里只有一个Region,随着数据的不断插入表,随着Region的不断增大,当到了每个阀值的时候,Region自动等分成两个新的Region.
  当table中的行不断增多,就会有越来越多的region,这样一张表就被保存在多个Region上.
  HRegion是HBase中分布式存储和负载均衡的最小单位,最小单元表示不同的HRegion可以分布在不同的HRegionServer上,但是一个Region不会拆分到多个Server上.
posted @ 2015-04-15 23:43  上海联通  阅读(1272)  评论(0编辑  收藏  举报