2025年HBASE学习(三)—— hase数据结构

HBASE学习(三)—— hase数据结构一 传统关系型数据库 为了更好的理解 HBase 表的思路 先回顾一下关系数据库中表的处理方式 例如有一个用户表 user info 有字段 id name tel 表名 和字段 需要在建表时指定 create table user info id 类型 name 类型 tel 类型

大家好,我是讯享网,很高兴认识大家。

一、传统关系型数据库

为了更好的理解HBase表的思路,先回顾一下关系数据库中表的处理方式

例如有一个用户表user_info,有字段:id、name、tel,表名字段需要在建表时指定

create table user_info ( id 类型, name 类型, tel 类型 )

讯享网

然后插入两条数据

讯享网insert into user_info values(...)

表结构

ID         NAME             TEL                
1 小明 123
2 小王                 456

后来字段不够用了,新用户需要记录地址,就要新增一个字段

id            

name         

tel                 

addr                           

1

小明

123

 

2

小王

456

 

以后再增加需求时,就继续新增字段,或者添加一个扩展表

上面的内容主要说明的是:

  • 建表的方式,需提前指定表名和字段
  • 插入记录的方式,指定表名和各字段的值
  • 数据表是二维结构,行和列
  • 添加字段不灵活

二、HBase的表结构

       建表时要指定的是:表名、列族

建表语句

create 'user_info', 'base_info', 'ext_info'

意思是新建一个表,名称是user_info,包含两个列族base_infoext_info

这时的表结构:

row key            

base_info                

ext_info                                                

...

...

...


讯享网

row key 是行键,每一行的ID,这个字段是自动创建的,建表时不需要指定

插入一条用户数据:name为‘a’,tel为‘123’

插入语句

讯享网put 'user_info', 'row1', 'base_info:name', 'a' put 'user_info', 'row1', 'base_info:tel', '123'

意思是向user_info表中行健row1base_info列族中添加一项数据 name:a,接着又添加一项数据tel:123

nametel就是具体字段,属于base_info这个列族                                                                                                                                                    

 这时的表结构:

row key

base_info

ext_info

row1                                 

name:a, tel:123                           

                                                

再插入一条数据:name为‘b’,addr为‘beijing’

put 'user_info', 'row2', 'base_info:name', 'b' put 'user_info', 'row2', 'ext_info:addr', 'bj'

这时的表结构:

row key

base_info

ext_info

row1                                

name:a, tel:123                                 

                                                

row2

name:b

addr:bj

三、总结一下 

         通过上面的例子,大家应该对HBASE的数据存储结构有了一个简单认识,下面,我们通过一些图来回顾及补充一下:

1、数据模型相关概念

       1620

  • 表:HBase采用表来组织数据,表由行和列组成,列划分为若干个列族。
  • 行:每个HBase表都由若干行组成,每个行由行键(row key)来标识。
  • 列族:一个HBase表被分组成许多“列族”(Column Family)的集合,它是基本的访问控制单元。
  • 列限定符:列族里的数据通过列限定符(或列)来定位。
  • 单元格:在HBase表中,通过行、列族和列限定符确定一个“单元格”(cell),单元格中存储的数据没有数据类型,总被视为字节数组byte[]。
  • 时间戳:每个单元格都保存着同一份数据的多个版本,这些版本采用时间戳进行索引。 1620

    2、数据坐标

    HBase中需要根据行键、列族、列限定符和时间戳来确定一个单元格

小讯
上一篇 2025-03-08 07:49
下一篇 2025-02-27 16:28

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/69120.html