HBase表结构


Hbase最基本的单位是列(column)。一列或多列形成一行(row),并由唯一的行键(row key)来确定存储。反过来说,一个表(table)中有若干行,其中每列可能有多个版本,在每一个单元格(cell)中存储了不同的值
Hbase表结构:建表时,不需要限定表中的字段,只需要指定若干个列族。
    插入数据时,列族中可以存储任意多个列(以kv对的形式存储, 列名-列值)
    一个value可以有多个版本,通过版本号来区分(时间戳)
    要查询某一个具体字段的值,需要指定的坐标:表名-->行键-->列族(ColumnFamily):列名(Qualifier)-
Table-表(大表)
Rowkey-行键(主键)
    行键是字节数组,任何字符串都可以作为行键
    表中的行键进行排序,数据按照Rowkey的字节(byte order) 排序存储
    所有的对表的访问都要通过行键(单个Rowkey访问,或Rowkey范围访问,全表扫描0
Column family(列族)
    列族必须定义表时给出,但已可以动态添加列族
    每个列族可以有一个或多个列成员(Column Qualigier),列成员不需要在定义表时给出,新的列族成员可以随后按需动态加入
    数据按列族分开存储,HBase所谓的列式存储就是根据列族分开存储(每个列族对应一个Store)
TimeStamp(时间戳)
    每个Cell可能有多个版本,他们之间用时间戳区分。
Cell(单元格)
    Cell由行键,列族:限定符,时间戳唯一决定。
    Cell中的数据是没有类型的,全部以字节码形式存储
    每个单元格保存着同一份数据的多个版本
    不同时间版本的数据按照时间顺序倒序排序
Region(区域)
    HBase自动把表水平(按row)划分成多个区域(region),每个region会保存一个表里面某段连续的数据
    HRegion是HBase中分布式存储和负载均衡的最小单元,最小单元表示不同的HRegion可以分布在不同的HRegionServer上。但一个HRegion不会拆分到多个server上。
因为hbase与hive的区别
hbase查询快
硬件需求高于hadoop集群 硬盘 内存 CPU 
模式设计
    数据库的模式设计不是一个新概念,只要成为数据库的系统都存在模式设计问题。
    HBase的模式结构包括表、Rowkey,列族,timestamp
    模式是一个三维有序结构,表,Rowkey,列族三个维度确定一行数据
Rowkey(行键设计)
    Rowkey是不可分割的字节数,按字典排序由低到高存储在表中。
RowKey唯一原则
Rowkey尽量散列
RowKey长度原则
Column Family 列族定义
    列族,是一些列的集合
        一个列族的所有成员都有着相同的前缀。
        在物理上,列族的成员在文件系统上都存储在一起。
        多个列族在执行flush和compaction时,造成很多IO负载
        Flush和compaction操作是针对一个Region的,当一个列族操作大量数据时会引发一个flush
        那些不相关的列族也要进行flush,会造成很多没用的I/O浮躁。



--------------------- 
作者:Gedeon 
来源:CSDN 
原文:https://blog.csdn.net/qq_24908345/article/details/53230169 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值