这篇文章主要为大家展示了“HBase的特点有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HBase的特点有哪些”这篇文章吧。
HBase是一个NoSQL的数据库产品,用于解决海量数据的毫秒级简单查询的问题.
HBase的特点:
表(table)--用于存储数据的,数据也是存放在表中.
行(row)--嵌套的说法.
行键(row key)--类似于主键,也是用于区分每一行的.
列簇(column family)--列的集合.
列(column)--相当于RDBMS中的字段.
单元格(cell)--单元格用于存储数据的.
多个版本的数据--带有时间戳的数据.
hbase中的数据都是字节数组存储的,所以比较时按照一个个字节比较.
hbase中的记录是按照rowkey排序存储的.
hbase中的列簇根据大小划分为很多的region,不同的region可以存储在不同的region服务器中.那么
海量数据的查询就可以转换为并行查询了.
预分区操作是指的是在建表的时候,预先划分成指定数量的region,插入数据时均匀的分散到不
同的region中.
在hbase中,有一张表叫做.META.,里面存储的是用户表的regionserver与rowkey的映射关系.
在hbase中,有一张表叫做-ROOT-,里面存储的是.META.的rowkey与regionserver的映射关系.
表示hbase某张表中的一行记录,看rowkey确定一行记录.
行中有很多列,这些列分到很多列簇中存储.
每一行列簇是一个独立的存储文件.
关于Hbase的一些提问:
问:为什么一行记录含有多个时间戳的值?
答:因为这样能够体现聚合的思想,实际上体现了RDBMS中的一对多问题.
问:为什么一行记录按照列簇分成独立的物理文件存储,而不是一行记录全部放到一起存储?
答:因为查询时,一行记录并不是全部字段都需要,只需要一部分字段.如果一行记录所有字段的值放在一起的
话,那么一次性读取所有字段,显然很浪费.分别存储的话,一次查询只需要少量字段,那么整体的查询
吞吐量就会提高.
问:建立索引时为什么key是regionserver,value是rowkey,而不是相反的哪?
答:因为rowkey的数量太大了,按照上面的方式建立索引的话,映射数据流就太大.
问:设计rowkey是hbase表设计中的重点?
答:(1)因为hbase查询默认是按照rowkey查询,因此业务上最需要的查询条件应该设计到rowkey的组成中.
(2)因为hbase表分区的话,那么再插入数据的时候容易产生热点,为了避免热点,插入数据应该尽可能
随机,需要主要rowkey的设计,最好是rowkey的开始节点都是随机的或者接近随机的.
以上是“HBase的特点有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。