美文网首页我爱编程程序员
Hbase笔记一(数据模型)

Hbase笔记一(数据模型)

作者: petemper | 来源:发表于2018-01-23 16:47 被阅读0次

A Bigtable is a sparse, distributed, persistent multidimensional sorted map.

Hbase(Hadoop Database)是基于hadoop HDFS的数据库。Hbase是一个稀疏的、分布式的、序列化的、多维排序的Map,由Row Key、column key、timestamp索引。对Hbase的数据模型可以有三种理解:表格、多维Map和keyvalue存储结构。

表格

对Hbase最简单和自然的数据模型理解,就是想像成一个有row和column的表格。这和我们熟悉的关系型数据库表的理解差不多,但还是有些不同的。(与关系型数据库还是有很大不同的,后面会讲到)。接下来定义几个名词:

Table:表。Hbase把数据装入表中

Row:Row由row key唯一确定。row key没有数据类型,往往看作一个byte[]

ColumnFamily:Row中的数据是由column family分组的。column family会影响到数据在hbase中的物理结构,所以必须提前定义好,否则以后很难修改。表中所有的row有相同的column family,尽管一个row不需要其所有的column family存有数据。column family 由字符串组成。

Column(Column Qualifier):column family中的数据是存在column中的,和column family一样,column也需要提前定义好。不同row之间的column不需要具有一贯性。和row key一样,column没有数据类型,往往看作一个byte[].

Cell:一个row key、一个column family和一个column唯一确定一个Cell。

Timestamp:cell中的值是有多个版本的。版本号默认就是数据被写入时的时间戳。如果写入数据时没有指定时间戳,则使用当前时间;如果读取数据时没有指定时间戳,则使用最新的版本。cell默认有三个版本。

综上,表结构如图所示:

图一

Hbase的数据操作API有三个:Get、Put和Scan。Get和Put针对具体的row,所以需要提供row key。scan针对一系列row,可以通过提供一个start row key和一个end row key来获得一系列的row,如果不提供起始和结束,则针对整个表操作。

多维Map

有时候,将hbase的数据模型理解成一个多维Map更容易理解,如果将图一中的第一行row理解成多维Map,则如图二所示:

图二

值得注意的是,row key和关系型数据库中的primary key的作用类似。Hbase表设置好之后,你将不能选择其他row作为row key。

key value存储

Hbase数据模型还可以看作是以key-value的形式存储。如图三所示,key可以认为是row key,还可以认为是row key, column family, column, timestamp的组合,这就取决于你对哪些cell感兴趣了。如图三,图一的第一行row可以表示成以下几种key value组合。

图三

下篇文章将继续讲解Hbase的设计架构

未经允许,请勿转载!

——完——

相关文章

  • HBase - 总结

    一、HBase简介 1.1 定义 1.2 HBase数据模型 1.2.1 HBase逻辑结构 1.2.2 HBas...

  • HBase学习笔记(一)HBase数据模型

    HBase是运行在Hadoop集群上的一个数据库,与传统的数据库有严格的ACID(原子性、一致性、隔离性、持久性)...

  • Hbase笔记一(数据模型)

    A Bigtable is a sparse, distributed, persistent multidime...

  • HBASE学习笔记

    本文是对Hbase组件的一个学习总结,共包括如下章节的内容: Hbase是什么 Hbase的数据模型 Hbase体...

  • (转)HBase详细概述

    本文首先简单介绍了HBase,然后重点讲述了HBase的高并发和实时处理数据 、HBase数据模型、HBase物理...

  • HBase入门学习

    HBase的数据模型 HBase基于HDFS进行底层数据存储,HBase是谷歌内部工具BigTable的一个开源实...

  • HBase 数据模型

    理解 HBase 的数据模型,能够更好的理解 HBase 针对 Region 的操作(Split、Compact等...

  • HBase

    HBase定义 HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。 HBase结构 数据模型 1...

  • Hbase学习资料

    HBase数据模型解析和基本的表设计分析 Hbase原理、基本概念、基本架构 HBase 超详细介绍 Apache...

  • HBase知识点

    深度分析HBase架构 HBase技术简介 Hbase 技术细节笔记(上) Hbase 技术细节笔记(下) 回答思...

网友评论

    本文标题:Hbase笔记一(数据模型)

    本文链接:https://www.haomeiwen.com/subject/xdnsaxtx.html