HBase物理、逻辑存储基本概念

 HBase是一个分布式海量列式非关系型数据库系统,可以提供超大规模数据集的实时随机读写。

何所谓列式存储?

Mysql中在建表的时候需要规定好列,即便数据有个别列没有数据,但是Mysql也会给这些列预留存储空间,防止这些列的数据后续插入,这也是Mysql的存储机制。

但是在HBase中,因为是列式存储,只有三个列有数据,那么这条数据就只有三个列,这样子很好的减少了存储空间的占用,提高利用率。同时存储时候也支持多列存储。

 一,HBase特点与应用

特点:

  • 海量存储: 底层基于HDFS(海量文件系统)存储海量数据
  • 列式存储:HBase表的数据是基于列族进行存储的,一个列族包含若干列
  • 极易扩展:底层依赖HDFS,当磁盘空间不足的时候,只需要动态增加DataNode服务节点就可以
  • 高并发:支持高并发的读写请求
  • 稀疏:稀疏主要是针对HBase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情 况下,是不会占用存储空间的。
  • 数据的多版本:HBase表中的数据可以有多个版本值,默认情况下是根据版本号去区分,版本号就 是插入数据的时间戳
  • 数据类型单一:所有的数据在HBase中是以字节数组进行存储

应用:

  • 交通方面:船舶GPS信息,每天有上千万左右的数据存储。
  • 金融方面:消费信息、贷款信息、信用卡还款信息等
  • 电商方面:电商网站的交易信息、物流信息、游览信息等
  • 电商方面:电商网站的交易信息、物流信息、游览信息等

HBase适合海量明细数据的存储,并且后期需要有很好的查询性能。但是也不是所有的情况下都适合使用,更多情况是基于数据的来源不确定的因素很多,导致了不确定的列很多,或是因为数据的多样性会导致传统数据库,例入Mysql表中对于某些数据某些列用不到,但是对于某些数据这些列又是必要的情况下,且数据海量,这时候HBase相比较下更适用。 

二,HBase逻辑存储&物理存储、基础概念

逻辑存储基本概念 :(HBase依然保持表的存储概念)

  • 主键: 同传统数据唯一性,按照字典顺序排序
  • 列族: 之前有说过HBase可以让一个表中每一条数据的列不同,而这些同属大类型的列被归并到一个列族中
  • Region:这里有点像是之前Mysql分表,HBase并不是一张表的形式进行存储,会将一张表横向切割,每个部分为一个Region,如果数据量过大时候,还会对之前切割的Region进行再切分优化
  • Store:  这里涉及物理存储,HBase表存储的时候写入文件中去是按照列族去写入的,如下图中的蓝色框,一个Region中按照列族去切分,一个列族为一个store

物理存储基本概念:

上面有对Store的概念进行说明,下面的部分则为Store存储的方式:

 * 另外一些基本的概念:

猜你喜欢

转载自blog.csdn.net/qq_42773863/article/details/121366119