加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 大数据 > 正文

20张图带你到HBase的世界看看

发布时间:2021-06-04 12:10:55 所属栏目:大数据 来源:互联网
导读:1 HBase 浅析 1.1 HBase 是啥 HBase 是一款面向列存储,用于存储处理海量数据的 NoSQL 数据库。它的理论原型是Google 的 BigTable 论文。你可以认为 HBase 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。 HBase 的存储是基于HDFS的,HDFS 有着高
1 HBase 浅析
1.1 HBase 是啥
HBase 是一款面向列存储,用于存储处理海量数据的 NoSQL 数据库。它的理论原型是Google 的 BigTable 论文。你可以认为 HBase 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。
HBase 的存储是基于HDFS的,HDFS 有着高容错性的特点,被设计用来部署在低廉的硬件上,基于 Hadoop 意味着 HBase 与生俱来的超强的扩展性和吞吐量。
HBase 采用的时key/value的存储方式,这意味着,即使随着数据量的增大,也几乎不会导致查询性能的下降。HBase 又是一个面向列存储的数据库,当表的字段很多时,可以把其中几个字段独立出来放在一部分机器上,而另外几个字段放到另一部分机器上,充分分散了负载的压力。如此复杂的存储结构和分布式的存储方式,带来的代价就是即便是存储很少的数据,也不会很快。
HBase 并不是足够快,只是数据量很大的时候慢的不明显。HBase主要用在以下两种情况:
单表数据量超过千万,而且并发量很大。
数据分析需求较弱,或者不需要那么实时灵活。
1.2 HBase 的由来
我们知道 Mysql 是一个关系型数据库,学数据库的时第一个接触的就是 MySQL 了。但是 MySQL 的性能瓶颈是很大的,一般单个table行数不宜超过500万行,大小不宜超过2G。
我们以互联网公司最核心用户表为例,当数据量达到千万甚至亿级别时候,尽管你可以通过各种优化来提速查询,但是对单条数据的检索耗时还是会超出你的预期!看下这个User表:
 
假如查询 id=1 这条数据对应的用户name,系统会给我们返回aa。但由于MySQL是以行为位单位存储的,当查 name 时却需要查询一整行的数据,连 age 和 email 也会被查出来!如果列非常多,那么查询效率可想而知了。
我们称列过多的表为宽表,优化方法一般就是对列进行竖直拆分:
 
此时查找 name 时只需要查找 user_basic 表,没有多余的字段,查询效率就会很快。如果一张表的行过多,会影响查询效率,我们将这样的表称之为高表,可以采用水平拆表的方式提高效率:
 
这种水平拆分应用比较多的 场景就是日志表,日志信息每天产生很多,可以按月/按日进行水平拆分,这样就实现了高表变矮。

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读