分享

以实战操作展示nosql与传统数据库的区别

pig2 2014-5-21 18:13:13 发表于 实操演练 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 11 32309
本帖最后由 pig2 于 2014-5-21 19:41 编辑
问题导读:
1.nosql数据库能否删除列
2.nosql数据库如何删除一条记录
3.nosql数据库列族和lieder区别是什么?
4.nosql操作与传统数据库的操作区别在什么地方?







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

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


图1
下面我们以mysql为例:



插入数据
  1. mysql>INSERT INTO blog_user (`user_Name`,`user_Password`,`user_emial`)VALUES ('aboutyun','aboutyun', 'aboutyun@sina.com');
复制代码



删除数据:
  1. mysql> delete from blog_user where user_name="aboutyun";
复制代码





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


图2
以hbase为例:
创建表:
  1. create 'blog_user','userInfo'
复制代码




插入数据
这里是关键点,也是很多人不容易理解的地方
  1. hbase(main):012:0> put'blog_user','www.aboutyun.com','userInfo:user_Name','aboutyun'
  2. 0 row(s) in 1.7530 seconds
复制代码


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

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

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



下面来解释一下上面的含义:
我们会看到
1rowkey,插入数据’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'
复制代码




再次查询结果:
  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
复制代码





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


删除列数据

删除数据分为删除列和删除记录
1.删除列
这里面的删除,没有删除
delete 'blog_user','www.aboutyun.com','userInfo:user_Password'


从上面我们看出列被删除了
2.删除记录:
  1. deleteall 'blog_user','www.aboutyun.com'
复制代码

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


删除后结果





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

本帖被以下淘专辑推荐:

已有(10)人评论

跳转到指定楼层
大的负担 发表于 2014-5-21 21:26:42
感觉删除列族比较像删除传统数据表的几行数据
回复

使用道具 举报

pig2 发表于 2014-5-21 21:33:25
大的负担 发表于 2014-5-21 21:26
感觉删除列族比较像删除传统数据表的几行数据
nosql比如hbase就是基于列式存储,具体可以看
全面了解hbase包括概念、原理等介绍

回复

使用道具 举报

大的负担 发表于 2014-5-21 21:39:28
pig2 发表于 2014-5-21 21:33
nosql比如hbase就是基于列式存储,具体可以看
全面了解hbase包括概念、原理等介绍

请教下版主,像电商网站他们的商品数据、用户数据是用传统关系数据存的还是用hbase存的呢?
回复

使用道具 举报

pig2 发表于 2014-5-21 21:49:17
本帖最后由 pig2 于 2014-5-21 21:50 编辑
大的负担 发表于 2014-5-21 21:39
请教下版主,像电商网站他们的商品数据、用户数据是用传统关系数据存的还是用hbase存的呢?

具体情况具体分析,像阿里,百度之类的应该是使用的大数据、云技术,应该是使用nosql存储的。
一般的小的电商,如果数据量不大,可以使用关系型数据库
回复

使用道具 举报

大的负担 发表于 2014-5-21 21:53:20
pig2 发表于 2014-5-21 21:49
具体情况具体分析,像阿里,百度之类的应该是使用的大数据、云技术,应该是使用nosql存储的。
一般的小 ...

搜索引擎倒排表用hbase存数据好理解,商品信息这种结构化数据感觉用关系数据表存更方便处理。
回复

使用道具 举报

pig2 发表于 2014-5-21 22:03:55
大的负担 发表于 2014-5-21 21:53
搜索引擎倒排表用hbase存数据好理解,商品信息这种结构化数据感觉用关系数据表存更方便处理。

使用不使用hbase(nosql),这里面取决于数据量。如果数据量比较大,关系型数据库难以承受压力,你就需要使用nosq.
nosql是能够承受大数据量,但是牺牲了使用的方便性。
回复

使用道具 举报

alextim 发表于 2016-3-1 15:33:45

关注中,求高手带!
回复

使用道具 举报

xuezhiji 发表于 2016-5-4 15:38:20
不错,学习了
回复

使用道具 举报

我爱可乐 发表于 2017-2-3 00:05:45
不错,学习了,楼主好厉害
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条