大数据时代的数据库和数据技术(下)

时间:2022-07-20 04:49:52

大数据时代的数据库和数据技术(下)

数据处理的需求演化及处理技术

2.1 大数据数据库的特点

传统的关系数据库,从其创立至现在,长期占据数据库的绝对统治地位。但是,数据挖掘、商业智能和可视化技术的发展,特别是它们处理非结构化数据的能力,动摇了传统数据库的牢固地位。于是善于处理非结构化数据的种种数据库工具大量产生,这其中必须优先提及的便是NoSQL(意为Not Only SQL)及NewSQL(意为New SQL)两大数据库阵营。

现在随着大数据时代的到来,由Carlo Strozzi开创的NoSQL以其技术上的先进性、方便性得到了越来越多的认可。NoSQL改变了数据的定义范围,其“数据类型”可以是文本、图片、影像、网页,也可以是整个文件;NoSQL数据库是非关系式的、数据间的关系更加复杂、多样,类型和相互关系具有多种扩展可能、存储方式也多采用分布式结构。经过十多年的发展,NoSQL取得了成功,采用NoSQL技术的产品也不断增长,目前NoSQL网站上()已经收集了150余个相关产品,人们也把采用类似NoSQL结构和原理的数据库统称为NoSQL数据库。

最初NoSQL有意排斥关系数据库的ACID规则和SQL特性(后发现其弱点又在一定程度和一定范围内支持数据的一致性要求和SQL特性)。NoSQL坚持分布式领域的CAP理论,CAP的含义为:

Consistency,一致性。数据一致更新,所有节点访问同一份最新的数据副本;

Availability,可用性。对数据更新具备高可用性;

Partition tolerance,分区容错性。能容忍网络分区。

CAP理论主张任何基于网络的数据共享系统,都最多只能拥有以下三条中的两条。而这种“三取二”的法则以及具体理解与执行的争论就一直存在。想同时满足三者,或者过分强化割舍三者之间联系均会破坏数据系统的效率和效果。32岁便获得加州大学伯克利分校终身教授的Eric Brewer提出了BASE理论(Basically Available, Soft state, Eventually consistent;基本可用、软状态、最终一致性),它用一种更注重可用性、更便于理解的方式解释分布式系统的特点。

NewSQL注意到关系数据库的灵活性不足、数据库互锁机制效率低下的特点,同时也意识到NoSQL不支持SQL所带来的不便,它采用了一种近似折中的方案,既支持SQL并保证一定程度的数据一致性,同时也提供NoSQL数据库的非关系数据处理的扩展功能,因而从产生之初便受到业界的喜爱,相关产品不断涌现。NoSQL和NewSQL常见产品及其分类情况如图所示。

2.2 NoSQL及其发展趋势

在NoSQL潮流中,最重要的莫过于Apache基金会的Hadoop。它是一个领导者,是一个典型的分布式文件系统,是一个开源系统。用户可以在不了解分布式底层细节的情况下,借助Hadoop开发分布式程序,它取得了成功,成为分布式数据处理界的巨兽(Hadoop的Logo就是只大象)。 现在甚至出来了“无分布不Hadoop”——每个传统的数据库提供商都急切地声明支持Hadoop。关系数据库的传统霸主Oracle公司也将Hadoop集成到自己的NoSQL数据库中,Microsoft、Sybase、IBM也加入了收纳Hadoop功能的竞赛中。

第二位领导者,MongoDB,是一个成功的文档处理型数据库系统,它被称为“非关系式数据库中最像关系式数据库的产品”。MongoDB查询功能强大,特别适合高性能的Web数据处理。

Cassandra是这个领域中的一个另类产品,它兼有键值数据库和列值数据库两者的长处,它的查询功能很优秀。虽然运行Cassandra集群难度较高,但它升级后的分析能力使得很多人感到惊讶。

Redis也是相当好的一个产品。对故障恢复的良好支持以及使用Lua的服务器端脚本语言是明显区别于其他软件之处。使用Lua确实带来了一些震动,因为更多的人喜欢和习惯JavaScript服务器端语言。但是,Lua是一个整洁的语言,它并为Redis开启了潘多拉盒子。

CouchBase在可扩展性和其他潜在因素,使其看起来是一个很好的选择,尽管Facebook以及Zynga面临着关键开发者离开的风波。CouchDB会变得更好抑或相反?只要数据库做得好受众就会欢迎,现在看来,它确实做的很好。

还需要提及的是Riak,在功能性和监控方面它也有了巨大的提升。在稳定性方面,它继续得到大家的赞美:“像巨石一般稳定、可靠且不显眼……”。Riak 数据模块化方面做得很有特色。

在图中,涉及了多个维度:关系型的与非关系型的、分析型的或操作型的、NoSQL类型与NewSQL类型的。最后的两个分类中,对于NoSQL有著名的子分类“键值类数据库、文档数据库、图存数据库和列存数据库。对于NewSQL本已建立“存储引擎、簇享数据、云服务”等类别。

最初,NoSQL破坏并引以为荣的特点是它不满足ACID(原子性、一致性、隔离性和持久性),这是它的优点,也是其问题所在。据美国Forrester的统计数据,在企业中的业务数据将有25%是结构化数据。无论是传统企业,还是引领技术潮流的大型网络公司,其数据库体系中都不可避免的共存着传统的结构化数据(如用户的标准信息,数据库元数据信息等),也存在着图片、视频、文档或网页等非结构化数据,所以关系数据库与NoSQL数据库并存将是数据库技术发展的基本面。另一方面,关系数据库、NoSQL和NewSQL都充分认识到了对方的长处和客户需求,每一个新数据处理技术都在“拼命地集成”其他范围数据库中的特性。NewSQL系统实现NoSQL的核心特性,而NoSQL越来越多地试图实现“传统”数据库的功能如支持SQL或在一定范围内“有保留地支持ACID,至少是可配置的持久化机制”。

可以肯定地是,无论是关系数据库的发展、NoSQL的强势展开、NewSQL的跃跃欲试,还是传统关系数据库大领军者进入NoSQL领域,大数据时代数据爆炸式增长的同时,数据库技术将变得更加强大、高效,也许不久的将来人们就不用再区分关系/非关系数据库了。

上一篇:普通高校艺术理论课程教学目的及方法研究 下一篇:浏览器 8期