Hadoop起源三之BigTable

x33g5p2x  于2021-03-14 发布在 Hadoop  
字(1.3k)|赞(0)|评价(0)|浏览(639)

一、关系型数据库

数据库分为关系型和非关系型,接下来要学习的Hbase是非关系型数据库,那我们在讲解非关系型数据时,先来了解一下什么是关系型数据库,在了解关系型数据库后,再来对比一下非关系型数据库的特征。

  • 什么是关系型数据库?基于关系模型(基于二维表)所提出的一种数据库
  • ER(Entity-Relationalship)模型:通过增加外键来减少数据的冗余
  • 举例:学生-院系

:-:

(1)一个院系有自己的属性(系号、名称、电话),一个学生也有自己的属性(学号、姓名、性别、年龄),讲院系和学生构建起关系:学生是属于院系,一个院系有多个学生,属于1对多的关系。构建一个实体模型。

(2)把实体模型抽象成关系模型,分别把学生和院系的各自属性列举出来,优化一下,可以在学生里创建一个外键,外键可以使用院系的号码,代表了这个学生是属于这个院系。

(3)最后创建表,可以形成一张院系表和一张学生表,因为学生表里有外键院系的号码,在学生表里面可以知道这个学生是属于哪个学院的。那么两张表的就可以构建出学生和院系的关系了。大家可以这么理解:通过实体之间的关系构建出表和表之间的关系,重点要理解,他们首先是存在有关系的,所以这类型的数据库称为:关系型数据库。

二、非关系型数据库Hbase

非关系型数据库是什么呢?顾名思义,就是没有关系的数据库,就是说在创建数据库表的时候,是不需要先构建表和表之间关系的。我们提到了Hadoop的思想起源之一是BigTable,那什么是BigTable呢?BigTable叫大表,存放大量数据的表,把所有的数据保存到一张表中,不需要构建表和表之间的关系,采用冗余的方式,就是说一张表里面可能会有很多重复的数据,它的好处就是可以提高查询效率,通过牺牲存储空间,来换取查询的高效。

  • 因为有了bigtable的思想,就衍生出NoSQL(Not Only SQL)不仅仅是SQL,属于NoSQL的代表之一就是HBase数据库。
  • Hbase是基于Hadoop的HDFS的:大家已经了解HDFS是文件系统,是分布式存储数据的。而Hbase是数据库,既然说Hbase是基于HDFS的,那就是说Hbase数据库的数据是存储在HDFS上的。
  • Hbase的表结构长什么样?用前面提到的例子:学生-院系模型表结构,在Hbase是如何体现表结构的呢?

:-:

(1)rowkey: 相当于关系型数据库中的主键,在关系型数据库中,主键是不可以重复的,但是在非关系型数据库中,rowkey是可以重复的,重复就代表他们是同一条记录,在这里也可以发现,非关系型数据库数据是很冗余的。

(2)列族:关系型数据库叫列,一个列代表一个属性的值。但是在非关系型数据库中,不叫列,叫列族,因为这个列族不仅仅代表一个属性的值,代表的是一类属性的值,这个列族可能会存放很多个不同的列。

(3)创建表:关系型数据库创建表的时候需要指定一张表所有的列,但是在非关系型数据库是不需要指定每一个列的,只需要指定一个列族即可,一个列族的多个列是在插入数据的时候动态插入的。

[info] 总结:Hbase是受到非关系型数据库BigTable的启发所衍生出来的一个非关系型数据库,这个Hbase也构成Hadoop生态圈的数据库。

相关文章

微信公众号

最新文章

更多