【大数据】Hbase

1.概述

Apache HBase是基于Hadoop构建的一个面向列的,分布式的、可伸缩的海量数据存储的数据库。和mapreduce不同,它是实时的。它的数据也存在于hdfs之上,可以做到交互式。主要用来存储非结构化,半结构化的松散数据

Hbase的设计思想来源于LSM树

HBase和elasticsearch

hbase做搜索不如ES,但是HBASE更适合大批量的存储,如果ES把很多不需要查询的字段也都存进去了,那么会显著降低查询的性能,我们可以在ES存储查询的字段,然后把真正的数据存到hbase里面。
在这里插入图片描述

行式存储和列式存储
1.行式存储

以行位单位,底层每一行存储在一起。
行式存储维护大量索引,随机读效率高。最大的特点对事务支持好。
表与表之间关联,且数据量不大。线性扩展性不高,数据量不超过1亿。

2.列式存储

以列为单位,第一列存储完之后存第二列。
列式存储将每一列数据聚合在一起,利用列的相似性原理,便于压缩。查找不同列可以使用并行查询。
获取单列,多列可以使用并行,更新不多,对事务不高。

Hbase和Hive的不同

Hive是不能支持交互式查询的,Hbase是支持实时查询的.Hive不支持更新操作.
Hive适合用来对一段时间内的数据进行分析查询,例如,用来计算趋势或者网站的日志。Hive不应该用来进行实时的查询。因为它需要很长时间才可以返回结果。
Hbase适合非常大量数据的实时查询

二 什么时候用Hbase

HBase常被用来存放一些海量的(通常在TB级别以上)结构比较简单的数据,如历史订单记录,日志数据,监控Metris数据等等,HBase提供了简单的基于Key值的快速查询能力。

三 Hbase难点
1.表结构设计
2.hbase优化
四 Hbase数据模型

在这里插入图片描述

  • 每个表有且仅有一列是rowkey,rowkey相同的是一行。
  • timestamp是描述版本的,hbase不能做修改,所以使用时间戳来记录版本,可以清理过时的数据,用这种方式hbase是可以做删除的。
  • CF1 CF2 CF3叫做列族,HBASE表中每个列都属于某个列族,创建表的时候必须创建列族,但是不需要创建列。如create ‘test’,‘course’;HBASE同一列族里面的数据存储在同一目录下,由几个文件保存。权限控制,存储,调优都是以列族为单位,列族不超过2-3个。
  • 列名以列族为前缀,每个列族都可以拥有多个列成员。如course:math,course:english,列族的列可以动态增减。
  • CF2:q1=val3所在的单元格由rowkey,timestamp以及列族决定,和列没有关系,因为列是可以动态定义的。它是未解析的字节数组
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值