为何选择 HBase?大数据存储与处理的卓越之选

前言

 传统的关系型数据库以及 Hadoop 在存储和处理大规模数据时均显现出一定的局限性。一方面,Hadoop 主要用于实现批量数据处理,且以顺序方式对数据进行访问。另一方面,在 Hadoop 中查找数据时需对整个数据集进行搜索,若要进行随机读取数据,其效率相对较低。

Hbase设计理念

 HBase 是为了解决 Hadoop 的局限性而出现的。它是 BigTable 的开源 Java 版本,基于 Hadoop 集群搭建。作为一种 NoSQL 数据库,HBase 与传统的关系型数据库管理系统(RDBMS)有很大差别。它不支持 join 操作,摒弃了关系型模型,且只有一种数据类型 byte[]。HBase 可以存储非常大的表,上亿行数据、超过百万列不在话下,并且常用在实时数据处理中,原因就在于它的读写速度很快。

Hbase逻辑结构

 hbase是以rowkey作为每行数据的唯一标识,用来排序和整理数据的按字典方式存储。hbase除了有行列,还多了列族,还有列名就是数据库的列名。存储是稀疏的,对于为空(nu)的列实际并不占用存储空间

在这里插入图片描述

  • HBase 的物理存储结构。在从用户角度看到的概念视图中,如果有看起来是空的单元格,那么在实际的底层存储中,这些空单元格是不会被保存的,这样可以节省存储空间。

Hbase数据模型

  1. Name Space
     命名空间,类似于关系型数据库的database概念,每个命名空间下有多个表。HBase两个自带的命名空间,分别是hbase和default,hbase中存放的是HBase内置的表,default 表是用户默认使用的命名空间。
  2. Table
     类似于关系型数据库的表概念。不同的是,HBase定义表时只需要声明列族即可,不需要声明具体的列。因为数据存储时稀疏的,所有往HBase写入数据时,字段可以动态、按需
    指定。因此,和关系型数据库相比,HBase能够轻松应对字段变更的场景。
  3. Row
     HBase表中的每行数据都由一个RowKey和多个Column(列)组成,数据是按照RowKey 的字典顺序存储的,并且查询数据时只能根据RowKey进行检索,所以RowKey的设计十分重要。
  4. Column
     HBase中的每个列都由Column Family(列族)和Column Qualifier(列限定符)进行限定,例如info:name,info:age。建表时,只需指明列族,而列限定符无需预先定义。
  5. Time Stamp
     用于标识数据的不同版本(version),每条数据写入时,系统会自动为其加上该字段,
    其值为写入HBase的时间。
  6. Cell
     由{rowkey, column Family:column Qualifier, timestamp} 唯一确定的单元。cell 中的数据全部是字节码形式存贮。

Hbase应用场景

  • 对象存储.
    不少的头条类、新闻类的的新闻、网页、图片存储在HBase之中,一些病毒公司的病毒库也是存储
  • 时序数据
    所有的数据都有时间顺序,可以满足时序类场景的需求.
  • 推荐画像.
    用户画像,是一个比较大的稀疏矩阵,蚂蚁金服的风控就是构建在HBase之上
  • 时空数据
    主要是轨迹、气象网格之类,滴滴打车的轨迹数据主要存在HBase之中,另外在技术所有大一点的数据量的车联网企业,数据都是存在HBase之中,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值