找回密码
 FreeOZ用户注册
查看: 2069|回复: 24
打印 上一主题 下一主题

[数据库] 对SQL说不!NoSQL的数据库技术革命

[复制链接]
跳转到指定楼层
1#
发表于 7-7-2009 17:57:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
http://soft.doit.com.cn/article/2009/0706/4936792.shtml

NoSQL组织上个月在旧金山的行动让人闻到了数据库革命的味道,好像一个现代IT业版的波士顿倾茶事件正在策划之中。 在NoSQL运动的最新一次聚会中,来自世界各地的150人挤满了CBS Interactive的一间会议室。

就像当年波士顿的爱国者为反抗英国重税的行动一样,NoSQL的支持者们从各地涌来,分享他们如何推翻缓慢而昂贵的关系数据库的暴政,怎样使用更有效和更便宜的方法来管理数据。51CTO.com之前曾有过一篇《关系数据库的末日是否已经来临》文章指出,云计算可能会为数据库技术的发展带来新的契机,如果想在云中获得丰富而随需应变的可伸缩性,你需要一个非关系数据库。

"关系型数据库给你强加了太多东西。它们要你强行修改对象数据,以满足RDBMS (relational database managementsystem,关系型数据库管理系统)的需要,"Java工具提供商SpringSource公司的首席工程师JonTravis说,他是本次集会的10位发言人之一,在他看来,基于NoSQL的替代方案"只是给你所需要的"。

开源的兴起
反SQL运动的主要倡导者都是Web和Java开发者,他们中许多人都在创业的初期历经了资金短缺并因此与Oracle说再见,然后效仿Google和Amazon的道路建设起自己的数据存储解决方案,并随后将自己的成果开源发布。现在,他们的开源数据商店管理着成百TB甚至PB的数据,由于Web2.0和云计算的兴起,无论从技术上还是从经济上他们都无需再返回从前,甚至连想也不用想。

"Web 2.0的企业应该抓住机会,他们需要可扩展性,"总部设在伦敦的NoSQL会议组织者Johan Oskarsson说,他任职于著名的音乐网站Last.fm,其他的大多数与会者也都是网络开发者。

Oskarsson说,许多人甚至抛弃了MySQL开源数据库这个长期以来Web2.0的宠儿,而改由NoSQL的方案来替代,因为优势实在是引人注目。51CTO.com之前曾报道过MySQL创始人宣布创建开源数据库联盟的消息,过度的商业化是MySQL失去原来的优势。

例如Facebook建立了自己的Cassandra数据商店并且在其网站上重点推出一项新的搜索功能,没有使用到现有的MySQL数据库。据Facebook的工程师AvinashLakshma介绍,Cassandra仅用0.12毫秒就可以写入50GB的数据,比MySQL快了超过2500倍。Google也开始公测他们的云数据库FusionTables,这是一个和传统数据库完全不同的数据库,主要优势能够简单的解决关系型数据库中管理不同类型数据麻烦,以及排序整合的常见操作的性能问题等。

什么是NoSQL(从技术上说)?
从这些NoSQL项目的名字上看不出什么相同之处:Hadoop、Voldemort、Dynomite,还有其它很多。

但是,它们通常在某些方面相同:
不要叫它们数据库。Amazon.com的首席技术官WernerVogels将他们的重要的Dynamo系统称作"高可用性的键值商店"。Google将自己的BigTable称作"管理结构化数据的分布式存储系统",在51CTO.com之前的外电《云服务颠覆开发传统观念》中曾提到,Google的BigTable不是SQL数据库,原因是SQL数据库支持的一些功能实在难以进行分割,这与我们跨机器存储数据的想法无法结合。它们都是许多NoSQL追随者的效仿模式。

它们可以处理超大量的数据。比如Zvents公司以BigTable模式搭建的开源数据库Hypertable,据Zvents工程师Doug Judd介绍,它可以每天在搜索引擎中写入10亿单元数据。
另外,BigTable与其姊妹技术MapReduce相结合,每天可以处理多达20PB的数据。

"毫无疑问,数据量越来越巨大也让人们寻找其他的数据库替代技术,"SpringSource的Travis说。

它们运行在便宜的PC服务器集群上。PC集群扩充起来非常方便并且成本很低,避免了"sharding"操作的复杂性和成本。

Google曾表示一个BigTable的大集群可以管理数千台服务器上多达6PB的数据。

"Oracle会告诉你需要购买一些硬件然后正确配置Oracle RAC,然而用其他的神奇软件你也可以达到相同的可扩展性。但是两者的开销可是天差地别。"SpringSource首席技术官Javier Soltero说。

它们击碎了性能瓶颈。NoSQL的支持者称,通过NoSQL架构可以省去将Web或Java应用和数据转换成SQL友好格式的时间,执行速度变得更快。

"SQL并非适用于所有的程序代码,"数据库分析师Curt Monash说。对于那些繁重的重复操作的数据,SQL值得花钱。但是当数据库结构非常简单时,SQL可能没有太大用处。

Adobe公司资深计算机科学家Raffaele Sena说,当一年半前Adobe准备重新更新ConnectNow网络协作服务时,正是由于上面的理由,他们决定不采用关系型数据库。

Adobe决定使用Terracotta 提供的Java集群软件,管理Java格式的数据,Sena说,这使ConnectNow的性能提高到前一版本的2至3倍。

没有过多的操作。虽然NoSQL的支持者也承认关系数据库提供了无可比拟的功能集合,而且在数据完整性上也发挥绝对稳定,他们同时也表示,企业的具体需求可能没有那么多。
以Adobe的ConnectNow为例,Sena说,当用户在线时它会不通过数据库而制作三份会话数据,在离线后删除。"因此我们并不需要数据库,因为具体所需要的数据是在内存中的,"他说。

Bootstrap支持
因为NoSQL项目都是开源的,因此它们缺乏供应商提供的正式支持。这一点它们与大多数开源项目一样,不得不从社区中寻求支持。

但是一些人承认,没有正式的官方支持,万一出了差错会是可怕的,至少很多管理人员是这样看。

"我们确实需要做一些说服工作,"Adobe的Sena承认,"但基本在他们看到我们的第一个原型运行良好之后,我们就能够说服他们,这是条正确的道路。"

"大多数大型企业已经习惯于使用关系型数据库管理系统。因此他们会想为什么要改变呢?"Monash说。比如MapReduce和类似的项目"对企业有意。但是在具体使用时,它很可能会和一个分析DBMS(数据库管理系统)相集成。"

即使NoSQL的组织者Oskarsson也承认,就算是他自己的公司Last.fm也还没有做好转为NoSQL替代者的准备,现在依然在使用开源数据库。

他认为这场革命目前仍然需要等待。

[ 本帖最后由 yuba 于 7-7-2009 16:59 编辑 ]
回复  

使用道具 举报

2#
发表于 7-7-2009 18:04:38 | 只看该作者
这个还没听说过,不如玩CouchDB吧
Apache CouchDB : The CouchDB Project
回复  

使用道具 举报

3#
发表于 7-7-2009 18:07:49 | 只看该作者

回复 #2 ritz 的帖子

这个是文档数据库,好像粒度要比上面说的要大一些,应用面也比较窄,适合做CMS后端存储
回复  

使用道具 举报

4#
发表于 7-7-2009 18:13:25 | 只看该作者
就是name-value pair 存储啊, 类似memcached的api
应用面就看你怎么应用了

这个比NoSQL要成熟多了,不少web2.0公司在用
sohu好像之前也发过招聘广告找erlang/couchdb的人
回复  

使用道具 举报

5#
发表于 7-7-2009 18:26:07 | 只看该作者

回复 #4 ritz 的帖子

name-value pair这种局限性太大了吧,只能针对一些特定的应用,如果负责的应用,感觉有点力不从心啊。
回复  

使用道具 举报

6#
发表于 7-7-2009 18:29:40 | 只看该作者
我个人的理解,这种NoSQL只能对SQL形成一个补充,在海量数据处理上,Oracle等SQL数据库确实有一定的局限性(无法满足并发插入、查询响应速度,如何有效处理存储空间问题),但是对于大部分的中小型数据库应用,SQL数据库很难被替代。
回复  

使用道具 举报

7#
发表于 7-7-2009 18:34:10 | 只看该作者

回复 #6 ubuntuhk 的帖子

特别是对事务安全性要求高的应用。 还是得SQL数据库
回复  

使用道具 举报

8#
发表于 7-7-2009 19:43:14 | 只看该作者
叫什么NOSQL。其实我觉得叫什么不是最重要,哪怕就叫“阿猫阿狗”的,都无所谓。关键是要搞清楚:这个东西本质是什么?
我不是很相信这个东西能逃脱关系数据库的范畴。
回复  

使用道具 举报

9#
发表于 7-7-2009 20:00:41 | 只看该作者
原帖由 ritz 于 7-7-2009 17:13 发表
就是name-value pair 存储啊, 类似memcached的api
应用面就看你怎么应用了

这个比NoSQL要成熟多了,不少web2.0公司在用
sohu好像之前也发过招聘广告找erlang/couchdb的人

之所以广泛应用在web领域,是因为web领域对数据存取有几个很特别的特点:
1. 绝大部分数据只读不写
2. 一旦写入不再修改
3. 大量的并发读

Google的Google FS正是为了充分发掘这个特点而设计出来,但是这样的设计如果不加分析硬套在传统的练级事务处理上,结果将是灾难性的。
回复  

使用道具 举报

10#
发表于 8-7-2009 00:38:09 | 只看该作者
原帖由 ubuntuhk 于 7-7-2009 17:26 发表
name-value pair这种局限性太大了吧,只能针对一些特定的应用,如果负责的应用,感觉有点力不从心啊。



没有认真看,不知道是不是就是name-value pair
如果真是这样,那就搞笑了
因为全球最popular的nvp数据库berkeley db是被oracle买了的,虽然是开源
回复  

使用道具 举报

11#
发表于 8-7-2009 01:03:53 | 只看该作者
但是当数据库结构非常简单时,SQL可能没有太大用处。
回复  

使用道具 举报

12#
发表于 8-7-2009 01:05:26 | 只看该作者
原帖由 NEWGAY 于 8-7-2009 00:03 发表
但是当数据库结构非常简单时,SQL可能没有太大用处。


好象针对的不是sql,而是关系数据库
回复  

使用道具 举报

13#
发表于 8-7-2009 03:18:59 | 只看该作者

DON'T PANIC

ORACLE还在,大家不会失业的
回复  

使用道具 举报

14#
发表于 8-7-2009 15:20:42 | 只看该作者
像那种视频网站, 传统的关系型数据库就不是很适合。 但是像银行类业务, name - value pair 肯定也玩不转。 所以还是术业有专攻吧。
回复  

使用道具 举报

15#
发表于 9-7-2009 17:27:19 | 只看该作者
XMLDB
回复  

使用道具 举报

16#
发表于 10-7-2009 01:29:26 | 只看该作者
还是想象不出来,不用SQL,如何查询,修改数据库。
回复  

使用道具 举报

17#
发表于 10-7-2009 14:01:58 | 只看该作者
公司现在就使用号称世界最先进的对象数据库,世界最快的cache数据库。可是做报表的时候还是需要ODBC链接,使用SQL生成,技术上我从第一天就反对使用这个数据库,因为公司玩不起这么新,而且不知道是否成熟的。现在正如我所料,公司其他人搞不定,要我去帮忙写report,因为我之前是dba,sql比较熟。
回复  

使用道具 举报

18#
发表于 10-7-2009 14:06:12 | 只看该作者
楼上的谈一下到底快不快
回复  

使用道具 举报

19#
发表于 10-7-2009 14:13:54 | 只看该作者
原帖由 kaile 于 10-7-2009 13:06 发表
楼上的谈一下到底快不快

我感觉就不快,因为使用ODBC链接,然后SQL转对象操作,能快到哪里去。由于公司的数据量根本没达到对性能苛求的程度,所以我也没办法感觉。我也不敢那公司的服务器做压力测试。但是cache公司号称比oracle快20倍还是多少倍,我忘记了。用这个数据库的原意是公司懂SQL的人不多,其实就是我一个,其他人拿着beginning to sql在天天看。但是现在最终还是需要写SQL,真是搞笑。对我来说,上班多学一门技术不错。
回复  

使用道具 举报

20#
发表于 10-7-2009 15:47:38 | 只看该作者
原帖由 procoder 于 10-7-2009 13:13 发表

我感觉就不快,因为使用ODBC链接,然后SQL转对象操作,能快到哪里去。由于公司的数据量根本没达到对性能苛求的程度,所以我也没办法感觉。我也不敢那公司的服务器做压力测试。但是cache公司号称比oracle快20倍还是 ...


你们公司也真有意思,因为懂SQL的人不多居然想放弃SQL,这个Architect谁拍板的呀。

前面提到的那些敢用非SQL技术的公司或人,本身是些对SQL熟了不能再熟的家伙,因为用SQL碰到了瓶颈才去用创新的方案,哪是一般公司能去用的呀。
回复  

使用道具 举报

21#
发表于 10-7-2009 16:10:00 | 只看该作者

回复 #18 kaile 的帖子

cache很快,不过是小众产品,貌似在HIS系统中实施的比较多
回复  

使用道具 举报

22#
发表于 10-7-2009 17:20:52 | 只看该作者

回复 #21 coredump 的帖子

根据Cache公司宣称,他们是最快的系统,可是我公司本来的需求就是做一套报表系统,如果不用sql,每个报表都要单独写代码完成,那是cache自己的语言,而且不是OO的,难写。查询系统还是SQL方便,所以在这个scenario下,用cache是基本错误的,因为现在做报表是写sql,odbc连数据库,cache快的优势没有了。

据Cache公司成,他们用在医院很多,估计开始是一个HIS系统,后来把数据库部分单独出来卖了。
回复  

使用道具 举报

23#
发表于 10-7-2009 17:25:32 | 只看该作者
我自己用过object4db,很不错的数据库引擎。
回复  

使用道具 举报

24#
发表于 10-7-2009 17:28:59 | 只看该作者
db4o :: Native Java & .NET Open Source Object Database
http://www.db4o.com/
上面写错了。
回复  

使用道具 举报

25#
发表于 10-7-2009 17:52:08 | 只看该作者
这种都是不甘心看oracle,sql server统领市场,喜欢搞open source的
技术派的单纯想法,要想真正走出自己的路太难,作市场不是这么容易,
况且dbms/sql是多么成熟的技术。
google用自己的技术是因为sql在做search engine方面可能不是最好的选择,
尤其是在海量数据检索方面,不过要想推广到其他企业级的应用上就是另外
一回事了
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+11, 15-12-2024 12:14 , Processed in 0.044276 second(s), 41 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表