HBase 学习第 3 天:HBase 数据模型及架构详解

一、HBase 数据库是什么

  • HBase 是一个高可靠性、高性能、面向列、可伸缩、实时读写的分布式数据库
  • HBase 是一个利用 HDFS 来存储数据、利用 MapReduce 来处理数据、利用 Zookeeper 作为其分布式协同服务
  • HBase 主要用于存储非结构化和半结构化的松散数据—NoSql 数据库
  • HBase 的数据读写是将数据作标记,删除数据时并不是将数据直接在磁盘中删除,读取的时候是看标记

二、HBase 从哪里来

HBase 是来源于 Fay Chang 所撰写的 Google 论文 “Bigtable :

一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(FileSystem)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase 是 Apache 的 Hadoop 项目的子项目。HBase不同于一般的关系数据库,是一个适合于非结构化数据存储的数据库。

三、HBase 数据模型

HBase 数据模型是稀疏结构的数据,数据存储模型如下图所示:
2324243

如上图所示,以关系型数据的思维会感觉这是一张表,但是在 HBase 中这种理解是错误的,在 HBase 中上面的表格显示的只是一行数据;其中各单元格标题描述如下所示

1、RowKey

(1)决定一行数据的唯一标识

(2) RowKey 是按照字典顺序排序的

(3)RowKey 最多只能存储64k的字节数据,RowKey 设计越短越好

(4)Column Family列族(CF1、CF2、CF3) & qualifier列:

  • HBase表中的每个列都归属于某个列族,列族必须作为表模式(schema) 定义的一部分预先给出。如create ‘test’, ‘info’;
  • 列名以列族作为前缀,每个“列族”都可以有多个列成员(column,每个列族中可以存放几千~上千万个列);如 CF1:q1, CF2:qw,
  • 新的列族成员(列)可以随后按需、动态加入,Family下面可以有多个 Qualifier,所以可以简单的理解为,HBase中的列是二级列,也就是说 Family 是第一级列,Qualifier 是第二级列。两个是父子关系
  • 权限控制、存储以及调优都是在列族层面进行的
  • HBase把同一列族里面的数据存储在同一目录下,由几个文件保存
  • 目前为止 HBase 的列族能够很好处理最多不超过3个列族
2、时间戳(Timestamp
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值