hbase和关系型数据库的区别

HBase相对于关系数据库能解决的问题是什么?

关于HBase与关系数据的区别问题其实就是关系数据库与HBase各自的优缺点。

关系数据库的缺憾:

1) 扩展困难

2) 维护复杂

HBase就是解决可伸缩行的问题。通过简单增加节点来获取线性扩展性。不支持SQL。

图解Nosql(hbase)与传统数据库的区别

对于大多数做技术的人员,都知道我们传统数据库是什么样子的,那么如下图所示,我们操作的对象是行。也就是增删改查,都是以为对象

1. 传统数据库增加删除介绍

 hbase和关系型数据库的区别

下面我们以mysql为例:

 hbase和关系型数据库的区别

插入数据

mysql》INSERT INTO blog_user (`user_Name`,`user_Password`,`user_emial`)VALUES (‘aboutyun’,‘aboutyun’, ‘aboutyun@sina.com’);

 hbase和关系型数据库的区别

删除数据:

mysql》 delete from blog_user where user_name=“aboutyun”;

 hbase和关系型数据库的区别

2. Nosql数据库增加删除介绍

 hbase和关系型数据库的区别

以hbase为例:

创建表:

create ‘blog_user’,‘userInfo’

 hbase和关系型数据库的区别

插入数据

这里是关键点,也是很多人不容易理解的地方

hbase(main):012:0》 put‘blog_user’,‘www.aboutyun.com’,‘userInfo:user_Name’,‘aboutyun’

0 row(s) in 1.7530 seconds

 hbase和关系型数据库的区别

上面我们看到了

1所示是什么,我们在传统数据块里面根本没有,这是nosql所特有的,是一个rowkey,是系统自带的,也是nosql中一条记录的唯一标识。但是这个唯一标识,有跟我们的传统数据库是有所差别的。如图1所示,“记录1”便是rowkey.

2所示是我们插入的列user_Name,这也是最难以理解的地方,列竟然可以插入。并且其’value‘为3即‘aboutyun’

我们插入了列,下面我们来查看一下效果: 

hbase和关系型数据库的区别

下面来解释一下上面的含义:

我们会看到

1为rowkey,插入数据’www.aboutyun.com‘,

2为列族下面列的名字user_Name

3我们并没有在设计的添加这个列族,所以这个是系统自带的,这个是记录的操作时间,以时间戳的形式放到hbase里面。

4是我们插入的user_Name的值

下面我们在插入password:

1. hbase(main):015:0》 put‘blog_user’,‘www.aboutyun.com’,‘userInfo:user_Password’,‘aboutyun’

 hbase和关系型数据库的区别

再次查询结果:

1. hbase(main):016:0》 scan ‘blog_user’

2. ROW COLUMN+CELL

3. www.aboutyun.com column=userInfo:user_Name, TImestamp=1400663775901, value=aboutyun

4. www.aboutyun.com column=userInfo:user_Password, TImestamp=1400665203430, value=aboutyun

5. 1 row(s) in 0.0390 seconds

 hbase和关系型数据库的区别

到这里,我们看到两行记录,传统数据块认为这是两行数据,对于nosql,这是一条记录。

删除列数据

删除数据分为删除列和删除记录

1.删除列

这里面的删除,没有删除

delete ‘blog_user’,‘www.aboutyun.com’,‘userInfo:user_Password’

 hbase和关系型数据库的区别

从上面我们看出列被删除了

2.删除记录:

1. deleteall ‘blog_user’,‘www.aboutyun.com’

2. 这是删除之前显示结果,这里已经是

 hbase和关系型数据库的区别

删除后结果

 hbase和关系型数据库的区别

结论:

对于传统数据库,增加列对于一个项目来讲,改变是非常大的。但是对于nosql,插入列和删除列,跟传统数据库里面的增加记录和删除记录类似

HBase有哪些基本的特征?

HBase是类似于google的bigtable的开源实现,拥有以下特征:

1)在HDFS之上

2) 基于列存储的分布式数据库

3) 用于实时地读、写大规模数据集

技术专区

  • mybatis动态sql详解
  • 用VHDL语言设计数据传输系统中的HDB3编码器
  • 裸机程序如何驱动硬件?看前辈是怎么说的
  • 应用面向对象编程SoC原则的典型示例
  • 嵌入式开发之java常用开发工具介绍
  • hbase和关系型数据库的区别已关闭评论
    A+
发布日期:2019年07月14日  所属分类:物联网