每日一篇大数据数据库

(一).HBase入门-HBase简介和传统关系型数据库的不足

2018-10-23  本文已影响103人  sixleaves

一.什么是HBase

HBase是一个高可靠性,高性能,面相列,可伸缩的分布式存储系统.HBase是基于 hadoop的分布式文件系统(HDFS).HBase是基于Google基于发表的BigTable论文实现的nosql(not only sql 不仅仅是数据库)类型数据库.

HBase不是关系型数据库, 其表可以是稀疏的, 所以其非常适合存储非结构化数据..当然也能存储结构化数据.

二.HBase的优势,解决的问题

在聊HBase的优势之前,我们要先来聊聊为什么我们不用关系型数据库存储,以MySQL为例,分析对于关系型数据库我们存储数据所面临的问题和对应的解决措施.

MySQL如何应对大数据问题

问题1: 对于查询来说,很多表中的列是没有用的.我们往往只需要少数的列

假设我们有如下的User表-User表,记录个人的详细信息.(这里只列出一条数据做例子,假设有一亿条数据)

ID NAME PASSWD AGE TEL EMAIL ADD
1 zs 123 18 18611111 110@qq.com beijing

但是我们往往需求中只需要部分的列,例如我们只需要查zs的基本信息,如年龄,名字,电话.其他详细信息我们并不需要, 这时候的sql语句是select name,age,tel from user where name='zs'.

分析1

解决方案1
对于这样的情况,我们往往会将表进行按列拆分,可以理解为按列分类,我们又将这种表称为宽表, 例如将User表分为用户基础信息表用户详情信息表

问题2: 尽管问题一提高了查询效率,但是当单表的达到300W就开始变慢,超过500W条性能会下降特别明显.这时候我们还需要再做优化.

分析2

解决方案2

问题3: 经过问题2的优化,我们已经将负载均摊掉.但是对于优化是服务端做的事,客户端并不知道.所以我们要提供负载均衡器.

分析3

MySQL存在的问题

尽管MySQL通过水平和纵向的分表,分服务器能够一定程度上解决大量数据带来的性能下降问题.但是对于PB级别的大数据,其依然无能为力.

而MySQL的这些问题,通通的被我要介绍的HBase数据库框架解决了.

上一篇下一篇

猜你喜欢

热点阅读