HBase笔记(一)-入门介绍

一、什么是HBase

HBase(Hadoop database)是一种构建在HDFS之上的分布式、面向列的和提供高可靠性、高性能、可伸缩、实时读写的开源数据库系统,在需要实时读写、随机访问超大规模数据集时,可以使用HBase。

HBase的技术来源于Google论文”Bigtable:一个结构化数据的分布式存储系统”。HBase 是Bigtable 的开源实现,它利用Hadoop HDFS 作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据;,利用Zookeeper来协同服务。

二、HBase的特点

HBASE的特点如下:

:一个表可以有上亿行,上百万列

面向列:面向列族的存储和权限控制,列独立检索

稀疏:空(NULL列不被存储,不占用存储空间 ,因此表可以设计的很稀疏

面向列:面向列(族)的存储和权限控制,列(族)独立检索。

无模式:每一行都有一个主键和任意多的列,列可以根据需要动态增加,同一张表中不同的行可以有截然不同的列

多版本:每个单元中的数据可以有多个版本,默认情况下,版本号自动分配,版本号是单元格插入时的时间戳

数据类型单一HBase中的数据都是字符串,没有类型

三、HBase的优点

关系型数据库面临的问题:

  1. 面向行意味着表中的行是一行一行地进行存储,当进行查询时,将查询整个行的信息。如select username from student,虽说我们只要username这个字段,但是面向行的机制就把所有字段的信息都加载到内存当中,导致I/O效率低下。

  2. 在RDBMS中,因为事先已经定义了每个字段的类型、大小,所以即使该字段没值也将占用存储空间,导致空间利用率不高。

HBase不同于一般的关系数据库,是一个适合非结构化数据存储的数据库,基于列而不是基于行的模式,主要用来存储非结构化和半结构化的松散数据。 它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表连接等复杂操作)。HBase不是关系型数据库,也不支持SQL,HBase面向列是把列族存放在不同的文件当中,比如经常访问其中的一个列族A,其它列族很少访问,那么当访问A列族的时候就不需要去访问其它列族所存放的文件,可以提高I/O效率。

HBase从另一个角度处理伸缩性问题,它通过线性方式从下到上增加节点来进行扩展,与Hadoop一样HBase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。

四、HBase的应用场景

HBase的数据模型比较简单,数据按照RowKey排序存放,适合HBase存储的数据,可以简单总结如下:

  • 以实体为中心的数据

   实体可以包括但不限于如下几种:

  1. 自然人/账户/手机号/车辆相关数据

  2. 用户画像数据(含标签类数据)

  3. 图数据(关系类数据)

    描述这些实体的,可以有基础属性信息、实体关系(图数据)、所发生的事件(如交易记录、车辆轨迹点)等等。

  • 以事件为中心的数据

  1. 监控数据

  2. 时序数据

  3. 实时位置类数据

  4. 消息/日志类数据

上面所描述的这些数据,有的是结构化数据,有的是半结构化或非结构化数据。HBase的“稀疏矩阵”设计,使其应对非结构化数据存储时能够得心应手。

HBase擅长于存储结构简单的海量数据但索引能力有限,而Oracle等传统关系型数据库(RDBMS)能够提供丰富的查询能力,但却疲于应对TB级别的海量数据存储,HBase对传统的RDBMS并不是取代关系,而是一种补充。

 总之,HBASE适合存储检索方式单一、列需要动态增加、数据量巨大的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值