第一章:HBase定义

HBase学习
第一章:HBase定义



一、HBase定义

HBase是一种分布式、可扩展、支持海量数据存储的NoSql数据库

二、HBase数据模型

逻辑上,HBase的数据模型和关系型数据库类似,数据存储在一张表中,有行有列,但HBase的底层物流存储结构(k-v)来看,更像是一个多维度Map。

1、HBase逻辑结构

在这里插入图片描述
列族:相当于文件夹,图中name\ctiy\phone表示同一类信息。类似于mysql中宽表的切分
RowKey:行键,
Region:一张表的横向切片,把一张表进行数据切分。类似于mysql中高表的切分。
store: 存储

2、HBase 物理存储

在这里插入图片描述
HBase的存储:
在这里插入图片描述
表中的每一列的值都需要存储,如上图,切列中多了TimeStamp时间戳,Type数据操作类型,如Put,插入。

上图中,倒数第一、第二条数据发现除了时间戳和value不同,其他都相同,表示更新操作,HBase更新数据是向表中Put一条新的数据,且时间戳大于上一次时间戳,
删除操作通更新,只是Type类型不同,如果Delete的类型的时间戳大于之前的,则不返回数据 。

在这里插入图片描述
查询数据默认返回最大版本的TimeStamp

3、数据模型

1)、Name Space

命名空间,类似于关系型数据库的database概念,每个命名空间下有多个表。Hbase有两个自带的命名空间,分别是hbase和default,hbase中存放的是HBase内置的表,default是用户默认的命名空间。

2)、Region

类似关系型数据库中表的概念。不同的是吗,HBase定义表的时候只需要声明列族即可,不需要声明具体的列。也就是说,往HBase写入数据的时候,字段可以使动态、按需指定。因此,和关系型数据库相比,HBase能够轻松应对字段变更的场景。

3)、Row

HBase中每行数据都有一个RowKey和多个Column组成,数据按照RowKey的字典顺序存储的,并且查询数据时候只能根据Rowkey进行检索,所以RowKey的设计十分重要。

4)、Column

HBase中的每个列都是由Column Family(列族)和Column Qualifier(列限定符)进行限定,例如:info:name, info:age。建表时,只需要指明列族,而列限定符无需预先定义。

5)、Time Stamp

用于标识数据不同的版本,每条数据写入时,如不指定时间戳,系统会自动为其加上该字段,并写入HBase时间。

6)、Cell

由{rowkey,Column Family;Column Qualifier,Time Stamp}唯一确定的单元,cell中的数据是没有类型的,全是字节码形式存储。

三、HBase基本架构

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值