暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
尚硅谷大数据技术之HBase.pdf
649
46页
11次
2023-07-03
5墨值下载
尚硅谷大数据技术之 HBase
—————————————————————————————
更多 Java –大数据 前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
尚硅谷大数据技术 HBase
(作者:尚硅谷研究院)
版本:V2.0
1 HBase 简介
1.1 HBase 定义
Apache HBase 是以 hdfs 为数据存储的,一种分布式、可扩展的 NoSQL 数据库。
1.2 HBase 数据模型
HBase 的设计理念依据 Google BigTable 论文,论文中对于数据模型的首句介绍。
Bigtable 是一个稀疏的分布式的持久的多维排序 map
之后对于映射的解释如下
该映射由行键、列键和时间戳索引;映射中的每个值都是一个未解释的字节数组。
最终 HBase 关于数据模型 BigTable 的对应关系如下:
HBase 使用与 Bigtable 非常相似的数据模型。用户将数据行存储在带标签的表中。
据行具有可排序的键和任意数量的列该表存储稀疏,因此如果用户喜欢,同一表中的行可
以具有疯狂变化的列。
最终理解 HBase 数据模型的关键在于稀疏、分布式、多维、排序的映射。其中映射 map
指代非关系型数据库的 key-Value 结构。
1.2.1 HBase 逻辑结构
HBase 可以用于存储多种结构的数据,以 JSON 为例,存储的数据原貌为:
{
"row_key1":{
"personal_info":{
"name":"zhangsan",
"city":"北京",
"phone":"131********"
},
"office_info":{
"tel":"010-1111111",
"address":"atguigu"
}
},
"row_key11":{
"personal_info":{
"city":"上海",
"phone":"132********"
},
"office_info":{
"tel":"010-1111111"
尚硅谷大数据技术之 HBase
—————————————————————————————
更多 Java –大数据 前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
}
},
"row_key2":{
......
}
HBase 逻辑结构
personal_info
Row Key name city phone
row_key1 张三 北京
131********
row_key11
上海
132********
row_key2 王五 广州
row_key3 深圳
187********
atguigu
row_key4 横七 大连
134********
atguigu
row_key5 竖八
139********
atguigu
row_key6 金九 武汉 010-11111111 atguigu
row_key7 银十 保定
158********
010-11111111
office_info
tel address
010-11111111 atguigu
010-11111111
010-11111111 atguigu
列族
Row key
存储数据稀疏,数据存储多维,不同的行具有不同的列。
数据存储整体有序,按照RowKey的字典序排列,RowKeyByte数组
1.2.2 HBase 物理存储结构
物理存储结构即为数据映射关系,而在概念视图的空单元格,底层实际根本不存储
HBase 物理存储结构
personal_info
Row Key name city phone
row_key1 张三 北京
131********
row_key11
上海
132********
row_key2 王五 广州
Row Key
Column Family
Timestamp
Type
Value
row_key1
personal_info
t1
Put
张三
row_key1
personal_info
t2
Put
北京
row_key1
personal_info
t3
Put
131********
row_key1
personal_info
t4
Put
177********
Timestamp
不同版本(version)的数
据根据timestamp进行区分
读取数据默认读取最新的版
StoreFile
Type
对于删除操作,其类型为
DeleteColumn
1.2.3 数据模型
1Name Space
命名空间,类似于关系型数据库的 database 概念,每个命名空间下有多个表。HBase
个自带的命名空间,分别 hbase defaulthbase 中存放的是 HBase 内置的表,default
尚硅谷大数据技术之 HBase
—————————————————————————————
更多 Java –大数据 前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
表是用户默认使用的命名空间。
2Table
类似于关系型数据库的表概念。不同的是,HBase 定义表时只需要声明列族即可,不需
要声明具体的列为数据存储时稀疏的,所有 HBase 写入数据时,字段可以动态按需
指定。因此,和关系型数据库相比,HBase 能够轻松应对字段变更的场景。
3Row
HBase 表中的每行数据都由一个 RowKey 和多个 Column(列)组成,数据是按照 RowKey
的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重
要。
4Column
HBase 中的每个列都由 Column Family(列族) Column Qualifier(列限定符)进行限
定,例如 infonameinfoage。建表时,只需指明列族,而列限定符无需预先定义。
5Time Stamp
用于标识数据的不同版本version),每条数据写入时,系统会自动为其加上该字段,
其值为写入 HBase 的时间。
6Cell
{rowkey, column Familycolumn Qualifier, timestamp} 唯一确定的单元。cell 中的数
据全部是字节码形式存贮。
of 46
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。