十年比肩?看国产数据库如何突出重围!

时间:2021-09-11 10:24:38  来源:网络整理   www.pphome.com.cn

作为核心技术“三大件”之一,数据库在中国的发展可谓龃龉前行。1978年,中国人民大学经济信息管理系创建人萨师煊提出了发展数据库的理念,并在1979年汇集成《数据库系统简介》和《数据库方法》,成为我国最早的数据库学术启蒙读物。

20年后,国内第一家数据库公司人大金仓KINGBASE创立。据人大金仓总裁杜胜介绍,人大金仓之所以有“人大”两个字,是因为从人民大学信息学院中脱胎而来,“金仓”则原本是信息学院的一个研究课题。

“数据库门槛太高,国外很早就已经发展成熟,大家都知道在这个领域投资会赔钱,所以当时没有人投。后来是人大的老师们凑了50万元一起创办,才有了今天的人大金仓。”

从数据库概念的提出,到产业化的落地,都是自“人大”开始。本期《新程序员》与人大金仓总裁杜胜,就数据库的技术演进逻辑、产业的发展周期,以及核心研发人员如何培养等方面进行了深入探讨。

业务逻辑趋向应用端,数据库集群并行运算

《新程序员》:经过数十年发展,数据库技术不断迭代更新,从File形式存储到层次型数据库,再到关系型数据库……你是在哪个阶段进入到这一领域?后续发展呈现怎样的特点?

杜胜:我是在关系型数据库时代切入到这个领域的。应该说我们现在看到的大多数数据库应用都是关系型场景。关系型数据库最早是基于传统C/S架构,比如20年前我们会用PowerBuilder,或者Delphi这类语言去做客户端的展现。

一般前端很少写业务实现逻辑,它的实现主要通过数据库来进行运算。当数据库在存储过程中把逻辑实现后,再通过前端按钮触发逻辑运行。

对于早期应用来说,数据库是核心。大量的应用逻辑是基于数据库的PL/SQL语言来开发的,一是这样的语言作为脚本语言学习难度低,容易上手;二是数据库能够提供非常多的功能扩展包,帮助应用快速实现功能,比如要完成某个递归算法时,通过数据库中的一个函数就可以完成。如果是我们自己编程,代价就会高很多。从关系型数据库时代开始,数据库就成为了应用中不可或缺的一部分。

《新程序员》:从数据库发展历程来看,演进的逻辑是什么?

杜胜:关系型数据库之所以登上历史舞台,主要在于它对应用的支撑作用。传统C/S(Client/Server)应用,Client端模式非常简单,更重的落脚在Server端,Server对于数据库来说是至关重要的部件。后来,应用从C/S演变到B/S(Browser/Server),出现中间件,一些逻辑就开始往中间件迁移。当然,还有部分应用依然没有摆脱C/S架构的特点,依托数据库完成业务逻辑计算,但当中间件发展到一定程度后,逻辑开始向应用代码中迁移。

再到未来云原生的模式,用户对应用的投入越来越高,对数据库的依赖则在降低。整体上,数据库更多在于提升伸缩性和弹性,以应付更大的并发量和负载压力。所以,数据存储和吞吐能力整体在提升,业务运算方面则在弱化。

包括现在讨论的分布式数据库,更多是基于数据的存储,运算基本放在应用端来实现,这是应用整体架构的变化带来的。架构的变化基于应用场景的变化,是应用在驱动我们的底层变革,数据库实际上是被动跟随。

《新程序员》:一直以来,数据库行业都在讨论如何实现技术“去O”,你认为该如何实现?

杜胜:过去有两个说法,一个是“去O”,一个是“替O”。这是两种思路的差异,“去O”主要因为Oracle足够复杂,很难取代。那么,就从应用的角度入手,让应用端承担更多的运算,从而避免使用Oracle的复杂能力,绕开它。我们当然可以用应用代码来编写业务逻辑,比如用MySQL开源数据库来满足需求,但这样的话,所有的应用都必须重写,不能再利用历史资产,相当于重构一个新的体系。

另一条路径是“替O”,延续原本的规则和体系,依然使用存储过程和函数。“替”的含义在于让国产数据库产品具备同等能力,从而替换Oracle。

相较而言,“替O”路径对于应用厂商而言成本更低,因为“替”的过程实现对于应用厂商来说更容易,客户的历史资产能够得到保留。对于一些传统企业和党政客户来说,尽可能利用历史资产是最优选择。但在互联网领域,对成本不是很敏感,一般会选择“去O”。

当然,随着云原生的发展,新的技术路线也在演进。未来数据库的使用会更加偏向目前互联网的模式,我们会在应用中实现更多业务逻辑,从而降低对数据库的依赖,这是一个大的趋势。

《新程序员》:从“数据库”到“数据仓库”,只是一个字的变化,看上去只表现在量级上的差别。你认为从“库”到“仓库”之后,有哪些延续了?有哪些升级了?

杜胜:从数据库到数据仓库的变化主要基于社会信息化程度越来越高。

在早期,数据库能够解决交易和分析两方面的问题。但近三十年来,信息化逐渐兴起,随着数据量的不断积累,我们遇到了两个问题:第一,数据存储遇到挑战,设计的容量不够,需要把它扩大;第二,有了这么多数据之后,该怎么用?数据本身没有任何价值,只有把它们用作分析、统计或者运算才有意义。

要解决数据容量不够和数据处理不足这两个问题,在单点的运算能力难以支撑下,就需要构建大的数据库集群,进行并行运算。

我们有一款名为KADB的产品,是用MPP技术来实现的分布式数据库,可以实现大规模并行处理。通过并行运算,原来一个单机两到三天才能运算出的结果,构建100台集群后,几分钟之内就可以把结果计算出来。因此,从数据库到数据仓库不仅是量的变化,我们要面对的场景更复杂,处理能力也需要极大提升。

《新程序员》:目前产业还面临哪些普遍的技术难题?

杜胜:在传统领域,共享存储集群还是非常困难的技术。对于数据库软件来说,稳定可靠是第一位,如果这个问题没有解决,其他都没有意义。但目前来看,只有Oracle能做到这点。

虽然我们想要弯道超车,但这类硬核技术的研发几乎是不可能的,同时也不太可能用某种新技术来代替。无论软、硬件,底层技术的要求都非常高,很难通过走捷径解决,只能一点点消化、学习,希望市场能够给我们沉淀和试错的时间。

数据库产业处于成长期,产学体系仍需优化

《新程序员》:相较于AI、物联网、云计算等动辄万亿产值的技术,数据库在早年没有被追捧,但近年资本也逐渐涌入这个领域,为什么会掀起这样的热潮?

杜胜:确实,如果放在前些年,人大金仓想要在资本市场获得关注是很困难的。但最近三年我们发现,资本对数据库产业的关注明显提升。近期有几家产业链友商获得大额融资,最多的获得了2.6亿美金。这在过去是不可想象的,说明现在国内态势正在转变。

为什么会出现这样的趋势?说白了就是核心技术要掌握在自己手里,才能从根本上保证产品的自主可控。

在全球化时代,看似所有东西都能买到,但关乎到核心技术和核心理论,还是存在普遍的保护主义的。这对于我们即将开启的数字化转型无疑是坏消息,整个经济都要构建在数字底座上,我们买不到就只能自己做。所以,这个节点上,资本投入数据库领域也是情理中。

《新程序员》:从产业周期看,你觉得国内数据库是处于成长期,还是已快到成熟期?

杜胜:我个人感觉还是在成长期,我们评价产业发展阶段有一个标准,就是产业从业人员,尤其是核心技术从业人员能否支撑产业的可持续发展。很明显,我们在核心技术人员的储备上严重不足。再从市场来看,自2001年中国加入WTO,国外品牌纷纷进入中国,二十年过去了,依然占据大多数市场份额,垄断是一直存在的。

在现象背后,是后进者与先进者的历史差距。Oracle 1977年创立,人大金仓1999年创办,尽管是国内最早的数据库公司,但还是落后了22年。

当然,我们走向成熟也指日可待。一方面基于国家层面的规划;另一方面,最近几年涌现出200余家数据库公司,这是非常好的现象。虽然短期可能有泡沫,但行业做起来会吸引大量人才,大浪淘沙后优秀者自然会留下,行业也会逐步走向成熟。

《新程序员》:在硬核技术领域,你觉得很难“弯道超车”。但面对这样既重要又困难的现实,产业界往往又寄希望于有这样的弯道,对此,你认为该怎么办?

杜胜:需要从两个方面来说,一个是技术的底层逻辑,一个是人才和市场。

首先,做基础软件需要端正心态。在整个产业链上,过去做得好的是应用,比如淘宝、美团、抖音等软件,满足了客户需求并持续深耕,就能在市场中下沉。

然而,基础软件开发有客观规律和周期。比如,目前我们的高等教育、研究与产业界之间仍然不能紧密衔接。学校的老师大部分是本、硕、博“直通车”,上完学就回到学校教学,很少有在产业界扎根的经历,学校和产业是脱节的。如何达成人才培养闭环和产业闭环?可以借鉴一些成熟的经验,比如国际名校的很多老师曾是产业界的高级经理人,或者是技术人员。他们退休后利用闲暇回到学校,将产业中遇到的难题和研究方法教授给学生。这样,理论可以有的放矢,产业界的实践也通过大学的进一步研究而系统升华。我们的学校也开始有这样的趋势,但还需要持续发展形成闭环。

其次,每个人有不同的个体禀赋,我们的学生也都非常聪明勤奋,现在世界上很多知名科学家都是华人。从主观能动性的角度,我还是相信整体的学习氛围能让我们在某些领域赶超,然后带动其他领域。

再者,以人大金仓的经历来看,市场也是转折的关键。在创立的前十年我们发展比较慢,国外软件几乎没给我们留什么机会。09年被中国电科收购之后,我们加入了“国家电网核心电力调度系统”这个项目,通过这个系统应用获得的良好声誉,让我们的产品和服务打开了市场。

所以,技术落地要符合客观规律,还需要在体系建设上持续优化。从人的主观能动性和市场培育角度,我觉得还是有超越的可能。未来十年,我们希望进入国际市场,再过五年,或许可以做到世界领先。

DBA与核心研发人员的培养

《新程序员》:对于数据库核心研发人员的培育,人大金仓是通过怎样的方式来培养?

杜胜:我们现在的人才体系有两类:

第一类是数据库的使用人才,就是常说的DBA,培养核心是怎么使用和维护数据库。这类人才的培养相对容易,美国数据库软件公司已经帮我们培养了很多人。对他们来说,在我们这里的学习不是从0开始,而是“再学习”。在共通的数据库技术下,他们转换很快,可以把以前Oracle、Db2、SQL Server等的DBA很快转化到国产数据库,这样就多掌握了一门技术。我们现在面向全国开设免费学习课程,包括KCA、KCP、KCM,国外这类课程都是收费的。对于我们来说,为产业培育人才不是为了盈利,是为了让生态快速建立起来。

第二类是核心研发人员,这类人才培养非常困难。就目前情况来看,中国有非常多的程序员,但做数据库内核研发的只有一两千人。以传统师傅带徒弟的自然培养方式显然是不够的,我们要把人才体系真正建立起来。目前国内开设数据库相关课程的高校只有二十多家,我们已经和人民大学、武汉大学、山东大学合作开发课程,增设了数据库内核专业。

《新程序员》:你要“从IT应用软件产业中寻觅人才”,《新程序员》的核心受众正是庞大的软件开发者群体,你对开发者有什么要说吗?

杜胜:如果仔细观察,我们不难发现做数据库的都是国际巨头,像2019年排名前五的数据库厂商:Oracle、微软、AWS、IBM、SAP。事实上,做系统类软件才能在全球通用,所以这个市场量足够大。假以时日,我们国产数据库真正成长起来,彼时遍布所有行业,那一定会成长为巨头公司。如果看好数据库,想让你做的软件被世人铭记,那就加入我们!

作者|杨阳


  免责声明:转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请及时联系我们,我们将尽快予以有效核实并作出相应处理。

感兴趣? 更多分享方式