数据管理:表象之下、有容乃大
如果让数据管理市场的各类产品都凑到一起演奏一场打击乐,那么NoSQL无疑是鼓声最强的。
近两年随着消费型数据的急剧膨胀,NoSQL数据库在媒体和各种技术会议中也是风生水起,以至于参加这些会议时更多听到的是传统关系型数据库的“不是”。尽管我们可以将这些消费型数据称为“金矿”,但它们毕竟不是铸好的金砖,关键信息还是继续保存在传统的商用数据库中。回忆那些实际关系到我们切身利益最重要的信息,几乎没有保存在NoSQL中,并且通过所谓的OpenAPI被全世界开发者尽情消费。
因此,NoSQL热闹的表象下,真正支撑我们这个信息世界的数据管理平台短期内依然是商业关系型数据库产品。
相对计算机技术史而言,关系数据库系统的历史已经“够长”,因此对一些大型企业用户来说,尽管他们不像大型互联网企业那样依赖NoSQL数据库,单就是企业里林林总总的关系型数据应用也已难以招架。但面对多出来的这一大块市场“蛋糕”,几大商用数据库厂商似乎都急于瓜分它。
Oracle走的路线是“关系型数据库+开源+NoSQL”,也就是依托Oracle现有的数据库市场优势,凭借一系列兼并,以开源的关系数据库MySQL和标准的NoSQL延伸产品Oracle Big Data Application扩展市场。不过主角依然是Oracle的关系数据库,上面的两个“帮手”,一个是为了牢牢把握人气,继续占据“社区”的优势,另一个是为了作为关系型数据库的有益补充,管理现代企业内部越来越多的Blog、Email、视频、音频、地理信息和图像信息等。
微软SQL Server采用的方式与Oracle也非常类似,通过SQL Azure平台和空间数据格式的支持,将SQL Server从企业数据中心延伸到更大的舞台。不过SQL Server对于NoSQL标准的支持与Oracle不同,微软似乎准备在SQL Server这一个数据管理产品内部解决,而不是提供新的独立产品,相信这也与微软这几年一直运营和使用Azure平台的实践密不可分,毕竟敢于直接在自己的主干产品上“下手”还是需要一定的积累和自信。
有关IBM的广告似乎总是被“智慧”包裹着,在用户眼中IBM提供的都是商业解决方案、信息服务,DB2的声音似乎要比Oracle和SQL Server静谧得多。不过从产品角度看,DB2的兼容性扩张路线似乎更具侵略性,因为它是通过对竞争产品特定SQL语言的兼容,实现更快的数据处理业务层面的迁移,而不仅仅停留在将对方数据的导入、导出上,或者即便不把对方迁移到DB2自己的数据库,也可以将DB2定位为一个“发号施令”的中心,直接操作和管理异构数据库。
如果对三个产品兼容并蓄的思路打个比方的话:Oracle采取的是“拉帮结伙”的办法,关系型数据库部分继续“一枝独秀”,而新需求则通过新加入的“帮手”顶上去;SQL Server则是采取“自强”的办法,努力学习处理这些新问题的办法,并将它们内化为自己的功能;DB2除了采用“拉帮结伙”的办法外,还在配合新产品满足新需求的同时,针对竞争产品的“看家”功能提供近乎全面的支持,确保用户基于另一家数据管理产品开发的内容可以直接迁移到DB2中,直接“釜底抽薪”。
Oracle通过收购RDB将原有VAX、VMS的用户直接收归旗下,而且凭借自己的开发技术优势,不仅为RDB提供了新的JDBC驱动,同时似乎有将COBOL重新唤醒的意思。尽管这20多年里,C++、Java、C#语言一直占据企业应用的主力,但COBOL在处理这类应用时,也许比那些依靠各种框架、中间件才实现业务逻辑的类C语言更在行。
正是通过不断兼并,Oracle在凭借关系型数据库进入用户企业并占据绝对份额之后,将围绕数据库的一系列“融合”后的产品也推向用户,如WebLogic、Java EE、MySQL……
对于IBM而言,由于内部产品线分解比较细,因此在兼容过程中多管齐下。
一般在数据迁移过程中,前期最难的就是分析大体需要多少工作量、需要什么技术背景的DBA或开发人员配合迁移,这方面IBM的MEET(IBM Migration Enablement Evaluation Tool)工具似乎一上来就有先声夺人的意思,因为它分析的是Oracle、Sybase等其他产品中各种数据对象的规模,并且判断这些对象与DB2数据库的兼容性。
另外,就是各种数据迁移工具,与以前简单的ETL工具不同,IBM推出的一些免费的迁移工具更多是站在待迁移对象的角度考虑如何方便提取,并让这些迁移后的数据对象更好、改动更少地在DB2上运行。
而DB2的Oracle兼容模式(Oracle Compatibility Mode)则是在DB2内部实现了一个准PL/SQL语言的运行环境,包括对PL/SQL语法、PL/SQL常用函数、PL/SQL常用Native Package的支持,因此用户自己开发的PL/SQL存储过程、触发器、包以及相应的Java程序、OCI(Oracle Call Interface)程序几乎可以很少或者不做修改就可以运行在这个模式中。
而且,在几年前DB2似乎渐渐淡出PC服务器市场时,IBM也一直在通过联邦数据库确保其大机、小型机数据环境与其他数据库的连通性。相对Oracle Database Link、SQL Server Link Server技术而言,IBM似乎把联邦数据库的出镜率安排得更高,其目标除了解决客户现实技术问题外,相信商业上也是增加其存在感的有效手段。
另外,IBM DB2数据库在XML数据处理方面的“杀手锏”也让DB2在一批信息结构复杂、易变的商业情境下大显身手。
而对于“Brand New”的这些NoSQL新贵们,相对商用关系型数据库它们还处在“航海大发现”阶段,NoSQL的版图远没有划分完成,它们都在尽力“圈地”,因此似乎几个主要产品还没有用多少“心思”考虑如何兼容对方,对于这些“老牌”的商用数据库产品似乎只有尽可能“取而代之”而不是兼容的心思。反过来说,这些“老牌”商用数据库正在极力兼容这些“新贵”们。
当然,现在谈论新老两派数据库谁会在商业上更加成功为时尚早,因为当前IT业正是投资的高峰期,等到这轮IT业周期再次回到低谷时也许才能看清楚。
作者王翔,软件架构师,主要研究方向为XML、.NET、领域设计和PKI应用。工作之余喜爱旅游、写作和烹饪。