`
chakey
  • 浏览: 363905 次
  • 性别: Icon_minigender_1
  • 来自: 水星
社区版块
存档分类
最新评论

HBase的数据模型

阅读更多

Hbase的数据模型

row 行

column 列

row keys 行键

column keys 列键

column families 列族

 

 

Hbase的数据模型和Bigtable的数据模型是一致的,非常适用于数据密集型的系统.

简单的说,Hbase可以简化描述为一个Map<byte[], Map<byte[], Map<byte[], Map<Long, byte[]>>>>.

一个Map建立行键和它们的列族的映射关系;第二个Map建立列族和列键的映射关系;第三个Map建立列键和时间戳的映射关系;

最后一个Map将时间戳对应到一个值上.键通常情况下为string,时间戳是个long,值为字节数组.列键通常包含它的族名例如:family:key.

一个列族可以包含无限多的列键值.所以想获得一个值,使用者需要使用get命令指定3个键来获取:

row key+column key+timestamp -> value

 

Hbase的行键是一个字节数组,但是这个数组必须有一个字符串名称,这个名词是按照字典顺序建立的,相当于索引。例如:1到100这100个数是

按照如下次序存放:1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,...,9,91,92,93,94,95,96,97,98,99

 

现实例子:

为了能够更好地说明Hbase的数据模型,下面介绍一个简单的blog的数据结构设计.

假设一个blog具有如下特性:

1:blog实体,包括标题,副标题,日期,作者,类别(也就是标签),内容和评论.对于登录的用户,可以创建和更新.

2:用户,包含用户名,密码和昵称,可以登录和登出.

3:评论,包括标题,作者,内容.评论可以由匿名用户产生,这个时候,通过验证码来区分用户.

 

实体关系图(ERD)如下:

BLOGENTRY USER

PK:id_blogentry    ----------> PK:id_user

FK1:          name

    title  login

    under_title  password

    id_user

    date       COMMENT

    text   <----------PK:id_comment

    type      FK1:id_blogentry

  date

  author

  title

  text

对应的Hbase架构:

Table

Row Key

Family

Attributs

blogtable

TTYYYYMMDDHHmmss

info:

Always contains the column keys author,title,under_title. Should be IN-MEMORY and have a 1 version

 

 

text:

No column key. 3 versions

 

 

comment_title:

Column keys are written like YYYMMDDHHmmss. Should be IN-MEMORY and have a 1 version

 

 

comment_author:

Same keys. 1 version

 

 

comment_text:

Same keys. 1 version

usertable

login_name

info:

Always contains the column keys password and name. 1 version

 

 

参考wiki:

http://wiki.apache.org/hadoop/Hbase/DataModel

0
2
分享到:
评论
1 楼 shanxu9198 2013-12-15  
geilivable

相关推荐

    分布式存储系统:HBase:HBase数据模型与表设计.docx

    分布式存储系统:HBase:HBase数据模型与表设计.docx

    HBase官方指南——数据模型篇

    列簇是HBase数据模型中的一个重要的概念,它可以看作是一组列的集合。每个列簇都有自己的物理存储配置,比如是否压缩、是否缓存到内存等。表中的每一行都包含相同的列簇集合,即使某些列簇对于某行没有列,相应的列...

    浅谈HBASE数据结构设计.pdf

    HBase数据模型采用列式存储,每个列族下可以有无限多的列。在存储时,每个列族的列数据不会混合存储,而是以列族为单位顺序存储。这种设计对于读写大量稀疏数据特别有效,因为它只读取相关的列族数据。 4. 物理存储...

    HBase海量数据存储实战视频教程

    3. HBase数据模型 4. 常用shell操作 5. shell管理操作 6. Hbase Java编程 7. HBase高可用 8. HBase架构 第二章 陌陌海量存储案例 1. 案例介绍 2. 打招呼消息数据集介绍 3. 准备工作 4. 陌陌消息HBase表结构设计 5. ...

    hbase数据可视化系统

    《HBase数据可视化系统构建详解》 在大数据领域,HBase作为一款分布式列式数据库,因其高并发、低延迟和大规模存储的特点,被广泛应用在实时数据处理和分析中。然而,对于非技术人员来说,直接操作HBase命令行进行...

    HBase数据及物理模型架构及工作原理

    本文来自于csdn,主要为对HBase简介,HBase数据模型及物理模型,HBase架构及工作原理。HBase是一个构建在HDFS之上的,分布式的、面向列的开源数据库HBase是GoogleBigTable的开源实现,它主要用于存储海量数据个人...

    HBASE技术架构及应用介绍.pptx

    【HBase数据模型】 HBase的数据模型包括表、行和列。数据以表格的形式逻辑存储,每行都有一个可排序的主键(Row Key)和任意多的列。列由列族(Column Family)组织,列族内可以动态增加列。数据是非常稀疏的,因为...

    Hadoop之Hbase从入门到精通.doc

    HBase数据模型主要包括三部分: 1. Row Key:行键,Table的主键,Table中的记录按照Row Key排序 2. Timestamp:时间戳,每次数据操作对应的时间戳,可以看作是数据的version number 3. Column Family:列簇,Table...

    hbase API

    3. **HBase数据模型** - **Key-Value存储**: 每个单元格都是键值对形式,键由行键和列族名+列限定符组成,值附带时间戳。 - **多版本**: 每个单元格可以存储多个版本的数据,通过时间戳区分。 4. **HBase与Hadoop...

    大数据技术之HBase.docx

    1.2 HBase数据模型 HBase的数据模型逻辑上与关系型数据库类似,数据存储在一张表中,有行有列。但从HBase的底层物理存储结构(K-V)来看,HBase更像是一个multi-dimensional map。 1.2.1 HBase逻辑结构 HBase的...

    hbase官方开发参考手册

    通过这份手册,用户可以更深入地了解 HBase 的工作原理,掌握在生产环境中如何高效地管理和操作 HBase 集群,以及如何针对不同的业务需求设计合适的 HBase 数据模型和架构。文档中提供的配置示例和最佳实践将对用户...

    Hbase基础与应用

    ##### HBase数据模型 HBase的数据模型基于列族,具有以下特点: - **非结构化或半结构化数据**:支持稀疏二维数据存储,对于空字段不进行存储。 - **灵活的Schema**:无需预先定义所有列,可以随时动态增减列。 - **...

    HBase大数据.zip

    2. **HBase数据模型** - **列族和列**:列族是预定义的,存储相关的列集合。列在使用时动态创建,列族内的列可无限扩展。 - ** Region 分区**:HBase通过Region进行数据分区,Region会根据行键自动划分,随着数据...

    HBASE基础应用的介绍

    #### 四、HBase数据模型 HBase的数据模型基于键值对,每个单元格通过一个四元组唯一标识: - 行键(Row Key):用于唯一标识一条记录。 - 列族(Column Family):数据被组织成列族,每个列族可以包含多个列。 - 列...

    HBase基本操作-大数据实验一

    主要包括HBase数据模型介绍,虚拟机及HBase服务的启动停止步骤,以及HBase表的创建、查询、插入、删除等操作的具体语法和实例展示。此外,还提供了HBase Python 编程的基本方法和批量数据导入的操作步骤,结合思考题...

    Hadoop之Hbase从入门到精通

    #### HBase数据模型 HBase采用了独特的数据模型设计,主要包括以下几个方面: 1. **Table & Column Family**:HBase中的表由一系列行键(Row Key)、列簇(Column Family)和版本号(Timestamp)组成。列簇是表的...

Global site tag (gtag.js) - Google Analytics