作为一个毕业在数据库方向上的PhD,虽然毕业之后主要从事大数据的研发工作,我对数据库领域也一直保持了很大的关注。国产数据库这几年的发展取得了长足的进展。
最近,OceanBase在TPC-C的测试中,以60880800tmpC的成绩战胜了榜单上的Oracle,后者的成绩是30249688tpmC。这件事情又让业界对国产数据库的关注提到了一个很高的高度。
的确,这几年,国产数据库的进步也是有目共睹的,尤其是随着国内移动互联网的迅猛发展,给很多国产新型数据库的应用创造了全球少有的场景。这在很大程度上推动国产数据库和以oracle为代表的传统数据库厂商之间的差距在逐渐缩小,甚至某些层面,呈现赶超之势。
如果深挖这几年国产数据库的发展,大概的研发模式分为两个截然不同的路径。
第一条路径是以早年的达梦,人大金仓和南大通用等几家公司为主。这些数据库公司的主要特点是由大学教授创办,产品无论是以Oracle为参照的达梦还是以面向数据分析为主的数据仓库系统的南大通用,产品在投资规模上以及开发人员上相对较少,功能与性能和国外竞争对手比起来竞争力和优势不够突出。
事实上,数据库产品的研发是一个大投入,长周期,对技术要求很高的领域。但是不管怎么说,作为国产数据库的第一批企业,他们对中国数据库整体技术的发展,还是做出了不可磨灭的里程碑式的贡献。
中国数据库产品的研发的另外一条路径,是中国的非数据库企业,由于自身业务的需要,对外采购以Oracle为代表的数据库产品,从业务,或者成本等方面考虑,无法满足自身需要,从而为了自己业务发展而走向了自研的道路。这里尤其是以中国的通信企业和互联网企业为代表。
中国通信企业的代表华为公司,最近发布了自研长达9年之久的GaussDB。按照发布会的说法,这是基于PostgreSQL9.2版本开发的的数据库,有多个不同的型号,可以支持OLTP,OLAP以及HTAP的场景需求。性能功能以及稳定性都达到了比较好的要求。
互联网企业代表的有阿里和腾讯,电商企业阿里发布了自研的数据库,主要有基于MySQL的计算存储分离的云端数据库PolarDB,以及蚂蚁金服集团自研的OceanBase数据库。前者是阿里巴巴集团和阿里云业务的主打,后者成为了这次TPC-C测试里面打败Oracle的主角,主要应用于蚂蚁金服的相关业务。这在此前的文章中也做了详细阐述,这里不再展开。
另一个巨头是腾讯,基于自身在社交、金融、游戏等数亿级,甚至十亿级业务用户场景下打磨的数据库能力,其产品的性能和特性也真实代表了国产数据库发展的另一种发展途径。
追溯腾讯的业务发展,由于起步阶段是从KV与存储分析的类型开始,然后逐步过渡到关系型数据库的使用上来的。相对其它互联网厂商,腾讯天然没有去IOE过程,因此在投入云的过程中,云化的程度更加彻底。并且在自研的道路上,也探索出很多成熟的经验。这里以他们主要的三款自研数据库CynosDB、TDSQL、TBase来详细说明。
腾讯云数据库负责人曾经跟我聊过,这三款数据库定位各有不同,CynosDB是云原生数据库,设计上聚焦软件优化与新硬件结合为理念,兼容性强,适合开源用户上云使用。TDSQL和TBase孵化自腾讯内部成熟业务,并且都经过大规模高并发场景锤炼,主要应用在分布式超大规模存储并发场景以及私有云项目。具体TDSQL和TBase之间,TDSQL主要定位是OLTP,协议支持MySQL,TBase的定位是HTAP,支持行列混合存储,协议支持PG。
虽然中国数据库起步较晚,以Oracle、IBM、微软等为代表的老牌厂商凭借先发优势在市场份额占据了有利位置,但是云技术的发展还是让国产数据库搭上了快班车。2018年,以腾讯、阿里、华为为代表的三大厂商不仅增速位列前列,市场份额也在逐年增加。腾讯云去年市场份额增速达到123%,位列国内所有数据库厂商之首。
如果增速体现的是市场大盘的增长,那么在复杂场景下实现自主可控考验的就是真实的技术实力。
这里一个标志性的事件是上个月张家港农商银行基于腾讯云TDSQL打造的新一代核心业务系统成功上线,在圈里还是引起了很大的反响。这应该是国产数据库首次正式进入金融的核心业务系统,实现自主可控。性能上,高频账户类交易耗时在300毫秒之内,查询类交易耗时在100毫秒之内,20秒内可以完成1万笔批量代发代扣业务等等,批量业务进行时,数据库负载均保持在10%以下,满足张家港行未来五到十年业务发展需求。
除了TDSQL,另外一款自研数据库TBase也应用在广东省的“粤省事”小程序上面,支撑超过1900万实名注册用户,实现了包括公积金查询及转存、医保报销等700多项高频便民服务事项办理,累计业务量超3亿笔。
其实,抛开以上,腾讯云数据库的很多理念也可圈可点,给业内人士不少启发,比如刚刚推出不久的DBbrain,它能够将大量数据库问题的诊断优化工作自动化、智能化和可视化,可以大幅减少人工的运维量。
和早年的数据库厂商相比,这些从电信行业,互联网行业里面发展起来的数据库,有技术、有场景、有资源投入,并且都经历了对自身业务支撑的考验。而不管是电信行业还是互联网行业,在对数据的规模,数据库产品的功能和性能的要求,以及业务的复杂性方面,都经过了严苛的实际考验。
这些数据库能够支撑起复杂的业务场景,其可用性和可靠性都是非常高的。可以说,经过近10年的业务打磨,从大的通信厂商和互联网公司里出来的这些数据库产品,和国际同类产品比较起来,已经具备了相当强的竞争能力。十年磨一剑,国产数据库的春天终于到来了。