国产数据库发展现状分析
时间:2023-03-13 06:54:01 | 来源:电子商务
时间:2023-03-13 06:54:01 来源:电子商务
原作者 晓军
1992年加入Sybase中国,之后曾在Informix、 IBM任职, 现在就职于Oracle。专注于数据库和数据仓库十余年。
导语
从上世纪90年代开始,国产数据库的开发就不断被人提起,国内已有不少企业、团体在这个方面做了不少的投入。在此,我们与大家分享一下对几个数据库国产化途径的看法。我们主要讨论自主研发、引进代码和互联网厂商提供的云上数据库。
自主研发
国内自主研发关系型数据库的企业、单位基本上都是发源于上世纪90年代的,而且都是以大学、科研机构为主。到今天,有代表性的厂商有:
- 达梦 – 由华中理工冯玉才教授创办,完全自主研发。以Oracle为参照、追赶对象。
- 人大金仓 – 由人民大学王珊教授创办,自主研发。普通的关系型数据库。
- 神舟通用 – 神舟集团与南大通用合作开发的关系型数据库。更多地用于数据分析领域。
- 南大通用(Gbase 8a)- 南开大学的背景,2010年左右自主研发的,基于列式存储的,面向数据分析、数据仓库的数据库系统。
其他没有列出的,属于在下孤陋寡闻,绝无贬低的意思。
这些公司的发展分为两个阶段,以2007年作为分界线。前一个阶段集中在20世纪90年代,公司的出发点就是开发一款通用的,主要面向OLTP的关系型数据库。在那个年代,中国的人工成本还是比较低的,国外厂商的数据库,如:Oracle,Sybase,Informix,DB2都算是成本较高的产品。很多人认为,只要做出功能、性能、稳定性合适的国产数据库,就能有一定的市场,至少价格能够有优势;即便市场不成功,作为科研教学也有一定价值,至少申请科研经费和政府补贴是个好题材。
但是,这么些年下来,这些产品在市场上并没有产生大影响力。他们发展的这些年,也正好是本人在相应的国外知名厂商从业的这些年。从微观的角度看,国产自主研发的数据库败在仅仅追求大而全,而技术创新不足、没有特点,产品的稳定性一直上不去,也不敢做有挑战性的性能测试。所以,稳定性、性能都无法让市场信服。结果就是:稍微重要一点的系统根本没人敢用。
中国数据库软件这个市场,从80年代末一开始,就是伴随改革开放的自由竞争市场,政府基本没有对国产品牌的扶植和保护。因此,在国产产品的研发思路上,就不能够简单地模仿Oracle。Oracle的数据库软件,功能极为丰富,支持的语句非常全面,超过ANSI
SQL的标准,代码量堪称浩瀚。而一个国产的小厂商,要模仿Oracle开发一个数据库系统,开发一个与Oracle全兼容的数据库(而我们很多政府客户恰恰就在标书上要求这个,也不知道他们是支持国产数据库还是打压国产数据库),就好比乞丐与龙王比阔:这注定是一条艰辛且难以成功的道路。
那么,看看同期国外的小厂商又是怎么做的?
Sybase采用多线程代替多进程开发了服务器,一切围绕client/server架构,成为当年的新锐;一家叫做Express
Way的小公司开发了位图索引,被Syabse收购,发展出Sybase
IQ和列式存储,直到今天依然是Sybase的重要产品;90年代初,加州大学伯克利的Michael
Stonebraker教授提出了对象关系数据库理论,并以此成立了Illustra公司,然后被Informix收购,推出Informix
Universal Server;数据仓库大师Ralph
Kimball以多维关系模型理论,构建了RedBrick数据库公司,在星型连接环节提供特别的索引技术,后来被Informix收购,成为单节点数据仓库产品的主力;Netezza则是采用了可编程门阵列FPGA参与磁盘数据的扫描,最后被IBM收购,成为IBM数据仓库的主力产品……
因此,那些年间,我有一个感慨:每当我们认为关系数据库的技术已经到头了,已经是一个夕阳产业的时候,总会有一家极富创新的小公司跳出来,他们带着令人耳目一新的想法赢得市场的尊敬与成功。而可惜的是,这一切都没有出现在我们这几个自主研发的国产数据库“龙头企业”身上。
这样的话,这些国产自主研发的数据库产品就会典型地遭遇到:
- 没有特别的技术亮点和优势;
- 产品的稳定性差:客户不敢用它承担关键业务(甚至是普通业务);
- 生态环境差:成型应用少,合作开发商少;
- 产品技术发展滞后,与国外同类产品差距巨大;
这实际上是一个恶性循环,跳不出这个圈子,产品和公司是没办法发展的。不过,这些公司有能力生存至今,除了人工便宜,还因为每年能得到政府一定程度上的补贴;尽管从政府的角度看,这些补贴是打水漂的。
今天,我们对于这一类的产品的未来总体是不看好的,这是因为:20年对于一个高科技企业来说不是一个短暂的时间段。在90年代,即便是Oracle在整个市场普及的情况下,Sybase、Informix也还是在短短的几年间发展起来,并占据了一部分市场。如果一个高科技企业20年都没能发展起来,一定有一些关键的内在因素制约,其实已经说明他们不可能发展起来了。这些因素改变了吗?我们认为近两年来,仅仅是外部舆论的环境,似乎更加注重了国产化,但其它内在的因素都没有任何改变。与此同时,负面的因素也不少:其中最重要的是关系数据库软件大发展的年代已经过去了,今天我们面临的是经济发展减速、开源软件普及和云计算的转型。
依靠这一类“自主研发”的数据库产品去支撑中国数据库国产化基本是不可能的。世界的顶尖产品依然高速发展。今年2月,Oracle已经正式发布18c这个版本了。我们的自主研发,也许还在以Oracle 9i为目标,而且还没有令人信服的稳定性。
在2007年以后,一些国内的数据库公司意识到数据库软件应该跟随数据管理市场的发展。而数据分析(OLAP)被认为是未来具有发展潜力的一块(相对于传统OLTP数据库应用)。而且,数据仓库类的平台,对可靠性、时效性要求比较低。直觉是更适合于国产软件进行率先突破。这样,以神州通用、南大通用为代表的公司在分布式并行处理和列式存储数据库方面做了新的投入。
然而,这一块是一个发展迅速且技术路线存在争议的领域。从历史上看,大型的数据仓库,采用Teradata的客户占据一大部分,Oracle在那个领域的投入并不大。因此,在数据仓库上的国产化发展,并不能解政府的“自主可控”、替代、摆脱Oracle的燃眉之急。数据仓库领域在大数据概念被炒作之前一直不怎么受待见。另一方面,这个领域遇到的市场竞争也不小:数据仓库规模大了,有Teradata和DB2的压制;规模小了,有Greenplum的竞争;如果遇到界限模糊的,客户就直接延用Oracle了。
而今天,这个领域最大的竞争则是来自大数据的解决方案。本来,国产的数据仓库平台开始就是主攻中低端的(高端有Teradata的各种压制)。但是,之前主要的对手Greenplum竟然宣布开源了,背景是其东家Pivotal公司将重点转向虚拟化和大数据了。这样的话,专注于数据仓库的国产数据库有多了一个竞争对手,市场被进一步瓜分。要想进入良性循环就更加困难。
引进源代码
引进数据库源代码发展国产数据库,这在上个世纪对于国人来讲还是不敢想的。如今,经济发展了,有钱了;而且IBM也愿意迎合国人对于国产化的诉求,将搁置多年的Informix源代码拿出来“一马(码)多吃”,发挥余热。2015年以来,与IBM签订源代码授权的公司有华胜天成、南大通用(Gbase
8t)和星瑞格。这三个公司成为以引进Informix源代码发展国产数据库的代表。
在此,我们分析一下引进Informix源代码到底解决了什么问题?其实,数据库技术发展到今天,国人并非不知道数据库底层该怎么开发,而是自己写的代码在市场上磨练比较少,对稳定性信心不足,而这种信心的不足同样来自客户方面。所以,引进Informix的源代码,一个核心的作用就是利用Informix以往在中国市场上的声誉使客户获得信心。所以,这些拿着Informix源代码的国产数据库公司在做销售工作的时候往往需要反复向客户说明:“这就是Informix,这就是世界级的数据库产品!”,否则就体现不出与自主研发或抄袭开源的区别了。
对于Informix而言,国内的客户大致可以分为三类:
第一类是Informix的老客户,今天还在使用的。这些客户之前是认可Informix,而且坚持到了今天。这些客户中有一部分其实已经不愿意继续使用Informix(企业中的其它系统早已采用Oracle),仅仅是因为有老的应用跑在这个数据库上;一旦应用升级换代,Informix数据库也自然淘汰。还有一些客户虽然可以使用Informix,但是否换成国产的版本还不确定,他们还可能等待IBM对于Informix的继续支持、乃至升级。这部分客户其实是国产Informix厂商最适合作为起步的客户,但所剩的数量实在太少了。更严峻的是,IBM其实并没有彻底出售Informix,IBM还在继续发布Informix的后续版本。虽然非常缓慢,但还是有可能比这几个国产的厂商快一些,因为国产的厂商可是要从头读源代码的,要等到他们也能出新版本,时间不会短。但是,国内的这部分客户,一旦升级到IBM提供的Informix新版本,他们就绝难回到国产的Informix版本了,因为那就相当于降级了。这部分客户留给国产Informix的时间已经不多。
第二类是曾经采用过Informix的客户,如今已经转到Oracle上。这一类用户或许还是认可Informix技术的,但要让他们再回到国产的Informix上则非常难。对于这些客户而言,回到Informix,不管是IBM的还是国产的,都如同走回头路
- 很少有人愿意走回头路的。
第三类则从来就不是Informix的客户,对于这些人来讲,当年就没有认可Informix。今天,即便你说Informix是世界级的,你是中国的Informix,对于这类客户的感受依然是遥远和陌生的。
因此,我们并不认为花钱引进Informix源代码是国产数据库发展的最佳途径。这套源代码的市场效应其实是有限的,在技术上的帮助也是有限的。在技术发展日新月异的年代,经过10多年的搁置,Informix的代码、产品和创新已经算不得先进,技术的细节暂不在此赘述了。
需要指出的是:依靠代码的引进的另一个风险就是二次落后,这一点很多人可能还没有意识到。从目前的情况看,国产Informix数据库的代码在不远未来就会与IBM自己的Informix分叉。即便基于Informix的源代码,国产数据库到底能走多远,与世界先进水平之间的差距是扩大还是缩小,最终还是要靠自己。
类似的案例就是国产战斗机的发展:在抗美援朝年代,我们得到了苏联的米格15以及后来的米格17。那时候是中国空军与美国空军在飞机装备上差距最小的时期。我们在此基础上发展出自己的歼5、歼6。但是,几十年以后的科索沃战争、伊拉克战争的时候,我们的差距却又变得那么悬殊。因此,即便是今天的“世界级”,如果离开了强大的研发和创新实力,也会失去未来。
今天,拥有Informix源代码的国产数据库厂商,如果真的想全面掌控Informix技术,研发的投入绝对是不小的。Informix的主要模块的源代码就有2000多万行,Informix当年在美国的核心研发队伍就有超过200人,加上测试和周边团队,不下500人。要快速追赶世界先进水平,研发的规模不能小于这个(读别人的代码其实比自己写代码还要累!)。但目前的市场容量又不支持这样的投入。这是一个现实的困境,是不容易突破的。无论是华胜天成、南大通用,还是星瑞格,都没有像样的、有规模的研发队伍投入到Informix的源代码掌握中。他们对Informix的研发投入,都不超过40人。
2017年5月发生的事情彻底断绝了Informix成为中国国产数据库的希望:2017年5月,IBM把整个Informix业务卖给了印度公司HCL。印度的HCL是全面接管IBM
Informix,不仅仅是代码,而是全部的团队、公司、办公场所。IBM
Informix在美国的办公楼直接换了Logo,员工全部签了IBM的离职协议,同时签印度HCL的入职。印度的“数据库国产化力度”似乎更“大手笔”一些。这样,国内的几个半吊子Informix代码的厂商
-
华胜天成、南大通用、星瑞格,从此基本都断了根!这几年来,南大通用到处给国人宣传的口号“让中国人用上世界领先的数据库”,恐怕要改成“让中国人用上三哥的数据库”。
这已经表明,在Informix代码上发展国产数据库这条路,基本已经走不通:国内的这几个厂商面对十年前的巨量代码一筹莫展,要弄通又得花很多年,而且还是在资金、人员充足的情况下。即便到了那个时候(公司还存在),且不说他们与世界先进水平差多远,就是比邻国印度,都难以望其项背!
在引进源代码这类公司中,还需要一提的是浪潮。浪潮的K-DB数据库实际上是从韩国引进的。但浪潮并没有说明是否引进了源代码。所以,我们把它归为引进产品而非引进代码。从某种程度上讲,还不能算是“自主可控”,或者“国产数据库”,因为我们不能确信浪潮掌握的相关技术。我们知道,浪潮前些年采用了HP的安腾芯片推出自己的服务器。但不幸的是,除了HP自身走下坡路,Oracle更是在后来宣布Oracle数据库不再支持安腾。因此,浪潮的安腾服务器便陷入了无法提供Oracle数据库软件的窘境。一个不能运行Oracle数据库的服务器,市场份额的损失得有多大?为此,浪潮必须寻找一个Oracle的替代品,而且与Oracle越像越好,最好全兼容。这样,浪潮从韩国找到了K-DB。K-DB号称是与Oracle全兼容的数据库。但是业界有传闻说是K-DB是来源于早年Oracle源代码的泄漏。这个虽然很难核实。但我们可以考察一下韩国市场的情况:如果K-DB真有浪潮说的那么强,那它应该在韩国红遍天才对,因为韩国每年在Oracle上的支出是非常大的(Oracle在韩国的销售额近年来出现过好几个季度是超过中国的!)。可是,我们并没有发现K-DB在韩国很火。那么原因很可能是K-DB真的有不方便的地方:韩国是需要美国来保护的,韩国对于美国软件的知识产权上是不敢造次的。
同样,未来遇到某个国产数据库号称全部兼容Oracle的时候一定要注意。因为Oracle最有特色的地方就是功能非常繁多,语句极端丰富,即便大部分都不常用。其它公司要是追求这个,在研发上就是乞丐与龙王爷比富!在2010年前后,IBM启动了一个“破甲计划”,就是在DB2数据库中增加一个选项,使得DB2可以支持Oracle的各种语法。这个计划花费了大量的投资,结果依然有很多Oracle的语句与用法不能够支持。
互联网企业的云数据库
除了上述的传统国产数据库之外,近年来,互联网公司的云计算在市场上非常红火。尤其是阿里云,在中国的云计算市场上占据了主导地位。互联网公司拥有雄厚的资金实力,阿里巴巴在数据库研发上有大量的投入,并在阿里云上提供了自己的数据库。那么,云计算厂商在其云计算平台上提供的数据库能否承担起数据库国产化的重任?
在此,我们认为这是存在局限的:
1、云计算厂商主要的业务是提供云服务。因此,云计算供应商在云上一般会提供多种数据库平台,如:MySQL,PostgreSQL,自研的数据库。云厂商自研的数据库只是其中一种,并不见得有绝对的优势。只是提供给客户更多的选择。
2、云计算厂商开发的数据库系统,市场目标是在自家的云上提供服务,而不是作为传统软件卖许可证。因此,很多打算摆脱Oracle,采用国产数据库,但又还没打算上云的用户,就很难享受到这类产品。
3、每个云计算供应商开发的数据库只在自家的云上提供服务,其它云平台当然无法运行。这样,对于独立软件商来说,他们当然希望自己的软件能够运行在多个云平台上。在这个时候,他们的应用软件如果采用某个云计算公司提供的数据库,这就有些不方便了。所以,这些独立软件商需要一个类似传统的、独立的关系数据库,这个数据库可以在各个云计算平台上运行。同样的情况也发生在数据库的用户身上。
4、目前的云计算公司提供的数据库,其实也处于起步阶段。只是在资金、支持服务上因为云的关系,存在一定的优势。未来的发展还要看市场。
因此,云计算虽然在近年来发展迅速,而且也是未来的趋势。但云计算平台上的数据库系统还不能取代市场上对传统国产数据库的需求。
今天,国产数据库确实处于一个非常尴尬的局面。很多政府相关的数据库软件招标都指明了要求国产数据库。在这个过程中,政府实际上承受着不小的压力:美国就此指责我们违反商业公平原则,从而在美国本土对于中国企业,如:华为、阿里,等等,进行限制与施压。造成中国企业的损失。而在国内,真正做基层工作的人员,无论是出于对国产软件的信心缺失,还是由于自身的保守,抑或是收取了Oracle的好处,又纷纷诉苦,声称他们的系统离不开Oracle。从而造成的一种局面,就是管理层似乎不懂技术,只讲政治;而基层人员要为业务负责,又必须采购国外产品。同时,还有一帮同为政府部门的猪队友,给Oracle出具证书,证明他们在中国有实验室,Oracle产品可以算作是在中国生产的……
从另一个角度看,但凡有国产数据库参与的投标,只要是传统的关系数据库,无非就是人大金仓、达梦以及南大通用(Gbase 8t)。但这几款产品,各自确存在这样或那样的硬伤,对于承载中国数据库软件国产化的重任力不从心。因此,我们必须寻求新的出路。
你怎么看?欢迎留言讨论。文章为作者独立观点,不代表德昂信息立场。
想了解更多数据库有关知识吗?扫描下方二维码关注公众号吧↓↓↓
http://weixin.qq.com/r/hzoIEBLEBE97rVZz92_V (二维码自动识别)