我今天学到的关于HBase的一些相关知识。

本文介绍了HBase,一个基于Hadoop的列式存储数据库,用于OLAP处理。HBase具备高可靠性、高性能、可伸缩性和实时读写能力,适合处理大量非结构化数据。其特点包括自动分区、线性扩展和容错能力。HBase数据模型由表、行、列族、列限定符、单元格和时间戳组成,适合大规模分布式环境中的数据存储和检索。
摘要由CSDN通过智能技术生成

在介绍HBase之前,很有必要先说明一下行式存储和列式存储的区别以及各自的优缺点。

传统关系型数据库所采用的是行式存储,数据库中的一张表的数据是连续放在一起存储的。这样带来的好处是:INSERT/UPDATE(插入数据、修改数据)容易。但也有其弊端,选择时,即使仅涉及其中的某几列,所有数据也都会被读取,并且列数不能太多(一般不超过30列),可以理解为牵一发,而动全身。行式存储主要适用于OLTP(On-Line Transaction Processing ,联机事务处理过程,也称为面向交易的处理过程)。

采用列式存储时,每列的数据会集中存储,不同列的数据则会分开保存。其优点为:查询时被涉及的列才会被读取;任何列都可以作为索引;相同列的数据存放在一起,数据压缩更容易(可以节省空间);列数可以有很多。其缺点也很明显,每次选择完成时,被选择的列需重新组装,以及INSERT/UPDATE比较麻烦。列式存储主要适用于OLAP(On-Line Analytic Processing ,联机分析处理过程)。

HBase是Hadoop生态系统中的重要一员,常构建在HDFS上,是一个可以提供高可靠性、高性能、可伸缩、实时读写、分布式的列式数据库,是Google公司Big Table(一个分布式的结构化数据存储系统)思想的开源实现,具有存储非结构化数据的能力。HBase采用了上文所说的列式存储,因此具有良好的分布式扩展能力(通过不断增加服务器来增加存储能力)。

 

HBase具有以下特性:

1.伸缩性强(横纵向)。

2.自动分区。当表增长时,表会自动分裂成Region(HBase数据存储和管理的基本单位),并基本发布到可用节点上。值得一提的是一个HBase表由一个或一个以上Region组成,随着表中的存储数据增多,Region的值也会增加,但数据量达到阈值时,一个Region则会分裂出多个新的Region。

3.支持线性扩展和对新节点的自动处理。

4.支持普通商用硬件。

5.容错能力强,充分利用了Hadoop文件系统提供的容错能力。

6.检索能力强。

HBase的本质是一个稀疏的、多维的、持久化存储的映射表,它采用行健、列族、列限定符、时间戳来进行数据索引。HBase数据模型包含以下概念:

1.表(Table)                                                                                                                                     HBase采用表来组织数据,表由行和列组成,列可划分为若干个列族(Column Family)。

2.行(Row)                                                                                                                                       每个行由行键(RowKey)来标识。行键可以是任意字符串的字节数组,按字典序排序。访问表中的行有三种方式:通过单个行键访问、通过一个行键的区间来访问、全表扫描。

3.列族(Colunm Family)                                                                                                                  列族必须在表的定义阶段给出,列族的成员数量可以是一个也可是多个,且列族的成员不必在表定义时给出,可随后按需、动态加入。HBase的列式存储就是根据列族分开存储,每个列族对应一个存储区域。

4.列限定符(Qualifier)                                                                                                                      列族中的数据通过列限定符来定位,列限定符不需要事先定义,也不需要在不同行间保持一致。通常简称为列(Column)。

5.单元格(Cell)                                                                                                                                 单元格由行键、列族、列限定符、时间戳唯一决定。单元格中的数据是没有类型的,以字节码形式存储。

6.时间戳(Timestamp)                                                                                                                     时间戳通常也称为版本(Version)。数据单元存储的时候,会按时间戳来排序,所以在查询时若不提供时间戳,会返回距离当前最近的那个版本的数据。

关于HBase的系统架构和安装步骤我会在后面的博客记录(主要是今天就只学到了这点)。

写的虽然很简陋,但这是我今天所了解到的一些相关知识。如果有错误或者遗漏,欢迎各位大佬和前辈指出,感激不尽。

此外EDG加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

御坂家的小菜菜

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值