2 HBase数据模型

数据模型解析

在这里插入图片描述

数据类型:int,char… HBase不存在数据类型,字节存储

数据模型:行,列 HBase不仅有行列,HBase还有:RK,CF,TS,Q,cell

专业术语

NameSpace:

  • 命名空间是类似于关系数据库系统中的数据库的概念,他其实是表的逻辑分组。这种抽象为多租户相关功能奠定了基础。
    命名空间是可以管理维护的,可以创建,删除或更改命名空间。

  • HBase有两个特殊预定义的命名空间:

    • default-没有明确指定名称空间的表将自动落入此名称空间
    • hbase-系统命名空间,用于包含HBase内部表

Table:

  • Hbase的table由多个行组成

  • Row KeyTime StampColumn Family1Column Family2Column Family3
    111t6CF2:q1=val1CF3:q3=val3
    112t3CF1:q2=val3
    t2CF1:q8=val2

RowKey:

  • RowKey是用来检索记录的主键,是一行数据的唯一标识
  • RowKey行键(RowKey)可以是任意字符串(最大长度是64KB,实际应用中长度一般为10-100bytes),RowKey以字节数组保存。
  • 存储时,数据按照RowKey的字典序(byte order)排序存储。设计RowKey时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。

Column Family:

  • 列簇在物理上包含了许多的列与列的值,每个列簇都有一些存储的属性可配置。
    • 例如是否使用缓存,压缩类型,存储版本数等。在表中,每一行都有相同的列簇,尽管有些列簇什么东西也没有存。
  • 将功能属性相近的列放在同一个列族,而且同一个列族中的列会存放在同一个Store中。列族一般需要在创建表的时候就进行声明,而且一般一个表中的列族数不要超过3个
    • 这个和后期的优化相关
  • 列隶属于列族,列族隶属于表

Column Qualifier:

  • 列簇的限定词,理解为列的唯一标识。但是列标识是可以改变的,因此每一行可能有不同的列标识
  • 使用的时候必须列族:列
  • 列可以根据需求动态添加或者删除,同一个表中不同行的数据列都可以不同

Cell:

  • cell是由row,column family,column qualifier,version 组成的
  • cell中的数据是没有类型的,全部是字节码形式存贮。
    • 因为HDFS上的数据都是字节数组

Timestamp:

  • HBase中通过rowkey和column family,column qualifier确定的一个存贮单元称为cell。每个 cell都保存着同一份数据的多个版本。
  • 版本通过时间戳来索引。
    • 时间戳的类型是64位整型
    • 默认时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显式赋值。
    • 如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。
  • 每个cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。
    • 查询数据的时候,如果不指定版本数,默认显示版本号最新(高)的数据
  • 为了避免数据存在过多版本中造成管理(包括存贮和索引)负担,HBASE提供了两种数据版本回收方式。
    • —是保存数据的最后n个版本
    • 二是保存最近一段时间内的版本(比如最近七天)

小结

HBase是一个稀疏的、分布式、持久、多维、排序的映射,它以行键(row key),列键(column key–>cfq)和时间戳(timestamp)为索引。
Hbase在存储数据的时候,有两个SortedMap,首先按照rowkey进行字典排序,然后再对Column进行字典排序。
在这里插入图片描述
照rowkey进行字典排序,然后再对Column进行字典排序。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值