一·HBase特点
1. 高速写入:高速写入,对读取需求比较小。
2.大数据:分布式存储,海量数据搞得定。不用担心无限增长的数据。
3. 可靠:写入的不是内存,是硬盘,高性能
4. 查询简单:不需要复杂查询条件来查询数据的应用,HBase只支持基于rowkey的查询,对于HBase来说,单条记录或者小范围的查询是可以接受的。
Hbase使用场景1:对象存储
我们知道不少的头条类、新闻类的的新闻、网页、图片存储在HBase之中,一些病毒公司的病毒库也是存储在HBase之中。
Hbase使用场景2:时序数据
HBase之上有OpenTSDB模块,可以满足时序类场景的需求。
Hbase使用场景3:用户画像
特别是用户的画像,是一个比较大的稀疏矩阵,蚂蚁的风控就是构建在HBase之上。
Hbase使用场景4:时空数据
主要是轨迹、气象网格之类,滴滴打车的轨迹数据主要存在HBase之中,另外在技术所有大一点的数据量的车联网企业,数据都是存在HBase之中。
Hbase使用场景5:CubeDB OLAP
Kylin一个cube分析工具,底层的数据就是存储在HBase之中,不少客户自己基于离线计算构建cube存储在hbase之中,满足在线报表查询的需求。
Hbase使用场景5:消息/订单
在电信领域、银行领域,不少的订单查询底层的存储,另外不少通信、消息同步的应用构建在HBase之上。聊天系统的日志存储。Facebook的在线聊天,每天数据量近百亿。哨兵监控系统,云信历史数据,日志归档数据等一系列重要应用底层都由HBase提供服务。
二·HBase与关系型数据库的区别
1.数据类型,HBase只有简单的字符类型,所有的类型都是交由用户自己处理,它只保存字符串。而关系数据库有丰富的类型和存储方式。
2.数据操作:HBase只有很简单的插入、查询、删除、清空等操作,表和表之间是分离的,没有复杂的表和表之间的关系,而传统数据库通常有各式各样的函数和连接操作。
3.存储模式:HBase是基于列存储的。而传统的关系型数据库是基于表格结构和行模式保存的
4.数据维护,HBase的更新操作不应该叫更新,它实际上是插入了新的数据,旧数据依然保留。而传统数据库是替换修改
5.可伸缩性,Hbase这能够轻松增加或减少节点的数量,并且对错误的兼容性比较高。而传统数据库很难横向扩展,纵向扩展受限制