美文网首页
NoSQL-HBase

NoSQL-HBase

作者: Wilson_wad | 来源:发表于2019-07-11 16:04 被阅读0次

HBase简介

Apache Hbase是Hadoop数据库,一个分布式、可扩展、大数据存储。

当你需要随机地实时读写大数据时使用Hbase。它的目标是管理超级大表-数十亿行X数百万列。

Hbase是一个开源的、分布式的、带版本的、非关系型数据库,模仿谷歌的BigTable。BigTable使用Google File System作为分布式数据存储,同理Hbase使用HDFS。

总的来说HBase是一个NoSQL的列式储存的数据库

NoSQL = Not Only SQL,而不是No SQL

HBase基本元素

  • 列簇——Column Family

    直译的意思就是列组成的家庭,通常理解为对于列的归类

  • 列修饰符——Column Qualifier

    每一个家庭里面有很多的成员,成员就是列修饰符。列簇和列修饰符的关系就好像类与他的成员变量一样。

  • 列——Column

    HBase中,列簇和列修饰符组合起来,才叫做,形式:”列簇:列修饰符“

  • 行键——row key

    唯一标识一行

  • 时间戳

    HBase中数据入库会打上时间戳,可以当作版本号理解。因此,HBase中原来的数据不会抹去,在查询数据时只是返回最新时间戳的罢了

  • 单元格——Cell

    行键+列族+列修饰符+数据+时间戳

  • 一个行键、一到多列(包括数据)组合

    image

HBase特性

Hbase中,只要确定了列族,表(Table)就确定了

把传统数据库中的表/行/列的概念用在Hbase中不是一个有帮助的类比。相反可以把Hbase的表想象成一个多(两)维Map(Map套Map)。列族是第一维,列修饰符是第二维

对于数据的CRUD,归根结底就是标识进行定位,取出其中的业务数据。就好像C++,我们顺着指针找到变量,再读取变量中的值。

[标识]+[业务数据]

对比关系型数据库,我们不难发现:

  • 关系型数据库

    [主键簇]+[业务数据]

  • NoSQL——HBase

    [行键+列族+列修饰符+时间戳]+数据

所以列式储存这种方法,实际上是从关系型数据库的行式储存演变而来,命名也有相似之处

例如:行键相同的多列数据组合在一起,叫做一行。列也相当于行式储存的一列。

列式储存相比于行式储存的优势在于对于结构的弱化,使得数据库更加的灵活,既可以灵活的增加/减少属性,也可以节省空白空间(关系型数据库哪怕没有数据位置还是得占着)。列式储存将关系型数据库的列拆分开来,灵活结合,传统关系型数据库操作流程是一行多列。其实就相当于原来关系型数据库的一行,N个属性,拆分成了列式存储的N行(类似于矩阵转置?)弱化结构,更加的灵活。

Reference

[1] 什么是列式存储 | Java3y

相关文章

  • NoSQL-HBase

    HBase简介 Apache Hbase是Hadoop数据库,一个分布式、可扩展、大数据存储。当你需要随机地实时读...

网友评论

      本文标题:NoSQL-HBase

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