前言
你好,欢迎关注微信公众号:每天读本书学堂,每天搞懂一本书,日拱一卒,每日精进。
今天我要为你解读的这本书,叫《中国方案》,副标题是“中国数据库追梦之路”。讲的是,国产数据库产业从诞生至今的发展历程。
数据库是什么呢?它是一种用来储存数据、管理数据的基础软件,全称是数据库管理系统。为什么今天我要给你讲一本关于数据库的书呢?有这么几个理由。
首先就是,在这个信息化的社会,数据库扮演的角色,比你想象中更重要。如果没有数据库,我们平时习以为常的很多服务,都会分崩离析。你没法淘宝购物,没法微信支付,没法外卖点餐,更没法投资理财。因为如果没有数据库,那么你点的单、付的款、下的指令都没法留下数据痕迹,就相当于是从没有发生过。一个信息化社会,它存在的基础,就是数据;而数据库,就是支撑信息化社会运转的关键基础设施。
再有,最近几年,我们经常说,中国在芯片技术上被“卡脖子”。大家都很关注芯片问题。因为,像芯片这样的核心技术,是一个国家的命门,而核心技术受制于人,是一个国家最大的隐患之一。而数据库技术的重要性,丝毫不亚于芯片技术。数据库、芯片、操作系统这三类技术,被公认为,是支撑信息化时代的三大底座技术,它们是同等重要的。
虽然很多人都知道,我国在芯片上被“卡脖子”,却很少有人知道,我国的数据库产品,曾经在很长一段时间内,都被国外产品碾压;我国的数据库市场,曾经被国外数据库公司垄断长达几十年,直到最近几年,这种情况才有明显改变。
而我们今天要讲的这本书里,就详细介绍了,最早的国产数据库研发人员,是怎样克服重重困难,从零开始,开发出成熟的数据库产品的;也详细讲述了,我国的国产数据库企业,是怎样一步一步,把市场从国外数据库企业手中夺回来的。
这本书的作者有三位,朱明东、张海粟、戴剑伟,都是我们国家国防科技大学的教授,对于数据库技术的理论和实践发展历程非常有研究。从他们写的这本书里,我们能看到的,绝不仅是一部国产数据库的崛起史,也是一部中国科技自主创新的奋斗史。
今天的解读中,我们分为起步阶段、追赶阶段和并跑阶段这三个阶段,来了解国产数据库在过去的四十几年里,走过的这段波澜壮阔的发展历程。
第一部分
好,首先我们进入起步阶段,来讲一讲,2000年之前,我国数据管理的情况。
在计算机出现之前,人们用人工的方式来管理数据,主要是用纸张来记录数据,用算盘或者一些简易的机械计算器来处理数据。
20世纪50年代中期,计算机开始投入应用。最开始的时候,是没有磁盘这些可以直接接入计算机的存储设备的,所以数据还是要存在纸带、卡片、磁带这些外部设备里,需要用的时候先把数据输入进计算机,然后再进行处理。
后来,进入60年代,出现了可以直接接入计算机的磁盘。这个时期的数据管理方式是,先把计算机中的数据组织成相互独立、单独命名的数据文件,存在磁盘里,然后需要用的时候,按文件名称来访问数据。但是,数据文件里的数据是不具有共享性的。比如,我第一天的项目要用到A数据文件,第二天的项目要用到B数据文件,都是直接调取就可以;但是,第三天的项目要用到A数据文件中的一部分,还有B数据文件中的一部分,那么就需要把这些数据先组织成一个新的数据文件,然后再用相应的应用程序进行处理。这种非共享性,是用文件系统管理数据的一个比较主要的弊端。
而到了60年代后期,出现了数据库这种数据管理技术,解决了数据的共享性问题。相当于是,可以把所有的数据放在一个池子里,然后不同的项目、不同的用户可以根据自己的需要来取用。那么这也意味着,我们不能只是把数据扔进池子就完了,还要把它们结构化,也就是要标记、描述数据的特征、数据之间的联系,这样才能在需要的时候,筛选出自己想用的数据。
世界上的第一个数据库管理系统,是美国通用电气公司在1960年开发出来的。后来,从20世纪60年代到80年代,美国的IBM公司、Oracle公司、赛贝斯公司又陆续开发出了一些功能更加完善的数据库系统,并且把它们投入了商用。
那么在这个期间,我们国内的情况是怎么样的呢?
1978年,我国开始了改革开放。进入80年代后,各个产业领域发展迅猛,需要管理的数据也飞速增加,所以对数据库的需求很大。但是,当时中国在这方面确实没有什么技术经验,也没有什么人专门做数据库研发。所以一些有这方面需求的公司只能自己去沟通,进口国外的数据库。
20世纪90年代初,中国进一步加快了改革开放的步伐,经济增长呈现“井喷”的速度,对数据库的需求全面爆发。同时,我们的信息技术市场环境也开始不一样了,美国一批做数据库产品的科技公司,开始组团进入中国。就这样,在供需两旺的形势下,我国的数据库市场很快就被美国的数据库公司们占领。根据1997年的统计,中国每年要花50亿元购买国外数据库,而且以25%的速度增长。这种局势一直持续到了2000年之后。
讲到这里,我们停一下。
其实,通过我们的讲述可以知道,数据库的基本功能很简单:一是把数据存起来;二是把数据取出来。获得过图灵奖的一名计算机科学家Micheal Stonebraker,在他的一篇论文里也说,这几十年里,不管出现了多少数据库,本质上干的都是数据的存和取这两件事。
听起来并不难,那为什么,从20世纪80年代,到2000年前后的这段时间,我们国家没能研发出自己的数据库产品呢?
作者说,首先就是因为,自主研发数据库这件事,比我们想象中要难很多。难在哪呢?要知道,每秒存储1条数据简单,但是要同时存储100万条数据就难了;而且,不光要能把这100万条数据存起来,还要能应对几乎同时对一条数据进行多次修改的情况,这种时候,你就既要保证数据存储的先后顺序不能出错,还要保证存储速度极快,不把数据库系统卡死。而且,重要的机密数据,是要存在不同城市的多个数据库里的,这就要保证在多个城市的数据实时一致。如果一个数据库出问题,几秒就能切换到另一个城市的备份数据库。还有很多比这更加“苛刻”的要求,这些就导致建造数据库的技术难度极高。
技术难度高,就导致国内企业想要自主研发数据库,就得投入巨额资金,而且,研发出来的数据库性能还不一定赶得上国外产品。另外,因为当时国内的数据库市场已经被国外大型数据库企业抢占了,所以,即使你研发出来了性能差不多的产品,也很难劝说用户停用国外产品,改用国产的。总结来说就是,成本高、风险大。所以很少有企业愿意去搞数据库的自主研发。
不过,虽然企业不愿意搞,但在当时,还是有一些人,敢于啃数据库这块硬骨头的。在这些人里,打头阵的,是中国人民大学的一位叫萨师煊的教授。1978这一年,萨师煊在人民大学干了两件重要的事,一是创立了中国第一个以“信息”命名的学系——经济信息管理系;二是开了中国第一门“数据库系统概论”课程,除了人大的学生以外,很多外校的教师、研究所的研究人员也纷纷来听他讲这门“数据库系统概论”,当时在全国产生了很大的影响。
后来,萨师煊又发表了很多跟数据库相关的学术论文,还跟自己的学生王珊一起,合作编写了国内第一部关于数据库的系统性教材,这部教材后来一直被大多数院校的计算机专业、信息专业采用。
到这里,还都是学术层面的成就。1987年,萨师煊跟王珊共同创办了中国人民大学的数据工程与知识工程研究所,专门研究怎么把当时那些关于数据库的学术成果,转化为国家急需的数据库产品。
除了人民大学的科研团队以外,在武汉,也有一支科研队伍在孜孜不倦地进行数据库研发。他们虽然起步比人民大学要晚,但是却在1988年成功开发出了我国第一代有自主知识产权的国产数据库管理系统,叫CRDS。后来,武汉的这支科研队伍,也成立了数据库研究所,是在华中科技大学。
人民大学和华中科技大学的这两支研究队伍,都是从理论层面开始探索,然后逐渐往现实层面推动。还有另外一支研究队伍,是被现实需求驱动,开始搞的数据库研发。
20世纪90年代初期,由于还没有国产数据库,所以我国航天领域里大量涉及国家安全的数据,都只能存在国外的数据库里。这就使得,数据有可能被向外泄露、传输,甚至被恶意修改、删除,对于国家安全无疑是一种严重的威胁。所以,当时我们国家的航天710所,就联合浙江大学,开始启动数据库研发。在20世纪90年代末,他们成功研制出了一个数据库原型系统,并逐渐开始用自己的系统,替换国外数据库。
第二部分
好,刚才我们讲的是,国产数据库发展的起步阶段,主要是从20世纪80年代到2000年这段时间。我们看到,在这段时间里,随着我们国家经济的快速发展,各行各业对于数据库的需求集中爆发,但同时,却没有国产数据库产品能接得住这庞大的市场需求。再加上,当时我国对外开放的步伐加快,于是,来自国外的数据库产品迅速占领了国内的数据库市场。不过好在,我们国家对于数据库的自主研发,在这个阶段,也已经起步了。进行研发的主体,主要是来自高校或者跟高校合作的研究所,都是非营利性质的。他们的研发资金,主要来自政府的科研经费支持。
后来,在2001年前后,这些研究所迎来了一次大的转变,他们把数据库理论的研究跟产品的开发分开来,专门成立了企业来负责数据库产品的开发。因为在当时,数据库管理系统研发被列入了国家“十五”规划项目,支持经费达到了千万元的量级。但是,科技部明确要求,项目的申请方需要是企业实体。所以,在这个背景下,我们前面提到的,人民大学的数据库研究所,就成立了人大金仓公司;华中科技大学的数据库研究所,成立了武汉达梦公司;航天所的数据库研究团队,成立了神舟通用公司。这几家公司不仅是我国国产数据库研发的开拓者,而且直到现在都是这个领域的主力,我们后面也还会多次提到它们。
这些最早的国产数据库公司,在成立之后面临的第一个问题,就是自己研发出的产品,跟国外的数据库产品,性能差距太大。
当时在国内占据市场份额最多的数据库,是美国甲骨文的Oracle数据库。书里有一个比喻,说:如果在21世纪最初的那几年,一般的数据库系统是奥拓、夏利、拖拉机,那么Oracle数据库无疑是数据库界的劳斯莱斯。据一位当时从事开发的人员回忆,他在刚刚接触到Oracle数据库的时候,感受到的是震惊。虽然他们之前从未进行过针对Oracle数据库的培训,但是一打开就知道怎么用;而且,虽然有差不多100个人在同时使用数据库,但所有人都感觉自己在“独霸”服务器,体验非常顺滑。这让所有人开始真正意识到Oracle数据库的威力。
像这些产品性能差距的背后,是企业技术能力的差距。可以这么说:在21世纪最初的那几年,如果国外数据库企业已经是能奔跑的青年了,那么中国的数据库企业还只是蹒跚学步的幼儿。
那么,既然技术能力差距大,我们能不能就干脆不要自己研发了,一直买国外的数据库来用呢?这样岂不是又好用又省事?
回答显然是不行。要知道,数据库是信息系统的核心,一个行业、一家企业选用了什么数据库,就相当于把自己生产过程中的全部信息都托付给了它。而如果我们国内的所有企业都用的是国外的数据库,显然会威胁到国家信息安全。2001年底,我国正式加入WTO,越发深入地参与到经济全球化的进程中。在全球化的时代,国与国之间的经济较量日趋激烈,信息安全成为一柄悬在各国上空的达摩克利斯之剑,需要我们时刻保持高度警觉。
所以,打破国外数据库企业对中国数据库市场的垄断,成为当时国产数据库企业的头号使命。国家层面也非常重视对国产数据库行业的培育,一直在选苗子,培育好苗子。当时,国家层面除了给国产数据库企业经费支持以外,还会对他们开发出的产品进行专家评审、项目测试。而国产数据库企业也很争气,到2007年的时候,我们已经研发出了足够成熟的产品,可以推向市场、跟国外的数据库产品进行较量了。
但是,让这些数据库先锋目瞪口呆的是,当他们拿着自己研究多年的成果,想在市场上一展身手的时候,发现并没有用武之地。像那些对数据库需求最大的行业,比如金融、电信、航空,等等,它们并不愿意批量采购国产数据库产品。
这背后的逻辑也不难理解,因为在这些行业最需要数据库支持的时候,国产数据库“并不在场”。比如,就先拿河南的电信业来说吧。2001年,手机大量出现以后,河南移动的数据量从十几万GB迅速增加到90多万GB,并且以每年约500万GB的数据量增长。2003年,手机进一步普及以后,河南移动的用户数量很快就增加到了3000万户,原本数据存储设备也就需要三五台,后来增加到了几百台。但当时,还没有成熟的国产数据库可以用,所以,Oracle数据库就横扫了河南电信业这块市场。
在很多其他地方、其他行业,也都是类似的情况。那段时期,就很像是,一大批将士急着拿武器上战场,但自家镇子上打武器的铁匠还没完活儿。这个时候,隔壁镇子先送来一批高价成品,拿起就能用。大家也只能掏钱来买。等到了后来,用隔壁镇子的武器用得称手了,也不太想换了。
所以在2008年之前,国产数据库一直没能在市场上施展拳脚,主要还是在国家财政、军事领域发挥作用,重点完成国家扶持的项目;在市场上占到的份额只有4%。这对于国产数据库企业的成长非常不利。因为数据库产品在开发出来后,需要在市场实践中不断试错、验证、迭代,而如果用户少、实践的机会少,产品成长就会很慢,这是一个恶性的循环。
好在,国外数据库产品并不是无懈可击的。除了我们前面说的信息安全问题以外,它们还有一个很突出的问题,就是价格高,而且是非常高。
比如,拿Oracle数据库来说。一套数据库系统有4个CPU,1个CPU有8核;也就是说,一套数据库系统有32核。当时,Oracle数据库是按核收费的,1核就要几十万元,那么32核就可能要上千万,更别说有的大型企业需要上千套数据库,那就是百亿级的支出。另外,Oracle数据库的标配是IBM生产的小型机,还有EMC生产的存储硬件设备,业内把这三种设备合起来简称为“IOE”。对于企业来说,斥巨资买齐“IOE”之后,用于维护这套设备的整体费用也非常高,一笔又一笔的巨额账单让人心慌。
在巨额费用面前,无论是大企业还是小公司,都开始寻求另一种解决办法。这个时候,敢第一个吃螃蟹的企业出现了,那就是国家电网有限公司。
2008年一个寻常周五的晚上,人大金仓、武汉达梦等几家数据库企业,都接到了国家电网有限公司的电话,想咨询业务合作。注意这个时间点——周五的晚上。为什么要选择这个时间点呢?这是因为,国家电网有限公司对数据库系统的要求是每天24小时不间断,节假日也不例外。所以,为了保证数据库系统能正常运转,现场调度中心需要随时都有数据库工作人员值班。周五晚上有人接电话是最基本的要求,如果连这一点都做不到,那这家数据库企业连入围的资格都没有。
好,在周五的晚上,国家电网跟接电话的企业初步聊完了合作意向,又指派它的开发单位,做了进一步的调研,得出的结论是国产数据库可用。
随后,国家电网又把3家国产数据库企业聚在一起,进行PK。给出的考题是,建立四川省南充市的电网调度系统,并且要在1个月之内,把当时在用的Oracle数据库业务,全部移植到国产数据库系统中,哪家企业先搞定,就用哪家的数据库,直接上线运行。最终,是达梦数据库赢得了这场PK。国家电网也信守承诺,安排达梦数据库系统上线。并在试用了几年之后,开始大规模采购国产数据库系统。
国家电网跟国产数据库的成功合作,帮国产数据库在市场上打开了一扇门,带来了更多的客户。像中国民航信息集团、江苏中烟工业公司等大型企业,也陆续开始采购国产数据库。
在跟这些企业合作的过程中,国产数据库也在根据实践反馈,不断迭代优化自己的产品。而且,他们的观念也在发生着转变。以前总想着要去替代Oracle等国外数据库,但在实践中,国产数据库的销售人员不断地和产品研发人员反馈,说要想替代Oracle太难了,因为代价太大了,所有的数据库管理员已经熟悉了使用Oracle,他们虽然觉得国产数据库可以一试,但是希望不要改变太多,不要改变代码语句的语法。所以,国产数据库必须得在内核引擎、语言处理等方面,都能兼容Oracle系统,尽量不让用户改变过去的使用习惯,这样才能赢得市场。这是一个由销售倒逼产品改善的过程。
第三部分
好,刚才我们讲的是国产数据库的追赶阶段,大约是从2000年到2011年这段时间。在这一阶段,出现了最早的国产数据库企业,他们研制出了可以投往市场的成熟数据库产品,并且凭借着低廉的价格、过硬的质量,在当时被国外数据库占领的市场里撕开了一道口子,为自己争取到了生存空间。根据中国电子信息产业发展研究院的数据,从2007年到2011年,国产数据库软件的市场份额在逐年增长,从4%左右增长到了8%左右。
你可能会说,8%,也不是很多嘛。是的,在这个阶段,虽然国产数据库在努力追赶,但跟国外数据库相比,在市场份额上还是差得很多;而且,贡献这些市场份额的企业主体类型也比较单一,主要就是四家最早创立的国产数据库企业——人大金仓、武汉达梦、神舟通用,还有南大通用。
但是,到了我们要说的下一个阶段,也就是2012年以后,事情开始发生了明显的变化。
作者介绍说,促成转变的关键点,要从美国的“棱镜门”事件说起。2013年6月6日,西方媒体曝出,美国国家安全局从2007年开始实施一项计划,代号为“棱镜”。根据这个计划,美国国家安全局和联邦调查局会要求电信巨头威瑞森公司必须每天上交数百万用户的通话记录,还可以进入微软、谷歌、苹果、雅虎等九大网络巨头的服务器,监控里面任何一个用户的电子邮件、聊天记录、视频及照片等秘密资料。
“棱镜门”事件的爆发,让我们进一步感受了,外部势力对于我国信息安全的威胁。于是,当时整个中国信息产业领域掀起了一股“去IOE”的浪潮。
IOE,前面我们介绍过,就是IBM的小型机、Oracle的数据库,还有EMC的存储设备。这一整套下来,就是当时的企业在信息管理方面最常见的配置。而“去IOE”,就是抛弃这套来自国外的装备,全部换上我们国家自主研发的装备。
不过,“去IOE”这个口号,最早并不是在2013年出现的,而是更早的2008年,由阿里巴巴提出的。因为在当时,随着淘宝上的业务量越来越大,阿里巴巴高价买来的Oracle数据库系统快要支撑不住了,平均每周都要出现三四次问题。每当问题出现的时候,他们只能去求助万里之外的美国Oracle技术人员。由于中美存在时差,当美国那边返回结果的时候,很可能已经过去了一整天,很耽误事。而且,面对阿里巴巴提出的要做产品大促的需求,美国的技术人员经常连连摆手,说没法让数据库弹性扩展,满足不了这种数据量短时间内暴增的情况。这就导致,阿里巴巴在产品大促时,数据库经常不够用,大促结束后,又会有一些数据库是空置浪费的。
为了解决这些问题,阿里巴巴决定,“去IOE”,自己来做数据的存储和管理。当时,他们最先换掉了IBM的小型机,然后换掉了EMC的存储,而Oracle的数据库是最后才换掉的。因为在数据库这一环上,研发难度是最大的。
他们没有去采购现成的国产数据库产品,而是决定自己上手改造。他们选中了一种叫MySQL的开源数据库。开源数据库的源代码是对外开放的,允许有需要的人使用或修改这些代码。于是,连续几个月,无数阿里巴巴的技术人员就在屋子里研究MySQL开源数据库,每天都扎进千万行级别的代码里,一点点拆开,又一点点重新组装。终于,在2010年,开源数据库MySQL的一个阿里巴巴专属分支AliSQL被研发出来了。后来,到了2013年,阿里巴巴终于彻底完成了“去IOE”,把整体业务都迁移到了新一套的装置上。
而在2013年“棱镜门”事件爆发后,阿里巴巴提出的这个“去IOE”,被国内的产业界赋予了新内涵,尤其是银行、电信、能源等关键行业,“去IOE”逐渐升级为一次国产软硬件信息产业跟国外软硬件信息产业的对决。
根据书里的总结,在这场对决里,国内数据库研发主要走的是这么三种技术路径:
一是完全自己做,每一行代码都是自己写,这就是在2008年以前,那些最早的国产数据库企业走的路子。
第二种路径是,利用开源数据库的源代码,或者购买其他数据库的源代码,把它们消化、吸收完了,再在这个基础上修改、创新,做出自己的数据库;像阿里巴巴、腾讯、华为等很多后来加入的数据库厂商,走的就是这条路径。
还有第三条路径,就是面向未来,结合新技术进行数据库创新。在书里,作者特别提到了云数据库这种创新形式。云数据库跟传统数据库的主要区别在于,传统数据库的数据存管,是在本地的硬件里的,而云数据库是存储在云服务器上的,不需要本地的硬件。云数据库还有很多优点,比如,支持自动备份、自动漏洞扫描、异常自动报警,等等;而且,前面提到的,Oracle数据库做不到的弹性拓展,云数据库也能做到。就好比说,平时我们备一壶水,就能喝一天,现在家里来了客人,需要备一壶半的水。传统的做法是,放上两只壶;但如果拥有一只能弹性拓展的壶,它就能根据你的需要改变自己的容积,不用再多放一只壶了。把这里说的水,换成数据;把壶,换成数据库;那么我们前面说的,数据库的弹性拓展,就很好理解了。
从2012年到现在,一边是国内产业的“去IOE”,一边是国内数据库企业不断的技术突破,这两股力量融合在一起,带来的结果就是,国产数据库在整个数据库市场中的占比迅速提升。
根据艾瑞咨询的数据,2020年中国数据库市场总规模接近250亿元,其中,国产数据库企业占到的市场份额已经达到了47.4%,也就是接近50%,能够跟国外数据库企业基本打平了。在这接近50%的市场份额里,有我们前面提到的,四家最早的国产数据库企业,还有阿里云、腾讯云等新加入的云厂商,华为、中兴通讯等设备商,以及其他新兴的数据库厂商。整个国产数据库产业呈现出一派生机勃勃、群雄逐鹿的气象。
结语
好,以上就是这本书里,我想跟你分享的重点内容。下面,我们来总结一下:
数据库是一种用来储存数据、管理数据的基础软件,全称是数据库管理系统。在这个信息化的时代,数据库扮演着非常重要的角色,是支撑信息化社会运转的关键基础设施。
今天,我们主要是分为起步阶段、追赶阶段和并跑阶段这三个阶段,讲述了国产数据库产业在过去的四十几年里,走过的发展历程。在技术上,我们从没有自己的产品,到拥有了不亚于国外数据库的成熟产品;在市场份额上,我们从没有一席之地,一点点扩大到接近10%,再到现在跟国外数据库企业平分秋色;在主体上,我们从一开始只有四家传统数据库企业,到现在各类新兴数据库厂商加入,多元并进。可以说,国产数据库产业走过的这四十几年,是一段艰辛的历程,也是一段光荣的历程。
在书里,作者还介绍了国产数据库产品的未来发展方向,比如一体机、智能化,还有跟区块链技术相结合,等等。
最后再多说几句。在今天的讲述中,我们能清晰地了解到,国内的数据库市场在刚诞生的时候,几乎需要完全依赖国外的技术和产品;这也让后来国产数据库的自主创新之路走得非常艰难。不仅是因为,我们在技术上一开始落后太多,市场也被人抢占,还因为,在这一路上,经常会有反对的声音,比如,“自己做,太难了”“自己做,不如买,买更便宜”或者“加入全球化,跟世界巨头互相依赖,不就行了吗?”
这是许多核心技术在自主创新道路上,都会面对的一类争议。但是,到了2020年,这些争议消失了。面对华为被美国制裁,中兴通信被美国制裁,人们都意识到:我国的核心技术必须掌握在自己的手上。而国产数据库的开创者们在几十年前就已经认识到这个问题了,因此才有了我们今天所讲的,这条漫长的探索之路。
这本书也告诉我们,在数据库等核心技术问题上,如果不坚持自主创新的立场,就好比在别人的墙基上砌房子,无法保障国家经济安全、信息安全、国防安全。科技自立自强,不是一种选择,而是一种使命。
如若转载,请注明出处:https://www.52mingliang.com/19276.html