HBase中的基本概念

原创
2014/12/15 08:05
阅读数 150

HBaseGoogle Bigtable的开源实现。HBase是一个开源的、分布式的、多版本的、面向列的存储模型。HBase利用HDFS作为其文件系统(或本地),还可以通过MapReduce计算模型来并行处理大数据。下面我们了解一下HBase中的基本概念:

  1. Row Key

    1)       Row key是检索记录的主键。

    2)       Row key行键 (Row key)可以是任意字符串(最大长度是 64KB,实际应用中长度一般为 10-100bytes),在hbase内部,row key保存为字节数组。

    3)       数据按照Row key的字典序(byte order)排序存储。设计key时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。(位置相关性)

    4)       行的读写是原子操作。

  2. Column family (列族)

    1)       HBase表中的每个列都属于某个列族,列族必须作为表模式(schema)定义的一部分预先给出,必须在使用表之前定义。列名都是以列族作为前缀,中间以冒号(:)隔开,如:courses:math

    2)       访问控制、磁盘和内存的使用统计都是在列族层面进行的。实际应用中,列族上的控制权限能帮助我们管理不同类型的应用:我们允许一些应用可以添加新的基本数据、一些应用可以读取基本数据并创建继承的列族、一些应用则只允许浏览数据(甚至可能因为隐私的原因不能浏览所有数据)。

  3. Cell (存储单元)

    {row key, column(=<family> + <label>), version} 唯一确定的单元。cell中的数据是没有类型的,全部是字节码形式存贮。

  4. Timestamp(时间戳)

    1)       每个cell都保存着同一个数据的多个版本,版本通过时间戳来索引。

    2)       时间戳为64位整型。

    3)       可以自动赋值(当前系统时间),也可以用户自己指定。

    4)       不同版本数据按照时间戳倒序排。

    5)       HBase提供了两种数据版本回收机制:a. 保存数据最后n个版本;b. 保存最近一段时间内的版本。用户可以针对每个列族去设置。

展开阅读全文
打赏
1
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
1
分享
返回顶部
顶部