HBase系列(一)、数据模型

HBase的数据模型 逻辑上,HBase的数据模型同关系型数据库很类似,数据也是存储在一张表中,由行和列。但HBase的底层物理存储结构是Key-Value模式。 阅读详情

目录

简介

设计模型

逻辑结构

物理结构


简介

HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase可在廉价服务器上搭建起大规模结构化存储集群。是Apache软件基金会的Hadoop项目的一部分,运行于HDFS文件系统之上,因此可以容错地存储海量稀疏的数据。

HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,使用Java语言进行实现。但是也有很多不同之处。比如:

 Google BigTableHadoop HBase
文件存储系统GFSHDFS
计算引擎MAPREDUCEHadoop MapReduce
一致性协调服务ChubbyZookeeper

设计模型

下面我们通过数据存储结构来了解一下HBase的各个组件,从逻辑上来看,HBase中的数据模型和RDBMS很类似,数据存储在一个二维表中,有行和列,但从物理存储上来看,HBase是以KV形式进行存储的,更像是一个multi-dimensional map。

逻辑结构

  • namespace(命名空间):类似数据库中的database,命名空间下可以有多个HBase 表。HBase 有两个自带的命名空间,分别是 hbase 和 default,hbase 中存放的是 HBase 内置的表,default 是用户默认使用的命名空间。
  • Region:类似数据库的表,不同的是,Hbase定义表的时候只需要声明列族即可,不需要声明具体的列。这意味着,往 HBase 写入数据时,字段可以动态、按需指定。因此,和关系型数据库相比,HBase 能够轻松应对字段变更的场景。同时,一个HBase表中可以有1~n个Region。
  • Row(行):HBase中每行数据都由一个 RowKey(行键) 和多个 Column(列)组成,数据是按照 RowKey的字典顺序存储的(如:上图的row_key10排在row_key2前面),RowKey 的设计十分重要,查询数据时只能根据 RowKey 进行检索:
    • 指定rowkey查询
    • 指定rowkey区间查询
    • 全表扫描 
  • Column Family(列族):HBase 中的列被分组为列族。列族的所有列成员具有​​相同的前缀。例如 cf_wyk:name,cf_wyk:age 都是 cf_wyk 列族的成员。冒号字符(:)从列族限定符中分隔列族。在物理上,同一列族内成员一起存储在文件系统上,因此建议所有同一列族内的成员具有相同的一般访问模式和大小特征。
  • Column(列):HBase 中的每个列都由 Column Family(列族)和 Column Qualifier(列限定符)进行限定,例如cf_wyk:name,cf_wyk:age。建表时,只需指明列族,而列限定符无需预先定义。
  • Store:HBase表按照列族将同一列族内的数据存储在同一个文件夹内,按照Region将表进行横向切片,经过这两种切分之后得到的store就是真实存储数据的文件,该数据存储在HDFS内。
  • Cell:由{rowkey, column Family:column Qualifier, time Stamp} 唯一确定的数据单元。cell 中的数据是没有类型的,全部以字节码形式存储。

解读上图:在hbase中namespace为default,表名为wyk_csdn,有两个列族cf_csdn,cf_wyk,分别有下面几个列cf_csdn:host,cf_csdn:port,cf_csdn:alias,cf_wyk:name,cf_wyk:age。有8条记录被分别放置在三个region内,且在每个region内是按照字典排序。 

物理结构

在上面介绍了数据是存储在storefile内的,下面我们来看一下storefile内存储了什么样的数据,如上图,其中Rowkey,列族(Column Family),列限定符(列),和值(Value)我们都知道是什么,剩下两个新面孔我们来看一下:

  • Timestamp(时间戳):用于标识数据的不同版本(version),每条数据写入时,如果不指定时间戳,系统会自动为其加上该字段,其值为数据写入 HBase 的时间。时间戳在HBase中是非常重要的一个指标。
  • Type(操作类型):对HBase数据进行增改操作时类型为Put,进行删除操作时该类型为Delete,进行查询操作不会产生数据修改,因此不会记录在数据内。

解读上图:该表中rowkey为row_key8,列族为cf_wyk的数据存储情况,其中在t1时间点新增了数据{wyk7,26},在t2时间点修改age=27,在t3时间点修改age=28,虽然在storefile中age列存了三个记录,但在查询数据时只能查到age=28的结果,这就是因为时间戳t3是最新的,因此在查询数据时如果没有指定版本则只会返回最新版。

希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!

 

 

HBase数据模型 HBase简介 – HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩、 实时读写的分布式数据库 – 利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理 HBase中的海量数据,利用Zookeeper作为其分布式协同服务 – 主要用来存储非结构化和半结构化的松散数据(列存 NoSQL 数据库) 数据模型: 在使... 阅读详情

相关推荐

[Hbase]一 HBase基础

HBase数据模型的关键在于 稀疏、分布式、多维、排序 的映射。其中映射 map指代非关系型数据库的 key-Value结构。

weixin_44428807的博客 1608

数据库第三次作业

教师表 teacher 指定字段插入数据 教师号 教师姓名 职称 工资 岗位津贴 T1 Anne Professor 5000 2000 T2 Adam 2000 T3 ..

m0_62686978的博客 1272

HBase列式数据模型简介

数据模型是理解一个数据库的关键,本节介绍 HBase 的列式数据模型,与数据模型相关的基本概念,并描述 HBase 数据库的概念视图和物理视图。 数据模型概述 HBase 是一个稀疏、多维度、有序的映射表。 这张表中每个单元是通过由行键、列族、列限定符和时间戳组成的索引来标识的。每个单元的值是一个未经解释的字符串,没有数据类型。当用户在表中存储数据时,每一行都有一个唯一的行键和任意多的列。 ...

大数据基础学习 1759

HBase数据模型(1)

HBase数据模型(1) HBase数据模型(2) 1.0 HBase的特性 Table HBase以表(Table)的方式组织数据,数据存储在表中。 Row/Column 行(Row)和列(Column)共同组成HBase的表。 Column Family 列族(Column)将一列或者多列组织在一起,HBase的列必须属于...

weixin_33757911的博客 403

HBase 基础之 数据模型(RowKey、列族)、读写流程,单机部署,使用 HBase Shell 操作表

一、HBase 数据模型HBase 的数据模型与传统关系型数据库(如 MySQL)完全不同,它更像是。

u012024132的专栏 824

Hbase数据模型与存储结构

当一个region所有storefile的大小和数量超过一定阈值后,会把当前的region分割为两个新的region(裂变),每个region保存一段连续的数据片段,如此往复,就会有越来越多的region,并由Master分配到相应的RegionServer服务器,这样一张完整的表被保存在多个Regionserver 上,实现负载均衡。(1)在HBase每个cell存储单元对同一份数据可以有多个版本,根据唯一的时间戳来区分每个版本之间的差异,不同版本的数据按照时间倒序排序,最新的数据版本排在最前面。

2401_89694162的博客 1253

HBase学习笔记(一)HBase数据模型

HBase是运行在Hadoop集群上的一个数据库,与传统的数据库有严格的ACID(原子性、一致性、隔离性、持久性)要求不一样,HBase降低了这些要求从而获得更好的扩展性,它更适合存储一些非结构化和半结构化的数据。 Apache HBase is a database that runs on a Hadoop cluster. HBase is not a traditional RDBMS,

momo1005的博客 1082

【图文详解】HBase 的数据模型与架构原理详解

HBase 简介 https://hbase.apache.org/HBase, Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩、 实时读写的分布式开源 NoSQL 数据库,面向列存储。主要用来存储非结构化和半结构化的松散数据。HBase 的设计思想,来源于 Fay Chang所撰写的Google论文 “Bigtable:一个结构化数据的分布式存储系统”。HBase ...

AI天才研究院 1万+

大数据技术之HBase(一)HBase简介、HBase快速入门、HBase进阶

文章目录1 HBase 简介1.1 HBase 定义1.2 HBase 数据模型1.2.1 HBase 逻辑结构1.2.2 HBase 物理存储结构1.2.3 数据模型1.3 HBase 基本架构2 HBase 快速入门1.2.3 自定义存储 offset1.3 自定义 Interceptor1.3.1 拦截器原理1.3.2 拦截器案例2 Kafka 监控2.1 Kafka Eagle3 Flume 对接 Kafka4 Kafka 面试题 1 HBase 简介 1.1 HBase 定义 HBase 是一.

huxili2020的博客 3万+

团结引擎+OpenHarmony 2实战篇:从零构建鸿蒙应用开发环境

本文详细介绍了如何从零开始构建鸿蒙应用开发环境,重点讲解了团结引擎与OpenHarmony 2的实战配置步骤。内容包括DevEco Studio安装、OpenHarmony SDK配置、团结引擎集成及项目创建等关键环节,帮助开发者快速搭建高效的开发环境,提升鸿蒙应用开发效率。

weixin_29294395的博客 264

哈工大OS实验四——进程运行轨迹的跟踪与统计

进程运行轨迹的跟踪与统计 进程从创建(Linux 下调用 fork())到结束的整个过程就是进程的生命期,进程在其生命期中的运行轨迹实际上就表现为进程状态的多次切换,如进程创建以后会成为就绪态;当该进程被调度以后会切换到运行态;在运行的过程中如果启动了一个文件读写操作,操作系统会将该进程切换到阻塞态(等待态)从而让出 CPU;当文件读写完毕以后,操作系统会在将其切换成就绪态,等待进程调度算法来调度该进程执行…… process.c解读 void cpuio_bound(int last, int cpu_

优快云-ych 1002

大数据入门:HBase数据模型详解

Hbase作为Hadoop生态当中的NOSQL数据库,基于HDFS去完成实际的数据存储任务,高性能是得到普遍的认可的。而Hbase在存储上的高性能,与自身的数据模型设计有很大的关系。今天的大数据入门分享,我们就来讲讲,Hbase数据模型的相关知识。 根据定义,我们知道Hbase是一个支持分布式的列式数据库,尤其是针对于大型数据的实时、随机的读写访问,Hbase能够提供很好的功能支持。 一、HBase的数据模型 Hbase的数据模型,我们需要从两个维度来理解,一是逻辑模型,二是物理模型。逻辑模型 H.

shuimuzh123的博客 6457

从数据手册到代码:一步步解读SC7A20寄存器配置与加速度值换算原理

本文详细解析了SC7A20三轴加速度传感器的寄存器配置与加速度值换算原理。从数据手册出发,逐步拆解关键寄存器设置,并推导原始ADC值到物理加速度的完整换算过程,帮助开发者深入理解传感器底层工作原理,提升嵌入式开发效率。

weixin_29179311的博客 368

HBase基础知识(一):HBase简介、HBase数据模型与基本架构

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

zuodingquan666的博客 2234

VCL for PHP,Konopka Signature VCL Controls (Raize Components 6.2.3) for Delphi 10.4

The Raize Components suite includes a variety of interface design tools for Delphi programming language and C ++ Builder, which includes over 125 VCL controls and over 100 different tools for creating...

weixin_42137539的博客 853

Orange3实战教程:文本挖掘---主题建模

主题建模通过LDA、LSI或HDP算法分析文档集合,自动发现隐含主题结构。组件输入为文档语料库,输出包括带主题权重的语料库、主题词分布及完整主题数据。不同算法特性各异:LSI允许正负权重但解释性较弱,LDA更易解释,HDP参数复杂需谨慎设置。结果可结合词云、热力图等可视化工具分析主题特征及分布。示例显示如何通过预处理文本、选择算法(如提取5个LDA主题),并利用MDS和箱线图探索主题间关系及关键词分布。

err2008的专栏 362

HBase数据模型解析

HBase数据模型解析 HBase 是一种列存储模式与键值对存储模式结合的 NoSQL 数据库,它具有灵活的数据模型,不仅可以基于键进行快速查询,还可以实现基于值、列名等的全文遍历和检索。 HBase 可以实现自动的数据分片,用户不需要知道数据存储在哪个节点上,只要说明检索的要求,系统会自动进行数据的查询和反馈。 HBase 的基本概念 HBase 不支持关系模型,它可以根据用户的需求提供更灵活和可扩展的表设计。与传统的关系型数据库类似,HBase 也是以表的方式组织数据,应用程序将数据存于 HBase 的

张俊杰 的博客 4030

华为OD机考双机位C卷 - 员工派遣 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 员工派遣 (OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 1035

HBase系列(一):HBase表结构及数据模型的理解

专栏:大数据核心原理与实践 HBase适用场景 首先在搞HBase之前我们要对其建立感性认识,其适用场景如下: 并发、简单、随机查询。 (注:HBase不太擅长复杂join查询,但可以通过二级索引即全局索引的方式来优化性能,后续博文会进行讲解) 半结构化、非结构化数据存储。 一般我们从数仓中离线统计分析海量数据,将得到的结果插入HBase中用于实时查询。 HBase表结构 这...

little prince,blue coder 2万+

Android16 RK3576修改亮度调节为线性调节

文章摘要: 本文分析了Android系统中亮度调节的非线性问题,并提供了线性化改造方案。首先通过追踪Settings和SystemUI代码,发现亮度调节使用了BrightnessUtils类中的非线性Gamma空间转换算法。然后重点修改了BrightnessUtils类,将原有的Hybrid Log Gamma(HLG)算法替换为简单的线性映射公式。最后在自定义工具窗口中实现了基于系统标准接口的亮度调节功能,通过SeekBar的0-100%百分比值线性映射到1-255的系统亮度值。改造后的亮度调节更加直观,

tzj1058756809的博客 75

SAP_MM模块采购订单显示含税价&不含税简介

不含税价(Net Price):基础商品价格,不包含税金。含税价(Gross Price):基础价格加上适用税金后的总价。在SAP中,采购订单通常以不含税价为基础,通过配置税码和定价方案,系统会自动计算含税总价。

我小时候很黑的博客 2303

HBase 架构与数据模型深度解析

HBase 以其高扩展性、灵活的数据模型和强一致性,为大数据实时存储与检索场景提供了坚实基础。掌握其架构与设计思想,结合业务灵活建模和优化,才能真正发挥 HBase 的技术价值!图文并茂,知其然更知其所以然。温馨提示:如需高清架构图、思维导图源文件或更多实战案例,请留言或私信获取!

IT技术学习与工作笔记分享 1475

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

分布式存储—— HBase数据模型 详解

1.3 HBase数据模型在开始学习HBase之前非常有必要先学习HBase的特性,因此本节将介绍HBase的逻辑模型、物理模型和访问HBase的方法等。和传统的关系型数据库类似,HBase以表(Table)的方式组织数据,应用程序将数据存入HBase的表中。HBase的表由行(row)和列(Column)共同构成,与关系型数据库不同的是HBase有一个列族(Column Family)的概念,它将一列或者多列组织在一起,HBase的列必须属于某一个列族。

Future_yzx的博客 1866

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

HBase 的数据模型

文章目录1、HBse表结构2、HBase 与 HDFS 的关系3、HBase 使用选择4、HBase 数据存储模型4.1 CAP 定理4.2 ACID4.3 数据模型4.4 HBase 与 RDBMS 的区别 1、HBse表结构 HBase 是面向列的数据库。有别于RDBMS(行式数据库),HBase将原来每一列中的数据放到一起进行存储。 RDBMS表结构(行式): RDBMS中,每个行都是不可...

花栗鼠先生的博客 1535

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

HBase数据模型与原理

1.数据模型HBase数据模型与关系数据库模型有很大的区别。HBase的数据模型被组织为行(row)、列族(column family)、列(column)和单元格(cell)的层次结构,其中数据存储在表(table)中。表由多个行组成,每行具有一个唯一的行键(row key)。行键的设计非常重要,它决定了数据在HBase中的存储和访问方式。行中的数据以列族的形式组织,列族可以理解为具有相似属性或语义的列的集合。每个列族中可以包含多个列,列由列名和时间戳组成。

m0_63324465的博客 1003
上一篇: 分布式资源调度管理框架:YARN的架构及工作原理
下一篇: HBase系列(二)、架构原理
王义凯_Rick
王义凯_Rick 领域专家: 大数据技术领域 领域专家: 大数据技术领域
博客等级 码龄14年 858粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王义凯_Rick

遇见即是缘,路过就给个评论吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值