nosql数据库技术成熟,nosql数据库技术与应用
现在最成熟的开源nosql是什么?分别有什么优缺点
NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
创新互联长期为成百上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为观山湖企业提供专业的成都网站建设、成都网站设计,观山湖网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。
虽然NoSQL流行语火起来才短短一年的时间,但是不可否认,现在已经开始了第二代运动。尽管早期的堆栈代码只能算是一种实验,然而现在的系统已经更加的成熟、稳定。不过现在也面临着一个严酷的事实:技术越来越成熟——以至于原来很好的NoSQL数据存储不得不进行重写,也有少数人认为这就是所谓的2.0版本。这里列出一些比较知名的工具,可以为大数据建立快速、可扩展的存储库。
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。
NoSQL数据库在以下的这几种情况下比较适用:1、数据模型比较简单;2、需要灵活性更强的IT系统;3、对数据库性能要求较高;4、不需要高度的数据一致性;5、对于给定key,比较容易映射复杂值的环境。
NoSQL会取代完全取代关系型数据库吗?
对此,前Google工程师,Milo(本地商店搜索引擎)创始人Ted Dziuba最近发表标题惊人的博客“I Can't Wait for NoSQL to Die”,对NoSQL的适用范围进行了分析。他认为, NoSQL也会带来一连串的新问题,并不会成为主流,无法取代关系型数据库。 他的理由是:Cassandra等NoSQL数据库在使用上并不方便,比如,修改column family定义时就需要重启。而且NoSQL更适合Google那样的规模,而一般的互联网公司都不是Google,早早地去考虑Google那样的规模的可扩展性,纯粹是浪费时间,存在巨大的商业风险。 他还透露,即使在Google,AdWords这样的关键产品也是基于MySQL实现的。 他在文中最后表示,NoSQL当然死不了,但是 它最终会被边缘化,就像Rails被NoSQL边缘化一样 Dziuba的文章因为言辞激烈,在社区里引起了强烈反应。 SQL数据库阵营赞同者大有人在。craigslist工程师、著名的MySQL专家Jeremy Zawodny表示,在读此文的时候,不时会心一笑。他说, NoSQL运动只是软件不断进化进程中的正常现象 。关系型数据库也会继续发展,MySQL社区不断推出的XtraDB或InnoDB插件, PBXT, Drizzle都是证据。各种技术竞争的结果是,我们获得了更多解决问题的选择。 drizzle项目开发者Eric Day也表示,NoSQL有很多值得学习的,但是目前大部分实际项目的最佳选择还是关系型数据库。 NoSQL阵营当然不会坐视不理,Cassandra项目组的Eric Evans表示,Dziuba提到Cassandra修改column family定义的问题其实很容易解决。而且,NoSQL并不是要取代MySQL,事实上Twitter仍然在用MySQL。如果关系型数据库能够承担负荷,那就用好了;如果不行,请考虑NoSQL。 而德国知名博客Code Monkeyism则嘲笑Dziuba看起来并没有用MySQL做过真实项目,因为MySQL如果没有memcache,基本上无法应付网站项目。他认为,NoSQL将使SQL数据库边缘化,而且一个重要理由恰恰是可以节省DBA的开销。 digg的前任首席架构师现在也在创业的Joe Stump说,自己现在的创业项目就是用NoSQL,而且列举了一系列问题挑战SQL阵营。
高性能 NoSQL
关系数据库经过几十年的发展,已经非常成熟,但同时也存在不足:
表结构是强约束的,业务变更时扩充很麻烦。
如果对大数据量的表进行统计运算,I/O会很高,因为即使只针对某列进行运算,也需要将整行数据读入内存。
全文搜索只能使用 Like 进行整表扫描,性能非常低。
针对这些不足,产生了不同的 NoSQL 解决方案,在某些场景下比关系数据库更有优势,但同时也牺牲了某些特性,所以不能片面的迷信某种方案,应将其作为 SQL 的有利补充。
NoSQL != No SQL,而是:
NoSQL = Not Only SQL
典型的 NoSQL 方案分为4类:
Redis 是典型,其 value 是具体的数据结构,包括 string, hash, list, set, sorted set, bitmap, hyperloglog,常被称为数据结构服务器。
以 list 为例:
LPOP key 是移除并返回队列左边的第一个元素。
如果用关系数据库就比较麻烦了,需要操作:
Redis 的缺点主要体现在不支持完成的ACID事务,只能保证隔离性和一致性,无法保证原子性和持久性。
最大的特点是 no-schema,无需在使用前定义字段,读取一个不存在的字段也不会导致语法错误。
特点:
以电商为例,不同商品的属性差异很大,如冰箱和电脑,这种差异性在关系数据库中会有很大的麻烦,而使用文档数据库则非常方便。
文档数据库的主要缺点:
关系数据库是按行来存储的,列式数据库是按照列来存储数据。
按行存储的优势:
在某些场景下,这些优势就成为劣势了,例如,计算超重人员的数据,只需要读取体重这一列进行统计即可,但行式存储会将整行数据读取到内存中,很浪费。
而列式存储中,只需要读取体重这列的数据即可,I/O 将大大减少。
除了节省I/O,列式存储还有更高的压缩比,可以节省存储空间。普通行式数据库的压缩比在 3:1 到 5:1 左右,列式数据库在 8:1 到 30:1,因为单个列的数据相似度更高。
列式存储的随机写效率远低于行式存储,因为行式存储时同一行多个列都存储在连续空间中,而列式存储将不同列存储在不连续的空间。
一般将列式存储应用在离线大数据分析统计场景,因为这时主要针对部分列进行操作,而且数据写入后无须更新。
关系数据库通过索引进行快速查询,但在全文搜索的情景下,索引就不够了,因为:
假设有一个交友网站,信息表如下:
需要匹配性别、地点、语言列。
需要匹配性别、地点、爱好列。
实际搜索中,各种排列组合非常多,关系数据库很难支持。
全文搜索引擎是使用 倒排索引 技术,建立单词到文档的索引,例如上面的表信息建立倒排索引:
所以特别适合根据关键词来查询文档内容。
上面介绍了几种典型的NoSQL方案,及各自的适用场景和特点,您可以根据实际需求进行选择。
nosql数据库有哪些
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。
随着大数据的不断发展,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。现今的计算机体系结构在数据存储方面要有庞大的水平扩展性,而NoSQL也正是致力于改变这一现状。目前Google的 BigTable和Amazon 的Dynamo使用的就是NoSQL型数据库,本文介绍了10种出色的NoSQL数据库。
虽然NoSQL流行语火起来才短短一年的时间,但是不可否认,现在已经开始了第二代运动。尽管早期的堆栈代码只能算是一种实验,然而现在的系统已经更加的成熟、稳定。不过现在也面临着一个严酷的事实:技术越来越成熟——以至于原来很好的NoSQL数据存储不得不进行重写,也有少数人认为这就是所谓的2.0版本。这里列出一些比较知名的NoSQL工具,可以为大数据建立快速、可扩展的存储库。
给一个地址吧
当前文章:nosql数据库技术成熟,nosql数据库技术与应用
网站路径:http://ybzwz.com/article/dscohep.html