导语 | 关系型数据库体系已经走过了50年的历程,这期间数据库已经成为数字化时代的核心组件。近年来,国产数据库更是百花齐放,走上历史舞台。在历史发展的每个阶段,数据库技术都经历了哪些关键性的演进,在未来,数据库技术又将走向何方?本文由云和恩墨CEO、腾讯云TVP 盖国强在 Techo TVP开发者峰会「数据的冰与火之歌——从在线数据库技术,到海量数据分析技术」 的《万象更新——数据库技术的发展与未来》演讲分享整理而成,为大家详尽介绍数据库技术的关键演进阶段、领先的技术探索方向,阐述国内数据库发展的最新动向。
一、数据库行业的三大趋势
我带来的主题是“万象更新”,今天,用这四个字来衡量中国的数据库领域是恰到好处的,市场上大量国产数据库不断涌现,不同的国产数据库在不同的场景里找到了更广阔的应用空间,这是数据库时代的中国时刻。
为了阐释这些观点,首先分享我对行业的一些判断。
1. 走进新数据库时代
首先我认为数据库的技术发展经过了三个时代:从商业数据库时代到开源时代,再演进到今天——我称之为新数据库时代。注意,很多人把今天这个时代称作“云数据库时代”,但是我更愿意用一个“新”字,因为国外和国内的数据库市场呈现出不同的发展格局。
商业数据库时代主要是以Oracle为代表,衍生了一系列商业数据库软件公司,这个时代,很多国产数据库公司在非常早期就开始了探索。
第二个时代是以MySQL为代表的开源数据库时代,开源成就了互联网,今天大家使用了很多腾讯的服务、产品,为什么能够得到快速的、廉价的甚至是免费的互联网服务?就是因为互联网的底座是由免费和开源的精神承载,开源技术成就了互联网。
第三,今天进入了新数据库时代。开源数据库技术依托云产生了价值,过去开源技术很难被评估产生了多少商业销售和商业价值,但今天在云上它们可以被贩售,它的价值就可以被量度。昨天Gartner发出的报告提到微软数据库已经超越了Oracle,成为了全球市场的第一,中国市场上腾讯云、阿里云和华为云是三大数据库的领先者,这说明什么?这说明在新的时代里云成为了数据库最重要的一个阵地。
但是中国的数据库领域还呈现出了新的特质——百花齐放的数据库生态。因为国产数据库的自主创新和迭代起步晚,仍要重走一遍国外的技术路,这是中国数据库呈现出的不同格局。TDSQL是从2012年就开始的,今天有一系列的国产数据库在市场上崭露头角。
2. 数据库成为云上的终极之战
第二个大的趋势是什么呢?是数据库最终成为了云上的终极之战。
因为云最基本的特质是以IaaS为基础,当完成了IaaS这一层的建设,紧接着是PaaS层,PaaS这一层就必须解决数据库的问题,谁能够率先打通PaaS层,谁就能够赢得竞争优势。
举个AWS的例子,AWS在2019年宣布将7500个Oracle数据库都彻底替换,为什么它是一个非常重要的事件?因为在每年甲骨文的全球大会上,Oracle都会嘲笑一次亚马逊:你们在云上卖开源的数据库、卖你们自己的云数据库,但其实你却要从我这儿购置大量的Oracle License。所以亚马逊就发出承诺,要把它们全部替掉,在2019年完成了。在这个替换的过程中最终呈现出来的本质是什么?我引用了亚马逊在替换完成之后他们的首席布道官的一段话,他说我们传统的DBA大部分工作时间消耗在数据库的扩容、存储的扩容以及License许可的谈判上,而传统DBA所做的这些工作今天都可以通过云自助来完成,这是本质上的变化,这个本质的变化是互联网的技术、云的技术使得传统工作可以自动化完成,我认为这本质上是变革的核心。
3. toB市场是数据库成败关键
在中国市场略有不同,我认为在中国市场将来会是一个公有云和混合云长期共存的时代,而且私有云仍然会占有广阔的市场。在这个发展格局之下会呈现出一种什么样的数据库格局?
我把它概括为,将云的体验最终要转移到数据上,既然不是所有的数据库、数据都能上到公有云,那么我们就需要将公有云那些最佳的用户体验、自动自治的特性转移到私有的数据环境部署上,这在分析报告里被称为叫TPC,是说仅仅有了IaaS和基础设施,不能成为一个真正的私有云,还需要具有互联网的用户体验、真正云的弹性伸缩等核心能力。所以我认为在数据库领域,尤其在中国市场上下一步的格局就是云的体验云下化,最终云上和云下会趋于一致,云会成为未来唯一的基础设施提供形态,只不过还有公有、私有的两种说法而已,本质内核趋同。
二、数据库技术的学术界观点
刚才谈的是我们在工业界生产实践中看到的几大趋势:从商业到开源到云时代,从云上到云下,云上体验的云下化。我们再来看看学术界在探讨什么,在思考什么。
近五十年间图灵奖所授予的5个数据库领域的大神,第一个是巴赫曼,他是网状数据库的发起者。第二个是科德,他是我们今天所在探讨的关系型数据库的缔造者,通过他1970年发表的一篇论文,催生了整个关系型数据库波澜壮阔的大格局,他在1981年获得了图灵奖。第三位是格雷,他是事务理论的深入探究者,他在工业实现上是包括微软等数据库产品的灵魂人物。第四位是迈克尔·斯通布雷克教授,他在2014年获得了图灵奖,也发起了很多数据库项目的创业公司。和大家重点分享一下在2021年刚刚获得了图灵奖的乌尔曼,他的主要成就是在教学领域,他写过非常著名的龙书,是很多数据科学家的启蒙导师。
大家可以稍微思考一下这样的演进过程发生了一些什么变化?从最早的理论奠基人到事务的探索者;再到斯通布雷克在工业界的产品化的尝试——从关系型行存到列存、到大数据,他探索了很多领域;再回归到今天我们说乌尔曼,他是从学术界、从学校的教育开始,去重新思考这些数据库理论是不是仍然有探索、创新、革新的可能性。我刚才和李海翔老师探讨,他说最近他在思考的就是这样一些事情,试图从事务模型上再做出新的思索创新。所以我把它看成是关系型数据库理论发展到山穷水复疑无路,但大家开始回头来看在这些基础理论上是不是还有柳暗花明的机会,这是我的观点。
乌尔曼教授在他最近的论文里提出了这样一个观点,叫“数据科学之战”。所以大家已经看到了我提到了两个战争,一场是说数据库是云上的终极之战,这是大家公认的;第二场是数据科学之战。在很长一段时间内数据库领域有一种悲观的声音,大家说数据库管理系统正在变得无关紧要,做数据库的人经常在谈的一句话是“我们是不是又错过了一艘船”,这艘船是数据科学。数据科学的蓬勃发展、火热的现状让做数据库的人觉得是不是我们又错过了一班最好的邮轮。但是乌尔曼教授提出,数据库以及因为数据库研究所产生的技术仍然是数据科学最本质的内核,这个没有变,数据库系统的核心一直是如何尽最大的可能去处理最大的数据量,并且应该去研究一切数据。我认为他把数据库的本质又重新阐述出来了,我们研究数据库的人、研究数据技术的人想做的是什么呢?就是存储一切数据,研究一切数据,最后在这些数据里产生洞察。如果人工智能能够在数据科学里发挥真正的创新作用,那这个世界可以变得更美好,但是它的底座一定是一些原生的数据。
三、Oracle 数据库的核心演进和创新
1. 宏观演进
既然学术界有这样一些看法,认为存储一切数据、研究一切数据仍然是数据管理系统的本质,那我想跟大家回顾一下在今天数据库领域里仍处于王者地位的Oracle是怎样走完这条路的。
我稍微列举了一下从Oracle8到今天走过的关键历程。在Oracle8这个版本上,大家看到Oracle已经推出了互联网版本8i,Oracle看互联网看得晚吗?不是,它从1998年开始就把产品定义为i,为互联网而生,1998年是什么时候?很多90后那时可能还在幼儿园,但那时的互联网已经在探讨数据库了。Oracle针对并行处理做研发、数据库原生的XML支持,这正好是我入行的时候,所以我最早就研究了这个技术在数据库里的实现。到了Oracle9i做了什么?它做了集群,并且集群真正走向成熟了,就是共享存储的分布式集群,Oracle开发自己的Linux发行版,开始做数据库的自动化技术。到了2004年Oracle10g的时候,做了Oracle自动化存储管理技术,这是一个非常成功的产品,它直接导致了市场上做存储软件的一些公司消失了,所以你可以想象它的影响力,这是非常重要的技术事件。
再到了2008年,进入Oracle11这个版本,它开始开发一体机产品,开始做数据库端的读写分离等技术,但是注意在这里我重点标出了一个时间点:2006年,AWS这时推出了S3技术,我认为Oracle数据库在发展的历程中只错过了一件事情,就是云。当AWS在2006年推出S3的时候,Oracle创始人在2008年是这样回复的,他说我认为云是用新瓶装了老酒,没有新的技术创新,是大家炒作的一个概念。可是我们现在回头去看,他的判断出错了,也正是因为这一步的判断出错,大家看到了现在数据库领域的领先者都是在云上成功的这些厂商,比如微软的云成功了,所以微软变成了数据库的第一,Oracle下降到了第二位。所以我们说洞察未来非常难,但是非常重要,它事关生死,这也是我们今天在这里讨论数据库未来的原因。
我们快速向下推进,Oracle在2017年推出的12c版本里开始做分布式,并不是像大家理解的Oracle没有分布式。在2018年的时候18c把它的集群也做成了分片式的架构,也支持了IOT。到了2019年在19c中它支持了智能化的索引——我认为智能化索引是一个创新,真正已经用到生产实践中了。再到20c——现在Oracle每年会发布一个版本,以年度进行命名,但是注意,因为疫情的原因其实20c没有发布,会合并到今年发布21c——持久化内存被应用到数据库里了,这说明什么?说明Oracle数据库仍然是一个具备创新力的产品,正在不断地把领先的技术用到数据库的内核中去,提供新的生产力,这里包括人工智能的索引,这些都代表了今天的前沿。包括它的多模、软硬结合——所以Oracle所走的这些技术路线在今天数据库领域看起来多数都是对的,它只错过了云这一件事情。
2. 微观演进
我刚才讲的其实是几个宏观上的概念,在微观上我找了一些小的要点跟大家分析一下。
数据库今天着眼于性能向前演进最重要的是什么?是把原来的串行点打散变成并行点,其实就是巨大的性能提升,不管是Oracle还是TDSQL,还是其他国产数据库,今天最主要的创新、性能提升是在做这样的事情。我举几个简单的例子:比如从Oracle9i的时候,开始把共享内存池进行分片拆分,拆成了七份;通过ASM把存储进行分布式地打散;把进程进行主从拆分。比如从12c,把日志写进程变成了主从,在几十年的历程中Oracle的日志写进程只有一个,单进程写日志,但是从12c开始变成了主从,这是一个艰难的改变,我们知道绝大多数数据库的性能瓶颈会产生在日志的同步落盘上,大家都在做优化。19c的实时统计信息,再加上到今天的19c智能化索引——其实这个智能化索引的思路比较简单,它就是把人的思维模拟出来,通过人的专家系统进行思考创建一个什么样的索引,去进行尝试确认,性能提升保留,性能下降则删除——但是真正落到工业实现实属不易。在20c里,提出了自动的参数调节以及自治的主备切换等等,把这些能力都融入数据库中,这是Oracle走过的40多年的技术变革之路,它仍然在这条路上向前奔驰。
四、以腾讯TDSQL为例,国产数据库的演进之路
我们再来看国产数据库如何走技术演进之路。我前面提到了关系型数据库技术从1970年科德博士的一篇论文开始,已经走过了50年的历程,这50年在我们做数据库的人眼里,很多时候觉得关系型数据库已经快到尽头了,它未来的路在哪里?我认为关系型数据库未来的路应该在中国,为什么在中国呢?是因为中国有最庞大的数据基础设施、最集中式的数据应用系统,所以这是我的判断。
如果我们在中国看,至少很多业务系统是省级集中的,而一个比较大的省份就可能有上亿的人口,这样集中式的数据基础设施在国外是不可想象的。关系型数据库理论走到今天为什么可以有突破?我认为就一定是在应用中找到突破,所以其实我也在看腾讯TDSQL的发展演进进化,从让TDSQL逐步地能用和走向成熟,这是完成了第一步迭代。第二步迭代,它必须在外部走到最广阔的用户群体、用户场景去使用,最值得大家关注的案例就是微众银行。微众银行今天做到的是单日交易峰值有6亿笔,最高TPS可以达到10万笔,这是一个什么概念?6亿笔的交易大家可以想像,这是多广大的一个用户群体能够创造出来的交易,这样频繁的、高频的交易一定会促使数据库不断地去完善、进步。如果大家用过Oracle的话会知道Oracle数据库在生产系统中能承载的交易峰值和并发的交易笔数,如果你能够见到一个超过每秒1万笔交易的Oracle数据库,已经是一个巨大的挑战,但是今天在互联网的模式下,在分布式的架构下,海量的应用、海量的高并发可以被支持,所以这是我认为在中国的场景下可以带来的催化剂,这些催化剂会促使数据库找到新的向上的空间。
展开来说,一旦一个开源数据库要应用到金融核心上,必须解决的核心问题是什么?第一个是数据安全问题,如何让数据保证一致性是绝对可信赖的,TDSQL进行了数据强一致的改造,主从节点默认是强同步的,这是一个技术创新。第二,当我们使用了分布式架构,也就意味着需要管理的数据节点会迅速膨胀,原来单一的数据库存储,现在在这种架构下可能会有成百上千的数据节点,这样成百上千的数据节点不能够再依赖人去做数据维护,因为做不到了,所以这里面有一组数据,有1万个服务节点在微众银行运行,怎么办?它一定要依赖于高度自动化的监控和故障处理手段,最好是不需要人介入,我认为这也是数据技术发展的重要未来。有了这些之后,我刚才提到整个TDSQL是基于分布式构建的,读写分离是它的基本要义,这样一个系统在支持这样的场景下逐渐找到了未来的发展之路。
这是一个两年前的案例,TDSQL在张家港农商行的客户场景下,把过去的金融交易核心彻底替代。微众银行是一家互联网银行,它的先天优势是没有历史包袱,但是对于一个传统银行,它的数据架构、数据应用是非常复杂的,不仅有交易、存取款、账户,还要有对账,这样复杂的业务场景如何在一个新的数据库架构上落地,其实很困难。这个案例腾讯和最终客户应该是通过两年多的时间才推到线上,现在看来结果是非常好的,一主三备模式,秒级的故障切换,我一直在关注。
但这个案例里给我另外一个非常重要的信息是TDSQL所提供的赤兔和扁鹊系统成为了自动化运维的一个根基,为什么我认为这非常重要?未来的数据库一定不是一个单一的数据库内核系统,而应该是一个数据库生态体系,包含了自动化运维、自治的主备切换、自治的高可用等特性,这些特性也是Oracle今天在做的,我认为在未来会是非常具备竞争力的核心特性。
五、数据库技术发展的未来方向
总结一下,刚才是所观察到的行业应用的变化、数据库技术从理论到实践的变化、Oracle的变化包括TDSQL的发展,现在看数据库的演进未来应该是什么样?首先我说数据库的更迭替代一定不是重走一次长征路,不能用国产数据库把商业数据库替换了,但是不好用,这样用户是没办法接受的,所以它一定不应该是功能和体验的降级,而应该是升级,但如何才能升级?我认为这五大方向是我们应该思考的:
第一是分布式,分布式能解决的是弹性伸缩、故障自愈,这两者同样重要,更重要的是当出现故障的时候不需要人紧急介入,它可以自愈。
第二是智能化,将人工智能技术应用到数据库里,比如去解决DBA过去所面临的核心挑战。DBA过去做优化,很大一部分工作是帮数据库去优化索引,所以Oracle在这一步上优先做的是智能索引,变成自动化,常规的基础工作完成了,索引变成智能的,执行计划是可控的,那么数据库就不再需要特别多的人力介入。
第三是多模化,这一点是有争议的。我前面提到了亚马逊把7500个Oracle数据库替换成了自己的云数据库,可以想象会用多少个云数据库去替换原来的7500个Oracle?很可能是75000个甚至是75万个,为什么?因为Oracle是一个多模数据库,里面可以存储大对象、IOT等各种类型的数据,尽管这种混合存储并不一定都能够达到最佳,但是对于用户呈现出的界面是最简单的。我认为数据库的发展一定也是分分合合的历程,走向分,最终也会走向合,单一的界面输出对于用户是最佳的,如果分散,那就要实现高度自动化。
第四是软硬一体,数据库技术一定不是独立发展的,它一定可以依赖硬件技术的进步取得卓越的性能提升,所以为什么很多数据库今天都在打造一体机?通过高速的网络以及高速NVME存储提升整体的性能,所以软硬协同发展不可缺少,将来最核心的是数据库技术应该下压到CPU处理器一级去做优化,我认为这是可以做到的,而且在中国未来一定也可以做到。
第五是云化融合,云会成为未来唯一的形态。虽然公有云和私有云仍然是两个世界,但是会趋同,技术栈、用户体验都会趋同,而且云上体验云下化是数据库技术发展当下一个最重要的趋势。
所以这五个观点融合在一起,代表了我对未来数据库发展的一些判断。重复一下,如果国产数据库希望让用户获得更好的体验而非降级,只有一个路径去弥补,就是自动化,通过自动化的生态和工具去解决这方面的问题,内核可能还比不上国际一流水准,但是自动化可以帮助用户不去面对底层复杂的基础设施。
最后点一下题,叫DBA的冰与火之歌。曾经很多DBA朋友一度陷入迷茫,尤其是在Oracle阵营的DBA们,他说在国产数据库的浪潮之下Oracle的DBA们还能生存吗?很多人经常问我会被历史淘汰吗?我说不会,首先我们认为数据一定会变成未来数字企业的核心资产,它会越来越重要,这是大家公认的一个前提。第二整个数据库的运行还是相对复杂的,它涉及到了主机、网络、存储,是一个全栈的技能需求,具有一定的技术壁垒,所以DBA们不要害怕失业。第三从原来的数据库管理,你积累的所有经验在今天可以找到更广阔的就业空间,如果我们充分理解Oracle或者MySQL技术,你甚至可以变成一个国产数据库的产品设计师、产品管理师、内核开发者,如果你能把对国外数据库的先进技术变成产品设计和实现驱动,你就变成了我们国产数据库的核心驱动力,所以国产时代我们的路不是变窄了,是变宽了,职业道路更加宽广明亮。DBA这个群体是非常乐于探索、分享、总结的一群人,只要我们具备了这样的能力,将我们原有的学习转移到新的技术路线上来一点都不复杂。
最后我还有一个思考,新的时代,我们做数据库的要记住这两句话:一主一备双引擎,商用开源两相宜。只学一个数据库一定不够,商业和开源都要接触、学习,并且互相校正。有一个主修、一个辅修,可以选择两个科目。在这个国产的时代,从短期看我们往往是高估了难度,从长期看我们总是低估了机遇,春江水暖鸭先知,如果你认识到了这个行业的变革,尽早转型,尽早投身到国产数据库的浪潮中去,那我们就是抓住机遇的第一批人。只有躬身入局,才能够领先一步。
讲师简介
盖国强
云和恩墨CEO、腾讯云TVP
云和恩墨创始人,ACDU 主席。中国地区最著名的Oracle技术推广者之一,他的专著《深入解析Oracle》、《循序渐进Oracle》等书籍受到Oracle技术爱好者的广泛好评。2009年,盖国强先生创建了云和恩墨,致力于为中国用户提供专业的数据服务、产品和解决方案,云和恩墨的 dbPaaS产品和专家服务,已经服务了国内外500多加企业级客户。2019年,他发起创立墨天轮技术社区和ACDU(All China DBA Union),致力于持续的数据知识和应用的传播和推广。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。