HBase的表结构及相关概念

HBase的表结构

如下:

行键列族1列族2列族3
rowkey1列1列2列3......列N
值1:版本1值1:版本1值1:版本1
值2:版本2值2:版本2
值3:版本3.......
rowkey2列1列2.....列N-1
rowkey3

从上表可得HBase表有如下特点:

1、HBase表由两个要素组成:行键和列族

2、行键是唯一的,行键按照字典序排序存储

3、列族由不定个数的列组成。即使是同一个列族,不同行的数据列也是允许不一致的。例如“row_key_1”和“row_key_2”两行数据的列族“列族1”可以包含完全不同的列,可以有不同数目的列,也可以有不用的列名。

4、某个值可以在HBase里面存储多个版本,最新的版本在最前面。

总结上述几点,唯一确定一个值的要素有5个:表名,行键,列族,列名,版本

相关定义

 RowKey

与nosql数据库们一样,RowKey是用来检索记录的主键。访问HBASE 表中的行,只有三种方式:

        1.通过单个RowKey访问

        2.通过RowKey的range(正则)

        3.全表扫描

RowKey行键 (RowKey)可以是任意字符串(最大长度是64KB,实际应用中长度一般为 10-100bytes),在HBASE内部,RowKey保存为字节数组。存储时,数据按照RowKey的字典序(byte order)排序存储。设计RowKey时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。(位置相关性)
 

命名空间

用于将表分组,便于管理。一般RDBMS支持分库(即同一台服务器上,有多个数据库),在HBase中可以用命名空间满足这个需求。我的理解,命名空间就类似于数据库。不同数据库有不同的表。

两个特殊的命名空间:

Hbase:系统表空间

default:没有显式指定命名空间的表所属空间,默认命名空间

列族

同一个列族里面不同行数据的列也是不一致的。列不用在创表时就指定,但是列族必须在创表时就定义好。如果需要中途修改列族(包括增、删、改)必须将表先下线。

HBASE表中的每个列,都归属于某个列族。列名都以列族作为前缀。例如 courses:history,courses:math都属于courses 这个列族。

值版本

用户为每个值单独指定最大存储版本数。当新值插入时,若超过了最大存储版本数就会将最旧的值抹掉。默认最大存储版本数是1。

当然还有其他的值回收方式:

HBASE 中通过rowkey和columns确定的为一个存贮单元称为cell。每个 cell都保存 着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是 64位整型。时间戳可以由HBASE(在数据写入时自动 )赋值,此时时间戳是精确到毫秒 的当前系统时间。时间戳也可以由客户显式赋值。如果应用程序要避免数据版 本冲突,就必须自己生成具有唯一性的时间戳。每个 cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。

为了避免数据存在过多版本造成的的管理 (包括存贮和索引)负担,HBASE提供 了两种数据版本回收方式。一是保存数据的最后n个版本,二是保存最近一段 时间内的版本(比如最近七天)。用户可以针对每个列族进行设置。

cell

由{rowkey,列族:列, version} 唯一确定的单元。cell中的数据是没有类型的,全部是字节码形式存贮。无类型、字节码

null值

NULL在HBase中将被忽略,不会占用任何存储空间

HFile

HFile是HBase在文件系统上存储的实际数据文件(独立的文件),是存储的最小单位。

HFile里面完成地存储一个列族的全部列。

这句话这样理解:

        1、同一个列族的数据不会跨HFile存储。同一行,同一个列族的所有数据必定存储在一个HFile里面。

        2、一个HFile里面只会存储某一个特定表的某一个特定列族。一个HFile不会同时存储两个及以上列族的数据。

准确完整的表述应该是:

HFile只会存储特定某个表中的某些行的特定某个列族
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HBase是一个开源的、分布式的、列式存储的NoSQL数据库,它基于Hadoop分布式文件系统(HDFS)运行。HBase教程PDF是一份详细介绍HBase的学习材料,是帮助初学者快速入门HBase的重要资源。 HBase教程PDF通常包含以下内容: 1. HBase的简介:介绍HBase的背景、特点和优势,使读者对HBase有一个基本的了解。 2. HBase的安装和配置:指导读者如何在自己的机器上安装HBase,并进行必要的配置。 3. HBase的数据模型:详细介绍HBase的数据模型,包括、行、列和单元格等概念,帮助读者理解HBase的存储结构和数据访问方式。 4. HBase的API操作:介绍HBase提供的API,包括对的创建、删除、读写操作的具体步骤和示例代码。 5. HBase的集群管理:指导读者如何搭建和管理HBase集群,包括主节点和从节点的配置、负载均衡和故障处理等。 6. HBase的性能优化:介绍一些提升HBase性能的方法和技巧,如数据预分区、缓存大小的配置和压缩算法等。 7. HBase的应用案例:给出一些实际的应用案例,如日志存储、实时计算和图数据库等,帮助读者了解HBase的具体应用场景。 通过学习HBase教程PDF,读者能够系统地了解、学习和应用HBase,从而更好地利用HBase处理大数据和构建分布式应用。同时,HBase教程PDF也提供了丰富的示例代码和实践经验,帮助读者更好地理解和运用HBase的各项功能。对于想要学习HBase的人来说,HBase教程PDF是一个非常有价值的资源。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值