技术开发 频道

数据库选型之高人气NoSQL盘点与解析

  【IT168 评论】近年,NoSQL数据库发展势头迅猛,在DB-Engines数据库排名中,前十位有三个是NoSQL,且从整体看来基本流行的NoSQL数据库都呈上升趋势。其在近几年时间里,爆炸性地产生了50到150个新的数据库,甚至可能更多。

数据库选型之高人气NoSQL盘点与解析

  然而,NoSQL出现几年时间,很多人还是不了解它,加上信息来源多,观点不一,真正有需要的用户的反而会不知如何选择。什么类型的数据库属于NoSQL?它们分别有什么特点?应用场景是什么?本文以DB-engines八月最新发布数据库排行榜为依据,以流行程度为序梳理几种高人气的NoSQL数据库的类型及其特点。

  随着web2.0和移动互联网等新生内容的出现,尤其是大规模高并发数据和复杂数据类型的应用,传统的关系型数据库已经无法应对,因此各类文档型数据库、图形数据库等出现了,这些非关系型的数据库被统称为NoSQL。

  文档型数据库(Document Stores)

数据库选型之高人气NoSQL盘点与解析

  MongoDB是最流行的文档型数据库,也是人气最高的NoSQL数据库,它是关系数据库和非关系数据库之间的产物,其功能丰富,能够支持复杂的数据类型,但仍然保留着关系数据库的一些属性(查询、索引)。MongoDB在存储数据时采用内存到文件映射,采用GridFS存储大数据或元数据。它具备网站实时数据存储所需的复制及高度伸缩性,适用于需要动态查询支持的场景,或是对大数据库有性能要求的情况。值得注意的是,一些业内人士曾认为MongoDB会变得无关紧要,但就在这一说法出现不久,2015年初MongoDB就获得了8000万美元的融资,而它在一年前刚刚获得过1.5亿美元融资。

  开发语言:C++

  协议:自定义/BSON

  是否开源:开源

数据库选型之高人气NoSQL盘点与解析

  CouchDB是一个面向文档的数据库管理系统,可以通过RESTful JavaScript Object Notation (JSON) API访问。它能够双向复制数据,持续进行或临时处理。CouchDB适用于数据变化较少的预定义查询,以及需要提供数据版本支持的应用程序。现在,人们对它的关注度已经不如以前。2014年,CouchDB项目的积极贡献者Cloudant公司被IBM收购,将CouchDB加入IBM技术库,整合到SoftLayer全球公有云云之中。

  开发语言:Erlang

  协议:HTTP/REST

  是否开源:开源

  列存储数据库(Wide Column Stores)

数据库选型之高人气NoSQL盘点与解析

  Cassandra最初由Facebook开发,于2008年转成开源项目。它是混合型的非关系数据库,在网络社交云计算方面应用较理想,读操作比写操作快很多,较适用于银行、金融、数据分析等领域。

  开发语言:JAVA

  协议:自定义/Thrift

  是否开源:开源

数据库选型之高人气NoSQL盘点与解析

  HBase是Apache的Hadoop项目的子项目,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是Google Bigtable的开源实现,它利用Hadoop MapReduce来处理HBase中的海量数据。近日腾讯将HBase与大数据各平台打通,应用于其大数据领域,京东、新浪微博等企业的部分业务也有对HBase的整合和应用。

  开发语言:JAVA

  协议:自定义/Thrift

  是否开源:开源

  键值数据库(Key-value Stores)

数据库选型之高人气NoSQL盘点与解析

  Redis是支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,它提供多种语言的API。其特点是每次存储一个数据时,是根据Key进行索引存储的。Redis适用于数据变化快且数据库大小可预见的应用程序,股票、数据分析、实时数据搜集、通讯等。7月阿里云宣布推出了自己的Redis云数据库KVStore for Redis,应用于游戏、电商、社交等行业。

  开发语言:C/C++

  协议:Telnet-Like

  是否开源:开源

  搜索引擎(Search Engines)

  搜索引擎用于对NoSQL数据库管理系统的数据内容搜索,其特点是支持复杂的搜索表达式、全文检索、对搜索结果排序分组、地理空间搜索以及高扩展性的分布式搜索。

数据库选型之高人气NoSQL盘点与解析

  Solr是一个高性能,独立的企业级搜索应用服务器,它提供了比Lucene更丰富的查询语言,目前很多企业运用solr服务。其主要特性包括:缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供基于Web的管理界面等。Solr主要用于建立索引和搜索服务,它在年初刚刚推出了新版本5.0。

  开发语言:Java5

  协议:Javabin

  是否开源:开源

数据库选型之高人气NoSQL盘点与解析

  Elasticsearch是一个基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎。Elasticsearch设计用于云计算中,实时分发,且是分布式的,不需要其他组件。在处理多租户时,Elasticsearch不需要特殊配置,而Solr需要更高级的设置。但Solr比较成熟稳定,拥有更大的开发和贡献社区,支持添加多种格式的索引,此为Elasticsearch与Solr二者异同之处。

  开发语言:JAVA

  协议:Apache2

  是否开源:开源

  图形数据库(Graph DBMS)

数据库选型之高人气NoSQL盘点与解析

  Neo4j是基于关系的图形数据库,其将结构化数据存储在网络上,自带web管理功能,且支持在线备份。它是一个嵌入式的、具备完全的事务特性的持久化引擎。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。Neo4j适用于图形一类数据,例如公共交通网络、地图及网络等等。2015年初Neo4j获得了2000万美元的新一轮融资,累计金额达到4500万美元。

  开发语言:JAVA

  协议:HTTP/REST

  是否开源:开源

  从上文中也可以发现,流行的NoSQL几乎都是开源数据库,这也是它如此流行的原因之一,开源技术增加了它的灵活性和易用性。但大多数NoSQL解决方案还不够完整,后期维护和技术支持不足,缺少权威企业的背后支撑和足够的软硬件研发投入。虽然甲骨文推出了自己的NoSQL数据库,但该数据库基于其自身客户需求而来,被绑定在甲骨文大Big Data Appliance中。目前多数使用NoSQL的企业更愿意应用混合部署方案,且需要投入资源对其进行改进和整合。所以,企业应根据自身需求及能力,理性选择,不要盲目跟风。下图为DB-engines发布的最新数据库增长趋势图,给大家作为参考。

数据库选型之高人气NoSQL盘点与解析

0
相关文章