HBase是面向列的分布式的数据库,和传统的关系型数据库有很大的不同:物理模型和逻辑模型。这里我们要首先讲一下HBase数据库相关的区别于关系型数据库的几个基本概念:
表:HBase将数据组织到自己的HTable表中,这个表是根据列族(colomn family)在物理上保存数据的,每个列族都有自己的文件夹和storefiles,不像关系型数据库那样将一个表保存成一个文件,表明也是文件系统路径的一部分。
行:HBase中的行是逻辑上的行,物理上模型上行是按列族(colomn family)分别存取的。HBase有Rowkey的概念,rowkwy没有数据类型,总是被认为是byte[],它相当于关系型数据表中的主键。另外Rowkey设计的好坏对读取数据有很长大的关系,可以被认为是设计HBase表是最重要的一个环节。而系型数据表中的行是真正意义上的行,逻辑上和物理上都是按行组织数据。
列族:HBase表中的行是按一个叫colomn family的列族分组的,也是在磁盘上也是按列族存储数据的,由于这个原因,故当定义一个hbase表时,除了定义表名外,还必须定义列族。传统数据库没有列族的概念。
列标识:一个列族中的数据是通过一个叫colomn qualifier的具体描述每一列。列标识在标定一种可以动态定义,既可以在表定义时定义,也可以在保存数据时定义。而系型数据库的表没有此概念。
版本:HBase中的数据有版本的概念,每次生成或修改数据时都保存一个版本信息——这个版本数据就是一个时间戳,可以再定义表时动态设置保存行的版本数量,默认版本数为1,同一行的不同版本的数据是按时间戳倒叙排列的,而其他数据如rowkey和列标识是按字典顺序排列的,这也是读数据操作的一种优化手段。对于某一行,当保存的行的版本数大于设置的值后,最老的版本的数据行就会在执行Major compaction时被删除掉。版本数据是默认添加的,其值时保存数据时的时间戳,long型(长整型)。而系型数据库的表没有此概念。
Cell:在HBase表中,是由rowkey + (colomn family:colomn qualifier) + version来标识一个cell,用户保存的具体数据是保存在这个cell中的,它的值时byte[]类型的,需要在客户端将之改为需要的类型。
table、row、rowkey、colomn family、colomn qualifier、version(timestamp)和cell示意图
对于上图可以看出:
rowkey ->jacky20130429 jacky20130430
comlom family -> info events
version ->t3 t6 t9等
colomn qualifier -> email sex address type name
对于表的2个列族info和events,会被分别保存到磁盘上。
由于
【jacky20130429,info,email,t9】 ------> jacky@163.com,故HBase可以被看做是key-value的数据库。另外,HBase也可以被看做有排序的Map的Map:
SortedMap<
Rowkey,List<
SortedMap<
Colomn,List<
value,timestamp
>
>
>
>
第一层的SortedMap代表HBase的HTable,包括一个colomn families的集合,每个列族包括又一层的SortedMap,这层的SortedMap里包括列和相关联的数据的集合。
HBase表中的行是有原子性的,但是一行的不同版本可能分布在不同的storefile文件中,过期失效的数据只能在Major Compaction操作时删除。
- 大小: 39.4 KB
分享到:
相关推荐
通过上述内容可以看出,《HBase权威指南》全面而深入地介绍了HBase的相关知识和技术要点,无论是对于初次接触HBase的新手还是想要深入了解其内部机制的资深开发者来说,都是一本不可多得的好书。该书不仅详细解释了...
《HBase权威指南》是Hadoop生态中关于分布式列式数据库HBase的重要参考资料,它深入浅出地介绍了如何利用HBase构建大规模数据存储系统。这本书与《Hadoop权威指南》一起,构成了理解大数据处理和存储的关键知识体系...
每个单元格由行键、列族、列和时间戳唯一标识,可以有多个版本,以追踪数据的历史变化。 HBase的架构基于Bigtable的设计,主要组件包括Master服务器、RegionServer和Zookeeper。Master负责表和Region的管理,包括...
《HBase权威指南》是一本深入探讨Apache HBase这一分布式列式数据库的著作,源码则是作者为了辅助读者理解书中理论知识而提供的实践材料。HBase是构建在Hadoop文件系统(HDFS)之上的开源数据库,专为处理大规模数据...
hbase权威指南中文完整版pdf 12章+6附录
《HBase权威指南》是一本深入探讨分布式列式数据库HBase的专业书籍,其配套源码提供了书中所提及的示例代码和实践案例,方便读者更好地理解和应用HBase。以下将详细解析HBase的相关知识点。 HBase是建立在Apache ...
3. **数据模型**:HBase的数据模型基于行、列族、列和时间戳。每行由行键(Row Key)唯一标识,列族是数据的逻辑组,列是具体的数据项,时间戳用于存储同一单元格内的多版本数据。 4. **读写流程**:读取操作首先...
HBase的表设计策略是学习的重点之一,书中的内容可能涵盖如何选择合适的行键和列族,以及如何利用时间戳来管理版本化数据。此外,还会有关于数据分布和负载均衡的策略,以确保数据的均匀分布和系统性能。 监控和...
《HBase权威指南》是一本深入探讨分布式大数据存储系统HBase的专业书籍,其源代码的提供为读者提供了更直观的学习材料。HBase是基于Apache Hadoop的非关系型数据库(NoSQL),它在大规模数据存储方面表现卓越,尤其...
《HBase权威指南》是一本深入探讨分布式大数据存储系统HBase的专业书籍,旨在为读者提供全面、详尽的HBase知识。这本书涵盖了从基础概念到高级应用,包括HBase的架构设计、数据模型、表设计策略、性能优化、监控与...
带有详细目录的 HBase权威指南中文版.pdf
《hbase权威指南》探讨了如何通过使用与hbase高度集成的hadoop将hbase的可伸缩性变得简单;把大型数据集分布到相对廉价的商业服务器集群中;使用本地java客户端,或者通过提供了rest、avro和thrift应用编程接口的...
《HBase权威指南》是大数据领域的一本经典著作,它深入浅出地介绍了HBase这一分布式列存储系统。HBase是构建在Hadoop生态系统之上的,用于处理大规模数据的NoSQL数据库,尤其适合实时读写操作。这本书的示例代码提供...
HBase权威指南中文版
### HBase权威指南知识点梳理 #### 一、HBase简介与文档版本说明 - **文档来源及版权**:本文档为HBase官方文档中文版,版权所有归2012年Apache Software Foundation所有。 - **文档版本历史**:修订版本0.95-...
HBase基于Google的Bigtable论文设计,采用列族(Column Family)存储模型,支持动态列和时间戳,这使得它在处理稀疏数据时尤为高效。书中详细阐述了这些特性,以及如何根据业务需求进行表设计。 接着,书中深入讨论...