专栏首页王小雷HBase数据模型(1)

HBase数据模型(1)

HBase数据模型(1) HBase数据模型(2)

1.0 HBase的特性

  • Table
    • HBase以表(Table)的方式组织数据,数据存储在表中。
  • Row/Column
    • 行(Row)和列(Column)共同组成HBase的表。
  • Column Family
    • 列族(Column)将一列或者多列组织在一起,HBase的列必须属于某一个列族。
  • Cell
    • 行和列的交叉点称为单元格(Cell),单元格是版本化的。
    • 单元格的内容是列的值,是不可分割的字节数组,以二进制形式存储。
  • Rowkey
    • 行键(Rowkey)可以将HBase表进行分区,行键也是唯一确定一行的标识。

2.0 HBase逻辑模型

2.1 HBase大部分特性和GoogleBigTable开源分布式数据库相同。

2.2 逻辑模型上是一个稀疏的、长期存储的、多维度的和排序的映射表,表中的每一行可以有不同的列。

2.3 HBase最基本的单位是列,一列或者多列构成了行,行有行键(RowKey),每一行的行键都是唯一的,相同行键的插入操作被认为是同一行操作。

2.4 HBase中一个表有多行,每行都有多列,列中的值有多个版本,每个版本称为一个单元格。每个单元存储的是不同时刻该列的值。

2.5 列名表示为 “列族前缀+修饰符”的方式,如(anchor:cssnsi.com和anchor:my.look.ca其中,列族是anchor,修饰符分别是cssnsi.com和my.look.ca )

3.0 HBase物理模型

3.1 在物理上,表是按列分开存储的。HBase的列是按列族分组的,HFile是面向列的,存放行的不同物理文件,一个列族的数据存放在多个HFile中,最重要的是一个列族的数据会被用一个Region管理,物理上存放在一起。

3.2 Region是管理HFile的一种机制。

4.0 HBase数据模型的操作

主营包含4个操作Get、Put、Scan和Delete。因为创建HTable实例需要扫描.META.表,会增加代价,所以用户最好只创建一次HTable是咧,而且每个线程创建一个,可以使用HTablePool类来复用多个HTable实例。

4.1 读Get

  • 从客户端获取已存取的数据
  • get()方法默认一次取回改行全部列的数据,可以限定只取某个列族对于的列的数据。
  • 可以从服务器获取特定的返回值。

4.2 写Put

  • HBase没有Update操作,通过Put对数据进行修改
  • Put向表增加新行(新的key)或者更新行(key已经存在)。
  • 对于数千次RPC操作可以显示打开缓冲区选项,进行一次性写入。

4.3 扫描Scan

Scan允许多行特定属性迭代,可以指定starRow参数来定义扫描读取HBase表的起始行键,同时可选stopRow参数来限定到何处停止。

4.4 删除Delete

HBase的Delete操作可以指定删除某个列族或者某个列,或者指定某个时间戳,删除比这个时间早的数据。

HBase的Delete操作并不是真正地从磁盘上删除数据,而是通过创建墓碑(tombstones)标志进行处理。这些墓碑标记的值和小于该时间版本的单元格在大合并(major compact)时被清楚。 HBase数据模型(1) HBase数据模型(2)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • HBase伪分布式安装(HDFS)+ZooKeeper安装+HBase数据操作+HBase架构体系

    HBase1.2.2伪分布式安装(HDFS)+ZooKeeper-3.4.8安装配置+HBase表和数据操作+HBase的架构体系+单例安装,记录了在Ubunt...

    王小雷
  • SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程

    SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程 1. 一个SAS程序可能包含一个或几个语言成分: DATA步或PROC步 全程语...

    王小雷
  • SAS学习笔记之《SAS编程与数据挖掘商业案例》(1)系统简介和编程基础

    版权声明:本文为王小雷原创文章,未经博主允许不得转载 https://blog.csdn.n...

    王小雷
  • 什么时候才应该使用HBase?

    在使用HBase一定要明白HBase的适用场合,因为HBase并非适用于每种情况。 首先,要确认有足够多的数据存入HBase。 如 果有几亿或者几十亿条记录要存...

    cloudskyme
  • Hadoop学习笔记—15.HBase框架学习(基础知识篇)

    HBase是Apache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问。HBase的目标是存储并处理大型的数据。HBase是一个开源的,分布式的...

    Edison Zhou
  • HBase 深入浅出

    HBase 深入浅出 HBase 在大数据生态圈中的位置 提到大数据的存储,大多数人首先联想到的是 Hadoop 和 Hadoop 中的 HDFS 模块。大家熟...

    搜云库
  • 一文读懂 HBase 核心原理与应用场景

    HBase是大数据NoSQL领域里非常重要的分布式KV数据库,是一个高可靠、高性能、高伸缩的分布式存储系统,目前国内知名公司都有在大规模使用,社区也非常活跃。本...

    大数据技术架构
  • Hadoop技术(四)分布式、面向列的开源数据库HBase

    时间静止不是简史
  • (课程)基于HBase做Storm 实时计算指标存储

    Hi,大家好!我是祝威廉,本来微博也想叫祝威廉的,可惜被人占了,于是改名叫·祝威廉二世。然后总感觉哪里不对。目前在乐视云数据部门里从事实时计算,数据平台、搜索和...

    用户2936994
  • Apache HBase内核深度剖析

    前面一篇文章介绍了Kafka的具体内容,今天讲述一下HBase相关的知识。首先HBase作为大数据发展初期伴随Google三大论文问世的一个组件,在今天依旧被广...

    ThoughtWorks

作者介绍

精选专题

活动推荐

扫码关注云+社区

领取腾讯云代金券