专栏:大数据核心原理与实践

HBase适用场景

首先在搞HBase之前我们要对其建立感性认识,其适用场景如下:

  • 并发、简单、随机查询。
    (注:HBase不太擅长复杂join查询,但可以通过二级索引全局索引的方式来优化性能,后续博文会进行讲解)
  • 半结构化、非结构化数据存储。

一般我们从数仓中离线统计分析海量数据,将得到的结果插入HBase中用于实时查询。

HBase表结构

这里以一个公司员工表为案例来讲解,此表中包含员工基本信息(员工姓名、年龄),员工详细信息(工资、角色),以及时间戳。整体表结构如下:

如上,每一行有一个RowKey用于唯一地标识和定位行,各行数据按RowKey的字典序排列。其中ImployeeBasicInfoCLF和DetailInfoCLF是两个列族,列族下又有多个具体列。(员工基本信息列族:姓名、年龄。详细信息列族:薪水、角色)

(注1:图中列族下面每一行中特定列中只画了最新版本的数据,实际上HBase最小存储单元为cell,图中每个单元格中其实有多个MVCC version版本的cell,Hbase的更新操作会带时间戳,对每个数据单元cell,可存取指定数量版本的cell,client端可以指定查询某时间点后的最新数据,也可以一次性得到cell的所有版本。)
(注2:刚刚评论里有同学提到cell的概念,这里详细说一下,cell里可得道的信息包含: row、 column family、 column qualifier(列限定符)、timestamp、type6、MVCC version、value。其中每个cell 由 row、column family、column qualifier、timestamp,、and type唯一标识。
HBase Cell 参考链接(Apache HBase API)

HBase数据模型

  • 命名空间
    命名空间是对表的逻辑分组,不同的命名空间类似于关系型数据库中的不同的Database数据库。利用命名空间,在多租户场景下可做到更好的资源和数据隔离。


  • 对应于关系型数据库中的一张张表,HBase以“表”为单位组织数据,表由多行组成。


  • 行由一个RowKey和多个列族组成,一个行有一个RowKey,用来唯一标示。

  • 列族
    每一行由若干列族组成,每个列族下可包含多个列,如上ImployeeBasicInfoCLF和DetailInfoCLF即是两个列族。列族是列共性的一些体现。注意:物理上,同一列族的数据存储在一起的。

  • 列限定符
    列由列族和列限定符唯一指定,像如上的name、age即是ImployeeBasicInfoCLF列族的列限定符。

  • 单元格
    单元格由RowKey、列族、列限定符唯一定位,单元格之中存放一个值(Value)和一个版本号。

  • 时间戳
    单元格内不同版本的值按时间倒序排列,最新的数据排在最前面

HBase表特点

  • 数据规模大,单表可容纳数十亿行,上百万列。
  • 无模式,不像关系型数据库有严格的Scheme,每行可以有任意多的列,列可以动态增加,不同行可以有不同的列,列的类型没有限制。
  • 稀疏,值为空的列不占存储空间,表可以非常稀疏,但实际存储时,能进行压缩。
  • 面向列族,面向列族的存储和权限控制,支持列族独立查询。
  • 数据多版本,利用时间戳来标识版本
  • 数据无类型,所有数据以字节数据形式存储

这篇比较基础,介绍了HBase的适用场景、表的形式、数据模型以及特点,主要是让大家从感性上认识HBase。

HBase系列(一):HBase表结构及数据模型的理解相关推荐

  1. java建站系统开发教程系列之设计表结构

    java建站系统开发教程系列之设计表结构 根据需求设计表结构如下: SET FOREIGN_KEY_CHECKS=0; -- Table structure for tbl_articles -- - ...

  2. hbase数据库介绍,HBASE的特点,表结构逻辑视图,Row Key,列族,时间戳,Cell

    HBASE数据库 1. Hbase基础 1.1 hbase数据库介绍 1.简介nosql hbase是bigtable的开源java版本.是建立在hdfs之上,提供高可靠性.高性能.列存储.可伸缩.实 ...

  3. 【大数据HBase系列】 HBase面试题整理

    文章目录 HBase面试题整理(一) 1. HBase的特点是什么? 2.HBase和Hive的区别? 3.HBase适用于怎样的情景? 4.描述HBase的rowKey的设计原则?(☆☆☆☆☆) 5 ...

  4. HBase系列从入门到精通(三)

    1.整合Phoenix 1.1.Phoenix简介 1.1.1.Phoenix定义 Phoenix是HBase的开源SQL皮肤.可以使用标准JDBC API代替HBase客户端API来创建表,插入数据 ...

  5. zabbix数据库表结构简单解析

    zabbix数据库表结构-持续更新 时间 2014-06-11 21:59:08  furion's blog 原文  http://www.furion.info/623.html 主题 MySQL ...

  6. 【Zabbix】 Zabbix表结构说明【转载】

    本文转自[https://www.cnblogs.com/shhnwangjian/p/5484352.html] 参考文[https://www.cnblogs.com/learningJAVA/p ...

  7. zabbix数据库表结构

    zabbix数据库表结构的重要性 想理解zabbix的前端代码.做深入的二次开发,甚至的调优,那就不能不了解数据库的表结构了. 我们这里采用的zabbix1.8.mysql,所以简单的说下我们mysq ...

  8. hbase查看表结构_HBase

    HBase 是一种分布式.可扩展.支持海量数据存储的NoSQL 数据库. 逻辑结构 物理存储结构 数据模型 逻辑上,HBase的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列.HBase的 ...

  9. HBase -ROOT-和.META.表结构

    在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的RegionServer.什么叫相应的RegionServer?就是管理你要操 ...

最新文章

  1. mysql 开启慢查询命令【转】
  2. 使用Aspose.Pdf for .NET实现PDF文档到Excel、EPS、SVG等的转换
  3. 如果让你拥有100万粉丝,你会做什么
  4. 小学计算机试教教案,小学信息技术人教版三年级下册第7课《轻轻松松来上网》优质课公开课教案教师资格证面试试讲教案...
  5. Android持久化存储(3)SQLite数据库的使用
  6. mysql分组后去重复数据_mysql去掉重复数据只保留一条,以及取分组后的一条数据...
  7. 1.7 空间正交分解
  8. 绝望:对不完的数,加不完的班
  9. Android Studio导入项目非常慢的解决办法
  10. java使用UDP数据报通讯方式QQ聊天系统:服务器、客户端
  11. 背包问题 尽可能大和大于某个值 为什么是一样意思
  12. 测试人员必知的软件测试文档有哪些
  13. Emmet的HTML语法(敲代码的快捷方式)
  14. java 中级面试题_java中级面试题
  15. 一文读懂运放偏置电流和输入失调电流
  16. 传统Tier1“大象转身”:不够快?你永远没有机会
  17. Day4:《卫报》:我们正面临着第六次大灭绝吗?
  18. 人生七年,耗时56年跟拍14个孩子,结局道尽人生残酷真相
  19. Odoo 继承对象增加属性,不显示protal o_affix_enabled 内容
  20. python中round函数的精度保留方法---四舍六入五成双

热门文章

  1. linux logo程序设计,教你在线设计一个简单美观的LOGO
  2. 计算机对电影工业的影响的英语作文,看电影的好处The Advantages of Watching Movies
  3. 如何兼容IE4:Web浏览器兼容性浅谈
  4. 如何将wps中的表格转为图片,并设置较高的dpi
  5. html5第一人,中国高空走钢丝第一人,阿迪力·吾休尔(创5项世界纪录)
  6. (七)Java垃圾收集器详解
  7. 企业即时通讯软件是什么?它有哪些优势呢?
  8. Docker--网络详解
  9. 血栓清道夫机器人_国内首台机器人“清道夫” 6天清理5公里海底隧道
  10. 模拟后台接收短信验证码