栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

HBase数据模型(NameSpace、 RowKey、Column Family 列簇)

HBase数据模型(NameSpace、 RowKey、Column Family 列簇)

Hbase数据模型
概念 描述
  • Hbase 是一个稀疏的、分布式、持久、多维、排序的映射,它以**行键(row key),列簇(columnFamily),列名(Column Qualifier)和时间戳(timestamp)为索引。
图解

注意
  • 1、MySQL使用 行+ 列 定位数据
  • 2、Hbase类似于坐标系(x,y,z),多维定位数据
  • 3、Hbase 列簇、列名、时间戳,面向列进行存储
数据结构内容
NameSpace 命名空间 | 数据库
  • 注意

    • 1、命名空间是类似于关系数据库系统中的数据库的概念,他其实是***表的逻辑分组***。这种抽象为多租户相关功能奠定了基础。

    • 2、命名空间是可以管理维护的,可以创建,删除或更改命名空间

    • 3、Hbase有两个特殊预定义的命名空间:

      • 1、default - 没有明确指定名称空间的表将自动落入此名称空间
      • 2、hbase - 系统命名空间,用于包含Hbase内部表
  • 描述

    • 1、为了保护我们的表,所采用的更高层次的单位
    • 2、表的逻辑分组
Table 表
  • 描述

    • 1、存储相同数据的一个逻辑单元
    • 2、Hbase的table由多个行组成,行有很多列组成
    • 3、Hbase是一个半结构的数据库,所以每一行的列都有可能是不同
  • 图文

RowKey 主键
  • 注意

    • 1、RowKey 是用来检索记录的主键,是一行数据的唯一标识
    • 2、RowKey行键 (RowKey)可以是任意字符串(最大长度是64KB,实际应用中长度一般为 10-100bytes),RowKey以字节数组保存。
    • 3、存储时,数据按照RowKey的字典序(byte order)排序存储。设计RowKey时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。
  • 描述

    • 1、可以理解为一行数据的主键
    • 2、Hbase按照列进行存储,所以我们查询数据的时候会看到很多RowKey相同的列
    • 3、RowKey可以看做成主键:最多可以有64K字节组成,一般为 10~40 个字节即可
      • 将来设计 RowKey 是 Hbase 使用的重中之重
    • 4、RowKey 存储的时候默认以字典序排序
Column Family 列簇
  • 注意

    • 1、列簇在物理上包含了许多的列与列的值,每个列簇都有一些存储的属性可配置
      • 例如是否使用缓存,压缩类型,存储版本数等。在表中,每一行都有相同的列簇,尽管有些列簇什么东西也没有存。
    • 2、将功能属性相近的列放在同一个列簇,而且同一个列簇中的列会存放在同一个Store中
    • 3、列簇一般需要在创建表的时候就进行声明,而且一般一个表中的列簇数不要超过3个
      • 这个和后期的优化相关
    • 4、列隶属于列簇,列簇隶属于表
  • 描述

    • 1、可以理解为多个列的集合
    • 2、方便队列进行查找和管理
    • 3、一个表的列簇需要在使用前声明(创建表,后期维护表)
    • 4、列隶属于列簇,列簇隶属于表
    • 5、一个表中列簇是固定的,但是列簇中列是不固定的
Column Qualifier 列
  • 注意

    • 1、列簇的限定词,理解为列的唯一标识。
      • 但是列标识是可以改变的,因此每一行可能有不同的列标识
    • 2、使用的时候必须 列簇:列
    • 3、列可以根据需求动态添加或者删除,同一个表中不同行的数据列都可以不同
  • 描述

    • 1、一个列簇中的列是不固定的
    • 2、又肯有的数据行一个列簇中有3个列,有的行相同列簇有8个列
Timestamp 数据版本
  • 注意

    • 1、通过rowkey和column family,column qualifier确定的一个存贮单元通过时间戳来索引。
      • 时间戳的类型是 64 位整型
      • 默认时间戳是精确到毫秒的当前系统时间。
      • 时间戳也可以由客户显式赋值,如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。
    • 2、每个cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面
      • 查询数据的时候,如果不指定版本数,默认显示版本号最新(高)的数据
    • 3、为了避免数据存在过多版本中造成管理 (包括存贮和索引)负担,Hbase 提供了两种数据版本回收方式。
      • 一是保存数据的最后n个版本
      • 二是保存最近一段时间内的版本(比如最近七天)。
  • 描述

    • 默认就是时间戳,解决HDFS不能随时修改数据的弊端
    • 默认数据版本就是时间戳
    • 查询数据的时候默认显示最新的数据
Cell 数据
  • 注意

    • 1、Cell是由row,column family,column qualifier,version 组成的
    • 2、cell中的数据是没有类型的,全部是字节码形式存贮。
      • 因为HDFS上的数据都是字节数组
  • 描述

    • row,column family,column qualifier,version 所有的数据都是字符串

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/583859.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号