Hbase
HBase即Hadoop Database,是高可靠、高性能,面向列、可伸缩的分布式存储系统,利用HBase可以对大表数据的读、写达到实时级别。
面向列是指的是面向列检索,表的结构与mysql 类似。
每个记录的组成: 行(主)键(可重复)、时间戳、列族(一个列族包含多条属性 可以理解为一个对象)
由于行键可以重复,可以借助列主键(第二维)或者时间戳 达到精确定位
Hbase不支持条件查询和分组查询,只能通过行主键进行查询
注:
一个HMaster 管理着多个Datanode(每一个Datanode 运行一个(或多个)HRegionSerer)
Region 对表进行划分的基础单位(按照行的方向进行划分)。
Region包含若干Hstore,每一个Hstore对应一个列族。
Hbase的应用场景
-
对象存储:我们知道不少的头条类、新闻类的的新闻、网页、图片存储在HBase之中,一些病毒公司的病毒库也是存储在HBase之中
-
时序数据:HBase之上有OpenTSDB模块,可以满足时序类场景的需求
-
推荐画像:特别是用户的画像,是一个比较大的稀疏矩阵,蚂蚁的风控就是构建在HBase之上
-
时空数据:主要是轨迹、气象网格之类,滴滴打车的轨迹数据主要存在HBase之中,另外在技术所有大一点的数据量的车联网企业,数据都是存在HBase之中
-
CubeDB
OLAP:Kylin一个cube分析工具,底层的数据就是存储在HBase之中,不少客户自己基于离线计算构建cube存储在hbase之中,满足在线报表查询的需求 -
消息/订单:在电信领域、银行领域,不少的订单查询底层的存储,另外不少通信、消息同步的应用构建在HBase之上
-
Feeds流:典型的应用就是xx朋友圈类似的应用
-
NewSQL:之上有Phoenix的插件,可以满足二级索引、SQL的需求,对接传统数据需要SQL非事务的需求
Hbase与Cassandra的区别
Hbase优势在于读;
Cassandra优势在于写