`
nlslzf
  • 浏览: 1039515 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

http://hi.baidu.com/lkf0217/blog/item/3ce51b872ba04a21c75cc376.html

Hbase是一个分布式开源数据库,基于Hadoop分布式文件系统,模仿并提供了基于Google文件系统的Bigtable数据库的所有功能。 其目标是处理非常庞大的表,可以用普通的计算机处理超过10亿行数据,并且有数百万列元素组成的数据表。Hbase可以直接使用本地文件系统或者 Hadoop作为数据存储方式,不过为了提高数据可靠性和系统的健壮性,发挥Hbase处理大数据量等功能,需要使用Hadoop作为文件系统。

Google BigTable论文中BigTable的定义:Bigtable是一个疏松的分布式的持久的多维排序的map,这个map被行键,列键,和时间戳索引.每一个值都是无解释数组.(A Bigtable is a sparse, distributed, persistent multidimensional sorted map. The map is indexed by a row key, column key, and a timestamp; each value in the map is an uninterpreted array of bytes.)

1.2 数据模型

    Hbase是一个类似Bigtable的分布式数据库,大部分特性和Bigtable一样,是一个稀疏的,长期存储的,多维度的,排序的映射表。这张表的索引是行关键字,列关键字和时间戳。每个值是一个不解释的字符数组,数据都是字符串,没类型。

HBASE中的每一张表,就是所谓的BigTable。BigTable会存储一系列的行记录,行记录有三个基本类型的定义:Row Key,Time Stamp,Column。Row Key是行在BigTable中的唯一标识,Time Stamp是每次数据操作对应关联的时间戳。用户在表格中存储数据,每一行都有一个可排序的主键和任意多的列。由于是稀疏存储的,所以同一张表里面的每一行数据都可以有截然不同的列。Column 定义为"<family>:<label>",通过这两部分可以唯一的指定一个数据的存储列,family的定义和修改需要对 HBASE作类似于DB的DDL操作,而对于label的使用,则不需要定义直接可以使用,这也为动态定制列提供了一种手段。family另一个作用其实 在于物理存储优化读写操作,同family的数据物理上保存的会比较临近,因此在业务设计的过程中可以利用这个特性。Hbase把同一个family里面 的数据存储在同一个目录底下,而Hbase的写操作是锁行的,每一行都是一个原子元素,都可以加锁。

HBase在物理距离比较近的磁盘上储存列组,所以同一列组中的元素要有完全一样的读/写特性并且包含的数据也要相似。

所有数据库的更新都有一个时间戳标记,每个更新都是一个新的版本,而hbase会保留一定数量的版本,这个值是可以设定的。客户端可以选择获取距离某个时间最近的版本,或者一次获取所有版本。

下面我们分别看一下逻辑数据模型和物理数据模型。

1) 逻辑数据模型

    一个表可以想象成一个大的映射关系,通过主键,或者主键+时间戳,可以定位一行数据,由于是稀疏数据,所以某些列可以是空白的,下面就是数据的概念视图(逻辑数据模型):

Row Key

Time Stamp

Column "contents:"

Column "anchor:"

Column "mime:"

"com.cnn.www"

t9

 

"anchor:cnnsi.com "

"CNN"

 

t8

 

"anchor:my.look.ca"

"CNN.com"

 

t6

"<html>..."

 

 

"text/html"

t5

"<html>..."

 

 

 

t3

"<html>..."

 

 

 

 

 

上图是一个存储Web网页的范例列表片断。行名是一个反向URL{即com.cnn.www}。contents列族{原文用 family,译为族,详见列族}存放网页内容,anchor列族存放引用该网页的锚链接文本。CNN的主页被Sports Illustrater{即所谓SI,CNN的王牌体育节目}和MY-look的主页引用,因此该行包含了名叫“anchor:cnnsi.com”和 “anchhor:my.look.ca”的列。每个锚链接只有一个版本{由时间戳标识,如t9,t8};而contents列则有三个版本,分别由时间戳t3,t5,和t6标识。

每一行的唯一标识为com.cnn.www,每一次逻辑修改都有一个timestamp关联对应,一共有四个列定 义:<contents:>,<anchor:cnnsi.com>,<anchor:my.look.ca>,<mime:>。 如果用传统的概念来将BigTable作解释,那么BigTable可以看作一个DB Schema,每一个Row就是一个表,Row key就是表名,这个表根据列的不同可以划分为多个版本,同时每个版本的操作都会有时间戳关联到操作的行。

每一个行可以多个family,每一个family可以包含无数个Column,每一个Column都可以有一个不同于其他列的时间戳。在通用数据库中当 表创建时我们就已经定义了列,如果修改表结构的话会非常困难(比如:添加一列)。在HBase中我们可以很轻松地添加一个列族或列。

2)物理数据模型

    虽然从逻辑模型来看每个表格是由很多行组成,但是在物理存储上面,它是按照列来保存的,这点在数据设计和程序开发的时候必须牢记。

上面的逻辑模型在物理存储的时候应该表现成下面那样子:

Row Key

Time Stamp

Column "contents:"

"com.cnn.www"

t6

"<html>..."

t5

"<html>..."

t3

"<html>..."

 

Row Key

Time Stamp

Column "anchor:"

"com.cnn.www"

t9

"anchor:cnnsi.com"

"CNN"

t8

"anchor:my.look.ca"

"CNN.com"

 

Row Key

Time Stamp

Column "mime:"

"com.cnn.www"

t6

"text/html"

    需要注意的是在概念视图上面有些列是空白的,这样的列实际上并不会被存储,当请求这些空白的单元格的时候,会返回null值。如果在查询的时候不提供时间戳,那么会返回距离现在最近的那一个版本的数据。因为在存储的时候,数据会按照时间戳排序。

    物理数据模型其实就是将逻辑模型中的一个Row分割成为根据Column family存储的物理模型。

对于BigTable的数据模型操作的时候,会锁定Row,并保证Row的原子操作。

分享到:
评论

相关推荐

    hbase简介共8页.pdf.zip

    【标题】:“HBase简介共8页.pdf.zip”是一个压缩文件,其中包含了关于HBase的详细介绍,一共8页内容。HBase是Apache软件基金会开发的一个开源分布式数据库,它基于Google的Bigtable设计,并且构建在Hadoop之上。...

    林昊 HBase简介与实践分享 .pptx

    ### 林昊 HBase简介与实践分享 #### HBase概览 HBase是一个分布式的、面向列的开源数据库,该数据库的设计受到了Google的Bigtable论文的启发。它是在Hadoop之上构建的一个高度可扩展的数据存储系统,适用于实时数据...

    16-HBase简介、架构

    HBase思维导图,便捷整理思路,HBase简介、HBase架构、HBase数据模型、HBase角色

    大数据云计算技术系列 Hadoop之Hbase简介(共19页).pdf

    大数据云计算技术系列 Hbase 简介 一、简介 Hbase源于Chad Walters和Jim在2006年11月提出的BigTable概念,它是一个开源的分布式数据库,最初作为Hadoop贡献项目的一部分在2007年2月创建。2007年10月,Hbase成为首...

    Hadoop技术-HBase简介.pptx

    Hadoop技术-HBase简介 HBase,全称为Hadoop Database,是Apache软件基金会下的一个开源项目,也是Hadoop生态系统中的重要组成部分。它是一款高度可扩展的NoSQL数据库,专为处理大规模非结构化和半结构化数据而设计...

    HBase简介.pdf

    HBase简介.pdf

    HBase简介与实践分享.ppt

    HBase简介与实践分享

    淘宝-林昊_HBase简介与实践分享

    淘宝-林昊_HBase简介与实践分享

    细细品味Hadoop_Hadoop集群(第11期)_HBase简介及安装.pdf

    ### HBase简介及安装知识点详解 #### 一、HBase概述 **HBase** 是一个构建在 **Hadoop** 分布式文件系统 (HDFS) 之上的分布式、可扩展的大规模数据存储系统。它是针对大数据量场景设计的,特别适用于需要实时读写...

    Hbase简介(基础篇).md

    Hbase简介,基础篇

    大数据与云计算培训学习资料 Hadoop集群 细细品味Hadoop_第11期_HBase简介及安装_V1.0 共21页.pdf

    【大数据与云计算培训学习资料 Hadoop集群 细细品味Hadoop_第11期_HBase简介及安装_V1.0 共21页.pdf】这篇文档主要介绍了HBase这一大数据处理的重要组件,以及其在Hadoop生态系统中的角色。HBase是一个基于列族的...

    大数据云计算技术系列 Hadoop之Hbase简介(共19页).rar

    标题中的“大数据云计算技术系列 Hadoop之Hbase简介”揭示了我们要探讨的核心主题:HBase,它是Apache Hadoop生态系统中的一个分布式、版本化、列族式数据库,特别适合处理和存储大规模数据。HBase充分利用了Hadoop...

    hbase简介ppt

    hbase简介,主要从hdfs开始介绍hbase,讲的比较细致生动

    Hadoop之HBase简介

    HBase是一种基于Hadoop生态系统的分布式列式存储系统,它为大数据处理提供了高效、可靠且可扩展的解决方案。HBase的设计灵感来源于Google的Bigtable,但它是开源的,旨在适应低成本的PC服务器集群,用于构建大规模...

    Hbase技术介绍

    ### HBase技术深入解析 #### 引言 HBase,作为大数据领域中一款重要的分布式数据库系统,基于Hadoop生态系统构建,旨在提供高可靠、高性能的数据存储与查询服务。本文将全面解析HBase的核心概念、技术架构及应用...

    Hbase简介,从数据模型、架构等方面介绍

    从数据模型、物理储存、架构等方面介绍,比较简介通俗

    jstarseven#bigdata-learning#Hbase简介1

    三、HBase Table 四、Phoenix 三、HBase Table 四、Phoenix

    HBase学习利器:HBase实战

    #### 一、HBase简介与背景 HBase是Apache Hadoop生态系统中的一个分布式、可扩展的列族数据库,它提供了类似Bigtable的能力,能够在大规模数据集上进行随机读写操作。HBase是基于Hadoop Distributed File System ...

Global site tag (gtag.js) - Google Analytics