Hbase表结构

关键概念

表(Table)

HBase会将数据组织进一张张的表里面,但是需要注意的是表名必须是能用在文件路径里的合法名字,因为HBase的表是映射成hdfs上面的文件。

行(Row)

在表里面,每一行代表着一个数据对象,每一行都是以一个行键(Row Key)来进行唯一标识的,行键并没有什么特定的数据类型,以二进制的字节来存储。

列族(Column Family)

在定义HBase表的时候需要提前设置好列族, 表中所有的列都需要组织在列族里面,列族一旦确定后,就不能轻易修改,因为它会影响到HBase真实的物理存储结构,但是列族中的列标识(Column Qualifier)以及其对应的值可以动态增删。表中的每一行都有相同的列族,但是不需要每一行的列族里都有一致的列标识(Column Qualifier)和值,所以说是一种稀疏的表结构,这样可以一定程度上避免数据的冗余。例如:{row1, userInfo: telephone —> 137XXXXX869 }{row2, userInfo: fax phone —> 0898-66XXXX } 行1和行2都有同一个列族userinfo,但是行1中的列族只有列标识(Column Qualifier):移动电话号码,而行2中的列族中只有列标识(Column Qualifier):传真号码。

列标识(Column Qualifier)

列族中的数据通过列标识来进行映射,其实这里大家可以不用拘泥于“列”这个概念,也可以理解为一个键值对,Column Qualifier就是Key。列标识也没有特定的数据类型,以二进制字节来存储。

单元(Cell)

每一个 行键,列族和列标识共同组成一个单元,存储在单元里的数据称为单元数据,单元和单元数据也没有特定的数据类型,以二进制字节来存储。

表结构关系

可以把HBase看成一个多维度的Map模型去理解它的数据模型。

  • 行键映射一个列族数组
  • 列族数组中的每个列族又映射一个列标识数组
  • 列标识数组中的每一个列标识(Column Qualifier)又映射到一个时间戳数组,里面是不同时间戳映射下不同版本的值,但是默认取最近时间的值,所以可以看成是列标识(Column Qualifier)和它所对应的值的映射。


    image

声明

一直没太搞懂hbase表结构,看到一篇文章,做一个整理记录
参考链接https://blog.csdn.net/ymh198816/article/details/51244911

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 我们通过业务系统将爬虫的数据写入了HBase,这篇文章说说HBase的表结构,及在HBase上利用Phoen...
    IIGEOywq阅读 6,584评论 0 5
  • Hbase概述 Hbase是一个开源可伸缩的针对海量数据存储的分布式nosql数据库。Hbase可以看成是以行键(...
    shuaidong阅读 1,286评论 0 1
  • Hive操作命令: 创建表: 创建一个新表,结构与其他一样
    行走在朝圣路上阅读 1,911评论 0 1
  • 一、简介 Hbase:全名Hadoop DataBase,是一种开源的,可伸缩的,严格一致性(并非最终一致性)的分...
    菜鸟小玄阅读 2,613评论 0 12
  • 感情的世界没有谁错谁对 谁都可以给谁亲爱的称谓 总有天会遇见那个对的谁 冥冥中有双手将你向我推 注定你与我会在此刻...
    沈九壹阅读 253评论 0 0

友情链接更多精彩内容