Peter Bell谈NoSQL的发展趋势
本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2013/11/nosql-trends 近日,Peter Bell与InfoQ分享了他对于NoSQL最近发展趋势的一些看法,NoSQL是一类发展迅速的数据库存储,涵盖了多种解决方案。Peter是Pragmatic Learning公司的讲师,这家公司就是由他创建的,同时他还是GitHub培训团队的一名签约成员,也是Speak Geek的创建者,这家公司的主要目标是为商业人士提供培训,帮助他们雇佣和管理开发者。他经常针对各种NoSQL数据存储提供培训和演讲,包括MongoDB、Neo4j及Redis,是一位MongoDB专家。 InfoQ:过去的几年间,NoSQL得到了长足的发展,从一开始的前沿技术发展成为现在很多应用技术栈的标准组成部分。你认为促进这种快速发展的因素有哪些呢? NoSQL得到如此广泛的普及主要有3个驱动力。首先是需求。在过去的几年间,互联网与移动的流量呈现出了爆发性的增长,现在很多大公司所处理的数据规模是几年前我们几乎不曾想到的。传统的关系型数据库在设计时从未考虑过能够比较容易地实现跨节点可伸缩这一特性,因此NoSQL在那些需要能够实现快速、轻松且低成本可伸缩的公司中开始流行起来。 InfoQ:最近,我们看到有一些新的厂商进入到了一个被称为NewSQL的领域(不过这个名字还没有普及)。能否谈谈何谓NewSQL?你觉得对于需要事务性数据库保证的企业来说,这会增加非关系型数据库在这些企业中的普及度么? NewSQL指的是像NuoDB这样的现代数据库,他们将跨节点的可伸缩性与对SQL查询的支持结合起来了。比如说,如果负载已经超出了单台服务器的承受能力,然而你又不想让开发团队针对没有实现SQL的数据库重写编写代码,那么NewSQL数据库就值得好好研究一下了。我认为我们现在尚处在NewSQL革命的黎明阶段,但显然,对于有的场景来说,NoSQL存储提供了比关系型代数更好的抽象能力;而对另一些场景来说,拥有开发者所熟知的编程模型的可伸缩数据库则是更好的解决方案。 InfoQ:图型数据库(如Neo4j)是基于图论来对节点间的关系进行建模的。这看起来很复杂,不过能否谈谈它提供了哪些好处么?你觉得这类NoSQL数据库有机会成为主流么? 这个世界就是个图。无论是要管理用户(他隶属于多个组,而每个组拥有不同的规则)的文件权限,还是想知道哪个朋友能够向我推荐德里的饭店,抑或是要计算出从上海浦东国际机场到伦敦希思罗机场的最佳包裹托运路径,图都是对领域进行建模的非常自然的方式。从电子商务到内容管理,从生物信息学到推荐,我们都可以通过图从已有的数据中获取更多的价值。想象一下对于任意一位演员使用SQL查询来计算“六度理论(six degrees of Kevin Bacon)”该有多么复杂。在Cypher(由Neo4j提供的一种声明式、类似于SQL的图查询语言)中,这却是小菜一碟。 InfoQ:Redis称自己是个“高级的键——值”存储,不过我听到你说它不仅仅是个键——值存储,能否说说你的想法么? 虽然Redis是个键值存储(与文档、图型或是列式数据存储不同),但它不仅仅只是键与值。Redis提供了列表、集合、有序集合与pub:sub功能,你可以通过他们非常高效地解决很多问题。它还是个内存解决方案(高性能),可以实现快照或是记录到磁盘。Redis并不是个通用的“一般意义上的”数据存储,不过如果你在进行持久化解决方案的决策,那么Redis值得你好好学学,因为它的处理能力非常棒。 InfoQ:还有哪些你认为值得谈谈的趋势? NoSQL及NewSQL之后的大趋势是不变的数据存储。在过去几年中,围绕着使用函数式编程跨多台服务器进行高效的可伸缩性处理,人们讨论了很多。通过最小化共享的可变状态,函数式编程模型避免了OO编程在大量计算机之间进行可伸缩性处理时所带来的死锁问题。 查看英文原文:Current Trends in NoSQL - Q&A with Peter Bell (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 怎么防止oracle幻读,脏读
- Swift中的负随机数
- ruby-on-rails – 覆盖设计after_sign_up_path_for不工作
- sgu194:Reactor Colling(无源无汇上下界最大流)
- ruby-on-rails – Errno :: ECONNREFUSED在UsersController
- xml零配置之源码下载
- ContextMenu在Flex的 spark Panel、TiltleWindow中不显示
- 如何在使用XSL合并后处理来自多个XML文件的所有数据
- objective-c – 重复符号:在静态库B中包含静态库A,在XCode
- ruby – 我可以为RSpec匹配器添加别名吗?