【IT168 专稿】近几年来,NoSQL运动如火如荼,不断有业内的巨头加入阵营,发布和推广NoSQL的相关产品,开拓应用场景。传统关系型数据库软件厂商也不甘寂寞,新产品、新版本、新特性不断发布,新官司、新收购也频频爆出,即使一向沉静的数据库市场,也被震出了几丝波澜。
就让我们一起来回顾近两年间数据库市场的风云变幻和起伏跌宕,并展望未来几年,数据库市场及相关领域的发展吧。
ORACLE依然拉风
进入2011年,ORACLE继续拉风的强势,据Gartner近期发布的调查报告显示,在RDBMS市场,Oracle的市场份额已经占到48.1%,仍然位居第一位,其市场份额超过了之后的五个竞争对手的总和。
近些年来,ORACLE在资本层面频频发起重量级的并购,先后收购了PeopleSoft、BEA、SUN等知名软件企业,极大增强了自家整体实力。产品线上也是四面出击,现如今的ORACLE早已由一个单纯的数据库软件厂商,蜕变成产品集合涵盖了包括数据库、中间件、操作系统、企业化管理、商业智能、虚拟机、开发工具等,从软件到硬件,可对外提供完整企业解决方案的巨无霸厂商,完成从卖产品到卖服务的重大角色转变。
ORACLE的产品线漫长且数量众多,进入2011年,在笔者看来,下列产品值得着重描述,这些产品未来的发展,也有可能会对整个市场产生重大影响。
1) Exadata
2008年的OOW大会上,ORACLE与HP合作推出了具备划时代意义的数据库一体机Exadata,专攻OLAP市场,该款产品的硬件由HP提供,ORACLE则提供软件支持。完成对SUN的收购后,ORACLE变相拥有了自己的硬件产品 - 来自SUN的硬件系统。
经过资源的整合,ORACLE迅速推出了Exadata V2,硬件方面改用SUN的X86架构产品--现在是自家的产品了,数据库系统则升级到最新版本的11gR2,相比上一代产品,Exadata V2变化巨大。
首先是硬件方面的变化,虽说V2的整体架构相比一代产品没有大的改变,不过一方面数据库服务器的主机换成了SUN的硬件,配置有所增强,另外每台Storage Cell更是配置了384Gb的Flash Cache。在软件设计方面,Exadata首次引入了HCC特性(Hybrid Columnar Compression),中文直译的话应该叫做混合列压缩,这是在传统的行存储方式和数据仓库系统中常被应用的列式存储混合应用的一种变通方式,HCC相当于是在Block和Extend之间又引入了一级存储关系,定义为压缩单元(Compress Unix,CU),在一个CU内按照列的方式存储,而每个CU与CU则按照基本行的方式保存,相当于综合了列式存储高压缩比和行式访问的特点。
除此之外,Exadata还有一些Smart的技术,比如说V1中就被引入的Smart Scan技术,以及新增的Storage Index技术等,想必ORACLE也是希望籍着这些"Smart"的技术来表明,Exadata并非仅只是一个配置强豪华的黑匣子。
根据ORACLE此前发布的消息称,全球已经部署超过1000台的Exadata,用户遍及67个国家的23个行业,如果按照Exadata高昂的报价来计算,Exadata已经有了不小的收获。而且自Exadata V1发布至今,经过三年的市场培育以及这么长时间的实际检验,是否可以说,Exadata确实经受住了考验。
2) GoldenGate
即便已经拥有如高级复制、Streams等数据同步特性,ORACLE仍然于2009年收购了第三方专业数据集成公司GoldenGate,这项收购再一次充分体现出ORACLE公司的战略思维。在收购消息爆出之后,有些评论文章对于ORACLE公司是否能够有效整合已有的数据集成产品存有疑虑,其实,这种论断多半是由于不了解ORACLE公司产品特点。
事实上,在被ORACLE公司收购之前,GoldenGate就已在全球拥有数百家客户,其中不乏顶尖的金融及电信企业。由于具有跨平台、异构数据库的特点,GoldenGate的应用场景要广泛的多,包括数据库同步/高可用和容灾/应急备份/数据抽取/双业务中心/实时报表查询等场景均能适用。特别是在异构数据库、跨平台支持等场景下,使用GoldenGate更是具有先天优势,GoldenGate捕获到的Change Data是保存在独立的文件中,这就使得其具有跨平台、跨版本及DB无关性的特点。
GoldenGate目前最新版本v11.1,能够运行在包括Windows2000/2003/2008/XP、Linux、Sun Solaris、HP-UX/HP TRU64、IBM AIX、IBM z/OS等几乎所有的主流操作系统下,对于主流的DB2、Sybase、MS SQL Server、MySQL等数据库产品均有对应版本,内存数据库TimesTen及数据仓库Teradata也能被支持,尤其对于自家的ORACLE数据库,从8i到11gR2各个版本均能支持。
GoldenGate V11在增强功能和扩大平台支持的前提下,数据处理的性能也非常优秀,同时也支持在Standby系统中实现数据抽取,从而将对源端的影响降到最低,数据的转换、复制都非常快,可以实现关键系统的实时数据集成。通过GoldenGate的异构特点,使其拥有将ORACLE数据库和非ORACLE数据库统统纳入到同一个平台的能力,而在这之上仍然是由ORACLE的应用产品在支撑和管理整个企业的数据。
3) MySQL
2008年先是MySQL被SUN收购,到了2009年ORACLE又收购了SUN,这真是一波未平一波又起。在Oracle宣布对SUN的收购之后,很多业内人士对于MySQL的前景比较悲观,甚至有评论文章称Oracle可能放弃MySQL,而ORACLE对此则守口如瓶毫无表态,直到2010年的JavaOne大会,Oracle的首席架构师Edward Screven在大会上公开表态称:Oracle不会放弃MySQL,相反,还会更加努力的让MySQL变的更好。
不过,事实情况是,相当长一段时间里MySQL数据库几乎都处于停滞发展的情况。在Sun收购MySQL后,MySQL就面临着市场竞争力减弱的问题(倒是便宜了PostgreSQL),很多用户担心MySQL可能沦为商业性盈利的产品。
易主于ORACLE之后,MySQL相关的产品计划也一直没有清晰的定位,小版本的更新大多都是些小打小闹。直到2011年初,MySQL重大升级,对外发布了MySQL5.5正式版,虽说从主要增加的功能上来看并无重量级特性,至于其着力宣扬的两处重大改动:修改InnoDB做为默认存储引擎和提供Replication的半同步机制,前者在实际应用场景中早已成为事实上的标准设置,而后者,象征意义更加明显。
出于市场竞争的需要,ORACLE必须支持MySQL,其本身也确实具备支持MySQL发展的资源。如果MySQL停滞不前或被废弃,只会让新的开源数据库崛起,这对ORACLE的整个战略更加不利,对于这些因素,ORACLE想必都有清楚的认识。经过前面一年的沉寂,MySQL也再次回归快速发展的轨道,在MySQL5.5正式版推出后不久,MySQL5.6 RC社区版也在官网发布,并且明确了开发目标和方向,这些消息不管是对最终用户还是DBA都属利好消息。
同时,ORACLE也在加紧MySQL企业版和Oracle其他系列产品的整合。据悉在2011年,MySQL的企业版本将会于Oracle的 EnterpriseManager及审计工具、安全备份等产品进行整合,其中有些已经在Oracle的计划蓝图中了。
IBM继续“破甲”
在企业级RDBMS领域,IBM的DB2被公认为是ORACLE数据库的最大对手,两大厂商之间也是恩怨纠葛。ORACLE公司的CEO Larry Ellison多次将Oracle的产品与IBM相对比,公开叫板IBM,甚至用悬赏千万美元奖金的方式,用自家产品挑战IBM DB2的数据库性能。
面对挑战,IBM这个一向内敛的企业也酝酿着反击,并于2010年初展开了针对意味十足的“破甲行动”。整个“破甲行动”的核心,其实是以TCO(Total Cost of Ownership,总体拥有成本)做为攻击的重心。由于ORACLE采取的价格策略中维护费用很高,对于客户的咨询回复速度不够及时,IBM则针对性地鼓励并帮助用户移植到DB2数据库平台,提升用户TCO的整体方案。并加强与SAP等其它厂商的合作,进一步提升DB2数据库中在SAP应用软件的性能。
在数据库软件方面,IBM也在加紧提升软件功能,DB2推出的pureScale技术,在不付出较大性能做为代价的前提下,具备横向扩展的能力,帮助企业实现“向外扩展”的数据库集群,并具有高可用性、应用程序透明等多项特征,被认为是用来挑战ORACLE公司的RAC技术。另一方面,则是着重提高兼容性,按照IBM的说法,目前向DB2移植的成本和风险已经大大降低,DB2 从V9.7版本开始增加对Oracle数据库语法的支持,据称能够实现97%的应用程序与Oracle兼容,对于剩下的3%的兼容性问题,将通过IBM CDL新成立的由40位资深工程师组成的移植中心,帮助用户实现平滑移植。
Microsoft在发力
尽管是与ORACLE、IBM这样的老牌关系型数据库软件厂商同台竞技,但Microsoft公司的SQL Server表现不弱,并有逐年增强之势。根据RZ Research最新研究报告表明,在全球数据库领域,Microsoft的SQL Server占有率遥遥领先居于首位,这主要是得益于SQL Server优秀的操控体验,易用的管理功能。不过如果细分市场的话,SQL Server一直是在中小企业市场占据较大比重,这也与SQL Server一直深植Windows平台有重大关系,这部分市场竞争激烈,并且持续受到像MySQL这类开源数据库的挤压。
先抢占市场,再丰富功能,Microsoft公司的市场路线,一度被人形容为“农村包围城市”。这些年来,MS SQL SERVER一直在发力追赶,从云计算到虚拟化技术,再到自助商业智能工具等。
2010年4月,Microsoft公司推出了SQL Server 2008 R2,着重在商业智能、可扩展性和平台集成性方面做了进一步增强,在客户端支持方面SQL Server更是有天然优势,包括ADO、OLE DB、DAO、ODBC和新加入的ADO.NET、Native Client支持等,在前台开发工具中,则与Visual Studio天衣无缝的结合,甚至C#可以在SQL Server中进行开发,国际化、本地化支持方面也非常完备,所提供的丰富功能赢得了开发者的高度认同,以至于被人称为开发者版本。
2010年11月份,Microsoft在SQL Server专家大会(PASS)上发布了代号Denali的下一个版本,在延续了该软件的一贯风格的同时,继续针对各种IT人员开发出各式各样的全新特性。
根据已经公布的消息,在SQL Server 2011中新增功能包括:
· 列式存储,提供了更高的压缩比,并大幅降低查询检索时扫描的页面数量;
· 引入AlwaysOn技术,可视作是数据库镜像与集群的结合体,具体的实现方式是将一组数据库定义为一个可用性单元,以此来提供跨数据库对象引用的高可用体验;
· 增强数据可视化功能,SQL Server提供了一个新的基于Web的报表设置器,使用Silverlight框架,通过简单易用的展示工具和强大的可视化组件的配合,即可向终端用户提供报表,极大简化了传统的BI模型创建方式。
Sybase持续边缘
做为全球第四大数据库厂商,Sybase在规模上其实已经远逊于前三名,即使是Sybase旗下的关系型数据库管理系统主打品牌ASE,现如今还有多少人记得它曾经的名字:Sql Server呢。该系统是由Sybase当年联合微软及Ashton-Tate共同进行开发,Sybase身为代码的拥有者,对于SqlServer这个名字来说应该更加关系密切,然后,时过境迁,随着市场份额的逐年下降,影响力也日趋弱化,到最后为了能够与MicroSoft Sql Server有所区分,以至于连Sql Server的名字都主动放弃了,于是才有了现如今的ASE。
Sybase ASE(Adaptive Server Enterprise)目前已经发展到了15.5版了,新版本自然也带来了数项新特性,包括推出了对内存数据库的支持,ASE 15.5的内存数据库有两种类型:完全内存数据库(没有磁盘驻留)和松缓持久化数据库(作为内存数据库,被可用内存的限制时,以及在合理关闭时可被持久化),可以应对不同的场景;最新版本的ASE 15.5也完全能够支持Adaptive Server备份服务器并集成TSM(IBM Tivoli Storage Manager),相信会使得备份对象的管理更加便利;此外,最新版本还支持用户创建其他的Tempdb组;支持用户自定义存储过程的延迟命令;提供了新的压缩算法,可用于数据库压缩备份,相当该项算法引进会使得内存和CPU消耗方面更加高效。
在级数据仓库解决方案方面,Sybase拥有企业级数据仓库分析软件Sybase IQ,就在本月7号,Sybase宣布其基于新一代全共享的大规模并行处理(MPP)技术的Sybase IQ 15.3将全面上市,新版本提供常用和新型编程语言版本的API,以及为软件开发人员简化整合过程的Web Services接口,进一步强化Sybase IQ将业务分析集成到应用程序和业务流程的能力。
在移动数据库领域,Sybase处于远远领先的地位,其ASA(SQL Anywhere)拥有半数以上的市场份额,2010年7月,SAP公司出价58亿美元完成了对Sybase的收购,当时就有不少业内人士认为SAP收购Sybase意在潜力巨大的移动信息化市场。
通过将 SAP 企业级应用软件产品组合和 Sybase的数据库、移动应用产品等技术的优势互补,SAP 能够提供一个完整且优化的高效业务分析基础架构。
不过,由于Sybase在全球数据库领域市场份额已经极为弱化--尤其相较ORACLE数据库而言,而SAP的很多客户却均使用ORACLE数据库作为数据支撑,SAP公司面对这种窘境,在平台整合期恐怕异常痛苦,其次,完成对Sybase的收购后,SAP已经涉入IBM等合作的核心业务领域,未来面临直接竞争恐怕避无可避,这在相当程度上也会对SAP公司与其它厂商的合作关系及未来业务埋下隐患。
NoSQL愈发兴旺
曾几何时,应用开发就是写个客户端或者网页,后端程序向数据库中的表对象执行增删改查,这一模式延续了数十年,直到现在仍然有相当多的应用基于这种模式。不过,随着数据量的爆炸式膨胀,特别是互联网应用,对高并发的数据存取性能要求越来越高,对海量数据和访问和数据存储的横向扩展需求欲发迫切,传统模式在应对新形式下新需求时,频繁地暴露出很多不足。
2009年,一场“NoSQL”运动的兴起,让很多人激动并积极投入了力量。所谓“NoSQL”运动,通常所指的是非“关系型数据库”应用,国外的互联网巨头早把精力投入到了NoSQL产品的研发并广泛应用,国内众多门户及新兴的WEB2.0网站也在利用各种开源NoSQL技术来解决实际问题。
但是,就目前来看,没有什么技术比“NoSQL”更加混乱,想要在这个领域紧跟潮流非常困难,新的项目和技术层出不穷,即使是NoSQL阵营内部,也在彼此交锋不断,不过这一点也从侧面说明了NoSQL产品的热度和活力,以下列举几类NoSQL应用场景和流行的产品:
· 用于列式存储及分布式计算的有Hadoop项目中的Hbase(Google BigTable的开源项目),FaceBook的Cassandra,GreenPlum,来自Yahoo的PNUTS等;
· 用于文档存储类的包括CouchDB、MongoDB等;
· 用于高可用读写的Key Value方案更是不胜枚举,包括MemcacheDB、Tokyo Cabinet/Tyrant、Redis、LightCloud、BeansDB等等。
NoSQL运动虽然如火如荼,但对于很多最终用户来说,NoSQL方案的应用仍不是做为主要存储方式,很多场景下还是将其做为一种优化的技术手段在应用。这种方式倒并非不可取,不过,其所依托的基础数据来源,仍然是传统RDBMS产品。
之前有消息称Facebook、Digg、Twitter都宣布将淘汰既有的MySQL系统,改用Cassandra方案,不过后来Twitter又在一篇官方技术博客中提到会暂停使用 Cassandra 来代替 MySQL 存储 feed 的计划,究其原因说到底还是因为 Cassandra 仍然缺少大并发海量数据访问的案例及经验。同时也有NoSQL运动的先行者意图脱离这一阵营,比如CouchDB就宣传自己不再是NoSQL的一分子。综合来看,NoSQL产品弥补了关系型数据库在某些应用场景的不足,但是它也并非功能较多,仍然需要时间的检验,按照毛爷爷的话讲就是:前途是光明的,道路是曲折的。
向前看,趋势和方向
1) 互联网领域NoSQL应用成为主流
在互联网应用领域,特别是web2.0网站的一些常见需求,比如数据库高并发读写、海量数据的高效存取、高可用性及高扩展性架构等,传统RDBMS应对这些需求时异常的艰难,或者实现成本极为高昂。
NoSQL运动在2009年出现井喷,经过三年的蓬勃发展,发展出了众多不同应用场景的产品,其所拥有的高效海量数据处理能力、高并发存取和简便的横向扩展等特点,非常适合互联网应用。笔者认为,在互联网领域,未来大部分数据库市场有可能会被NoSQL产品占领。但是,有必要重申NoSQL的原意,并不是NO SQL,而是Not Only SQL,它并不是要取代目前广泛应用数十年的传统数据库,在一定程度上,它也会与传统RDBMS产品相配合。最终所采用的技术模型,关键还是取决于产品的各个模块,在可靠性/一致性与高性能之间的取舍了。
2) “云计算”正步入实质性阶段
中国古典名著“三国演义”的开篇有这样一句话:话说开下大势,分久必合、合久必分。从大的趋势上来说,数据库系统发展的这二三十年,也大致符合这一规律。
在上个世界的七八十年代,广泛的应用需求再加上产品的空白,促使市场产生了各类的数据库模型:层次型、网状型、关系型,并诞生了多家数据库系统软件厂商。到了上世纪的八九十年代,大型网络和计算环境的普及,又使得相关企业的需求趋同,最终造就了像ORACLE、DB2、Sybase这类的大型关系型数据库软件厂商。到了本世界初,随着互联网时代的到来,当下应用需求再次趋向多样化,多数企业更需要灵活、轻便,功能更切合自身需求的数据管理系统,而不是即大又全、价格还昂贵的通用系统。
对于数据库软件厂商来说,这即是挑战也是机遇,在当前数据库市场基本成熟,市场增速放缓的现状下,只有变化才能产生新的机会,NoSQL运动当下的兴起,又何尝不是因为暗合这种需求呢。
而随着互联网业务的迅猛发展,数据规模急剧的膨胀,与之对应的IT硬件更新速度完全无法与之相比,存储和管理海量数据已越来越成为亟待解决的问题,云计算的概念也是由此应运而生,在这方面,NoSQL所具有的高性能、高可用性、高扩展能力非常适合“云”的需求,也是目前“云数据”应用的主力。
尽管有观点认为,关系型数据库不合适用于云计算环境,但传统的RDBMS软件厂商并不甘于沉寂,都在加紧推出自己的应对方案,Oralce企业云基础架构解决方案将Oracle的Linux操作系统、虚拟化平台、ZFS存储设备和Sun刀片服务器硬件整合在一起,被设计用来与Oracle企业管理器协同工作,并且据称Oracle Database下一个版本,极有可能定义为12c(c即cloud)。蓝色巨人IBM也不落人落,推出的“蓝云”也是软硬件结合。Microsof虽然没有自己的硬件产品,不过由于其拥有全球最多的软件用户,影响力不能小视,有消息称在即将发布的代号“Denali”的新版SQL Server,将引入一个专为Visual Studio准备的开发工具,在企业与SQL Azure云端数据库之间,架起应用程序开发与部署的桥梁。Sybase IQ则宣称其主推的列式数据库更适合云计算时代的数据存储。亚马逊更是在今年2月份即已宣布,旗下的Relational Database Service服务于今年第二季度开始支持MySQL数据库。
云计算已经成为未来海量数据管理的重要方向,从成本和性能两方面考虑,会有越来越多的企业愿意把自己的数据中心转移到公有云或私有云。
3) 数据仓库领域大有可为
虽然在新兴互联网业务模式下,相比时下火热的NoSQL产品并不占优,但在数据仓库应用环境下,传统的关系型数据库仍占据着重要的市场,并且笔者认为在未来很长一段时间内,都仍将占据着主流的位置。
根据Gartner今年2月发布的最新报告表明,在数据仓库领域,数据库管理系统中ORACLE、IBM、Sybase(SAP)等都处于魔力象限的领导者象限,Microsoft公司的Sql Server处于挑战者象限,但纬度已经非常接近领导者象限的范围。
NoSQL阵营也有产品入围,并且表现出色,Greenplum(EMC)也处于领导者象限,但相比在互联网领域相同阵营产品的,在数据仓库领域中就显得比较孤单。
笔者认为这与厂商的投入有关系,ORACLE数据库做为关系数据库领域最强大的数据库软件,有完善的数据仓库解决方案,并且ORACLE公司于2007推出Exadata V1,在产品发布时就明确专用于OLAP,剑指竞争对手Teradata。随后推出的升级版本V2在增强配置及功能的前提下,将OLAP应用也囊括其中。据ORACLE自己发布的统计数据来看,硬是生生地从数据仓库领域的老牌领导者Teradata中抢占了不少市场。
而另一个巨头IBM则是即有DB2这样的关系型数据库软件,也有于2010年收购来的数据仓库与数据分析专业厂商Netezza,合力在数据仓库领域拼抢市场。Sybase做为首家推出基于列存储的关系型数据库软件,其主推产品Sybase IQ提供多个颇具特色的技术,包括Bit-Wish索引技术,预连接(PReJoin)策略,得益于列式存储所带来的数据压缩和并行处理的高效等等。
4) DBA变身架构师
关系型数据库仍然主流的时代,工程师们往往只需要专注于所使用的数据库产品的特性及相关维护工作上,但在现如今这样一个信息大爆炸的时代,生成海量数据的应用遍布四周,虽然同样还是面对数据,但不同的应用有各自不同的特点和需求,各种模型各种实现也纷纷兴起,越是大型的应用,越会面对复杂的存储层管理需求,工程师就需要有能力根据应用的特点,使用不同技术满足不同应用的需求。
有需要采用cache层处理的,有需要Key Value数据库支持的,有应用列式存储的,有支持海量文件的,也有管理重要数据的关系型数据库。如GoldenGate这类数据集成软件的应用,也会将产品中数据在不同平台流转的现象变的更为普遍。
软件越来越丰富,版本也不停在升级,功能不断在增强,智能化程度越来越高,技术产品确实越来越易用,工具也会越来越简便,但这个行业正变的越来越复杂,DBA必须做好从维护传统的单一平台系统到架构师的转变,储备更多的“食粮”应对新时代下的不同需求。