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)

HBase数据模型(1)的更多相关文章

  1. HBase 数据模型(Data Model)

    HBase Data Model--HBase 数据模型(翻译) 在HBase中,数据是存储在有行有列的表格中.这是与关系型数据库重复的术语,并不是有用的类比.相反,HBase可以被认为是一个多维度的 ...

  2. Hbase总结(一)-hbase命令,hbase安装,与Hive的区别,与传统数据库的区别,Hbase数据模型

    Hbase总结(一)-hbase命令 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令表达式 创建表 create '表名称', ...

  3. HBase 数据模型

    在HBase中,数据是存储在有行有列的表格中.这是与关系型数据库重复的术语,并不是有用的类比.相反,HBase可以被认为是一个多维度的映射. HBase数据模型术语 Table(表格) 一个HBase ...

  4. HBase数据模型

    上次我们讲过了<HBase简介>,点击阅读有助于更好地理解本文.本文讲述的是HBase数据模型. 1.ROW KEY 决定一行数据按照字典顺序排序的.Row key只能存储64k的字节数据 ...

  5. HBase数据模型(2)

    HBase数据模型(1) HBase数据模型(2) 1.0 HBase的版本version,是一个用长整型表示的.由Rowkey.Column(列族和列).Version组合在一起称为HBase中的一 ...

  6. 3.Hbase数据模型

    3.1.Hbase数据模型: 概念视图: 物理视图 Hbase数据在存储系统中是以列族来体现的[Column Family],任何时候可以随意的添加一列到已经存在的列族中 空的单元格在表中不做存储也不 ...

  7. 从零自学Hadoop(20):HBase数据模型相关操作上

    阅读目录 序 介绍 命名空间 表 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 ...

  8. 从零自学Hadoop(21):HBase数据模型相关操作下

    阅读目录 序 变量 数据模型操作 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 ...

  9. HBASE数据模型&扩展和负载均衡理论

    示例数据模型 HBase中扩展和负载均衡的基本单元成为region,region本质上是以行健排序的连续存储区间.如果region太大,系统会把它们 自动拆分,相反的,就是把多个region合并,以减 ...

随机推荐

  1. web.xml中<security-constraint>安全认证标签说明

      1.security-constraint元素 部署描述符中的<security-constraint>元素允许不通过编程就可以限制对某个资源的访问. <security-con ...

  2. MangoDB篇章(1)

    关系型数据库遵循ACID规则 事务(transaction)4个特性:原子性(A).一致性(C).独立性(I).持久性(D) : 分布式系统(distributed system): 由多台计算机和通 ...

  3. SQL大全(1)

    实用SQL语句大全 一.基础 1.创建数据库 create database 数据库名 2.删除数据库 drop database 数据库名 3.增加列 alter table 表名 add 列名 类 ...

  4. 用idea工具对java打包:命令 mvn clear package,报错

    用idea工具对java打包:命令 mvn clear package,报错 网上都是eclipse的,要么是project structure和setting的(当然这俩也要用) 我都试了,每一个能 ...

  5. C# 32位程序在64位系统下运行中解决重定向问题

    在64位的Windows操作系统中,为了兼容32位程序的运行,64位的Windows操作系统采用重定向机制.目的是为了能让32位程序在64位的操作系统不仅能操作关键文件文夹和关键的注册表并且又要避免与 ...

  6. day1 java基础回顾-泛型

    2.泛型(Generic) 当集合中存储的对象类型不同时,那么会导致程序在运行的时候的转型异常 1 import java.util.ArrayList; 2 import java.util.Ite ...

  7. CodeForces 489B BerSU Ball (水题 双指针)

    B. BerSU Ball time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  8. linux 下jansson安装和使用

    1.安装jansson ./configure make make install 2.生成帮助文档 cd doc make html 编译安装doc时提示 spinx-build not a com ...

  9. 21.运行Consent Page

    服务端把这个地方修改为true,需要设置 运行测试.服务端和客户端都运行起来 我们使用的用户是在这里配置的 服务端修改ConsentController 再次运行,但是页面都是乱码 openId和pr ...

  10. 利用jQuery实现鼠标滑过整行变色

    在很多网站都有这样的效果,那就是当鼠标放在新闻列表一行上的时候,整行就会变色,虽然使用CSS也能够实现此种功能,但是由于众多浏览器版本对于CSS3并没有良好的支持,所以在当前情况下,使用jQuery实 ...