回首数据库发展往事
本文来源:物联传媒
本文作者:露西
“华为的几个业务板块,不是哪个版块挣钱多就地位高,只有网络联接部门才能称霸世界,美国打的是这个部门,“烂飞机”说的也是这个部门。现在梳理下来,发现这个部门困难少,因为准备时间长,反而别的部门困难多。”
此前,任正非先生答中国媒体42问的采访纪要在网络广泛传播。2万字的长文,让大家再次折服于这位70多岁掌门人的胸襟与高度。而上面这段引用,透露出华为在网络连接领域的自信,当然也透露出对其他业务板块是否存在不足的正视。
去年中兴事件之后,社会各界就开始广泛讨论“关于核心技术,我们还缺什么”。一时间,芯片、操作系统、光刻机、触觉传感器、工业软件等等,都被归纳到卡着脖子的领域,期待得到大众更多的注意。一向很少发言评论的马化腾近日也公开表示,不在基础研究和关键技术领域下苦功,数字经济就是沙堆起高楼,难以为继。
时局之下,我们需要清楚认识很多事情。芯片和操作系统的介绍已经有很多,这次就选择从数据库讲起。
PART 1/甲骨文的发迹
1976年,IBM研究人员E.F Codd发表了一篇里程碑式的论文《大型共享数据库数据的关系模型》,首次提出了关系模型的概念。但当时的蓝色巨人IBM只把它当成一篇收获名声的学术研究,没有将其形成产品推向市场。
被誉为“关系数据库之父”的E.F Codd
1977年,劳伦斯·埃里森、鲍勃·迈纳(Bob Miner)与埃德·奥茨(Ed Oates)3人,在美国加州合资成立公司,名为软件发展实验室(Software Development Laboratories,SDL)。真是不太像一个公司的名字吧。
左起 Ed Oates,bruce scott,Bob Miner,劳伦斯·埃里森
值得一提的是,SDL签署的第一个客户就是美国中央情报局(CIA),工作代号为Project Oracle,为其开发了一个特殊的数据库。后来项目提前完成,给公司带来了声誉,也带来了更多军事政治方面的客户。
就在当时,对商业的敏锐的埃里森研读了IBM的那篇论文,认为这是难得的机会,决定在研究基础上开发商用数据库系统。
到1979年,SDL更名为关系软件公司(RSI),并且沿用了当时给CIA做的项目名称,推出了世界上第一个商业化的SQL关系型数据库管理系统Oracle。
1982年,公司最终更名为Oracle。当年有24名员工,75个客户,包括中央情报局、国家安全局和空军情报部等在内。
1983年,Oracle第三版发布。因C语言支持所有机器,公司决定新版本全部用C语言开发。这使得Oracle产品开始有了一个关键的特点:可移植性。
基于以后更多的性能改进与功能扩展,Oracle进入了高速发展的快车道。在成立的头9年里,有8年取得100%及更高的收入增长。此后的发展历程中,Oracle继续往前推进:转入互联网战略、实施整合收购战略、转入云战略。但无论如何,因为先发优势、完善的售后技术支持,以及企业迁移新系统需要面对高昂的成本,尽管出现了越来越多的竞争对手,Oracle依然占据着数据库主流市场。
PART 2/群雄并起
在当今的互联网中,最常见的数据库模型主要是两种,即关系型数据库和非关系型数据库(NOSQL)。
关系型数据库是把复杂的数据结构归结为简单的二元关系(即二维表格形式),易于维护,使用方便。目前主流的关系型数据库有Oracle、MySQL、DB2、Microsoft SQL Server、PostgreSQL、Microsoft Access等;
非关系型数据库,被称为NoSQL(Not Only SQL),是对传统关系型数据库进行补充,针对特定场景来提供高性能和使用便利的功能特异化产品。主要代表是MongoDB,Redis、CouchDB等。
可以看到,在这份来源业内研究机构DB-Engines、招商证券的《全球数据库管理系统排名》中,数据库领域大部分的市场份额仍然是由甲骨文、IBM、微软等几家美国公司占据的。(Oracle和MySQL,都属于甲骨文旗下。)
PART 3/被念叨着的国产数据库
在国外数据库技术发展得风生水起的时候,上世纪90年代,国产数据库也开始频频被人提起。但遗憾的是,如果仅仅以Oracle为模仿、追赶对象,还是会因为技术储备、研发投入、产品成熟度、品牌、上下游生态环境、客户规模等种种条件限制,没办法在市场上激起大的水花。
数据库管理系统行业观察家晓军在《国产数据库发展现状分析》中就指出:“数据库技术发展到今天,国人并非不知道数据库底层该怎么开发,而是自己写的代码在市场上磨练比较少,对稳定性信心不足,而这种信心的不足同样来自客户方面。”
没人敢用。这是在已经落后多少年的状况下,所有强调自主研发的领域用户都需要克服的一个问题。
图:国产数据库管理系统举例(来源:招商证券)
PART 4/云厂商脱离甲骨文
从概念上看,数据库就是一个存放数据的仓库,并且是按照一定的数据结构来组织、存储的。我们需要通过数据库提供的方法来管理数据,提取数据,利用数据。它是一项底层的、必要的技术能力。
但随着互联网、移动互联网、物联网的发展,数据量/数据类型与日俱增,企业对数据库提出了更高的扩展性及通用性需求。
以前,IOE几乎是全世界大公司的“标配”(IBM小型机、Oracle商业数据库、EMC集中式存储设备),银行、证券、电信这类业务规模稳定又不差钱的传统大企业非常喜欢IOE。可是对于后来崛起的互联网公司来说,业务飞速增长,传统商业数据库就有四大令人难受的缺点:费用昂贵、扩展性差、技术复杂、迭代慢。
IBM分析领域架构师罗曦光就曾表示:“当数据量非常大,到了TB和PB级别,数据库管理系统性能不下降就是一大挑战。
在浅黑科技史中撰写的《阿里巴巴“数据库侠客”:此行路远,不问归期》一文中,笔者看到阿里同学在2006年就在灵魂拷问:“搜索技术靠雅虎,数据库靠甲骨文,服务器和存储靠 IBM和EMC,那阿里巴巴是什么?”
后来的故事被很多人知晓。
王坚来到阿里,开始履行“为阿里巴巴输入技术基因”的承诺。阿里也开始走出“舒适圈”,并且先把内部业务当成“小白鼠”,成功以后再向外推广。
2008年,阿里提出去IOE。在阿里巴巴的IT架构中,去掉IBM的小型机、Oracle数据库、EMC存储设备,代之以自己在开源软件基础上开发的系统。
2010年,阿里开始研发分布式关系数据库 OceanBase;
2011年,淘宝商品库完成了从 Oracle 到 AliSQL 的大迁移;
2013年,淘宝核心系统最后一个Oracle数据库下线;
2014年,阿里云开始自研云原生数据库PolarDB;
2015年,支付宝交易库和支付库都换成了OceanBase;
2017年,OceanBase 开始走出阿里内部体系,在商业银行推广使用;
2018年,PolarDB开始商用。
这样的情况不是个例。一批云计算公司开始带动企业从传统IT架构向互联网架构转型,并逐渐将这种变化蔓延到传统企业。亚马逊AWS、谷歌云、微软Azure,皆是如此。早在去年就有报道称,亚马逊计划最终在 2020 年第一季度完全弃用甲骨文的专有数据库软件,其中原因就有这些。
当然,云计算公司提供的数据库是否存在局限,是否只能和自家的云绑定,是否在支持服务上与传统数据库存在差距,那也是见仁见智,需要根据后续演变的情况来判断。
Gartner:2018年全球数据库魔力象限
PART 5/世界会变,未来依旧未知
从Oracle推出世界上第一个商业化的SQL关系型数据库管理系统到现在也有40年时间了,市场不是一成不变的。在漫长的发展过程里,新的技术点不断出现,持续吸引着众多科技企业的关注与投入。
甲骨文创始人埃里森在2016年OpenWorld大会上就表示,世界变了。甲骨文的数据库使用SQL语言,但这个标准存在了很久,所以甲骨文支持多种新的语言满足市场。在过去多年的经历中,甲骨文学到的经验之一就是关注行业标准。
而今天我们面临的,是开源软件与云计算的普及。企业从购买实体产品转向购买云产品或服务,从售卖产品转向售卖服务。海量数据的产生将给数据库管理系统带来挑战,也在其中蕴藏着巨大的新机遇。
最后,我们回顾2个观点,作为文章的结束,也作为下一个阶段的开启。
朱广平:创新最重要的是在一个系统中掌握最核心的一部分。自主创新不是全部自己重复做,而是找到自己的长处在哪里。
任正非:一个基础理论形成需要几十年的时间,如果大家都不认真去做理论,都去喊口号,几十年以后我们不会更加强大。所以,我们还是要踏踏实实做学问。