去年年末中国电子学会正式公布了2020年中国电子学会科学技术奖名单, 阿里云自主研发的云数据库PolarDB,获得科技进步一等奖。
(左四为PolarDB项目的负责人李飞飞)
这不是阿里去第一次获得这样的荣耀,阿里云的飞天操作系统在2018年曾经获得过电子学会科学进步特等奖,也是该奖项设立以来科学进步方面的首个特等奖,这次PolarDB的获奖也说明了阿里云自主技术的实力。
在今年5月29日的阿里云开发者大会上,李飞飞正式宣布将开源PolarDB for PostgreSql,这个决定的宣布也是整个开发者大会上,笔者得到的最大的惊喜之一。
PolarDB是阿里云自研的数据库产品家族,采用存储计算分离、软硬一体化设计,既拥有分布式设计的低成本优势,又具有集中式的易用性,可满足大规模应用场景需求。计算能力最高可扩展至1000核以上,存储容量最高可达100TB,集群版单库最多可扩展到16个节点,性能比MySql高6倍。PolarDB系列产品已连续多年稳定支撑天猫双11,处理峰值高达创纪录的1.4亿次/秒。
PolarDB有三个兼容的产品分支,分别对应MySql、PostgreSql和Oracle。我们注意到此次在阿里云开源PolarDB for PostgreSql分布式版本之前,华为OpenGauss计划实际上也是 GaussDB For PostgreSql的版本,此次阿里云的开源也颇有与华为GaussDB同场竞技,通过代码显现自身实力的意味。PolarDB本次开源使用比较开放的Apache Version 2.0协议,代码可以修改和再发布。
自2018年起,阿里云连续三年进入Gartner数据库魔力象限,并在2020年挺进Gartner全球数据库领导者象限,成为基础软件领域首次进入领导者象限的中国企业。目前,阿里云数据库市场份额稳居全球前三,亚太第一。因此本次PolarDB的开源实在令人惊喜,因为开源实际是把自身的核心技术完全开放出来,这也会给竞争对手以一定的借鉴参考甚至超车的机会,只有对自身技术迭代能力极为自信的企业,才会选择将核心技术开源。
据传,最初对于PolarDB是否开源,阿里云内部的讨论十分激烈,为此张建锋和李飞飞甚至拍过桌子,但最终的决定还是开源。在听完了李飞飞在本次开发者大会的分享后,笔者认为PolarDB开源的底气其实在于阿里云对于数据生态链条完整的把控,而通过开源也必然会让阿里云数据库生态体系更加强大。
大有大的难处,数据库的Sql之争
权威咨询机构IDC对于大数据的定义是现有技术难以处理的数据。从历史来看,在谷歌提出大数据三驾马车的论文时,当时的关系型数据库技术就已处于难以处理大规模数据的状态。而在当下各行各业不断上云的大背景下,数据的量级必然还将不断创出新高,从笔者了解到的情况来看,整个IT行业存储的数据量级正在以年化80%左右的速度增长,传统Sql的数据库很难处理这样的数据量。
随着时间的发展现在数据库方面有两大流派,一个是非关系型(NoSql)数据库,这是一种专门用来存储海量数据的Key-Value型数据库,主要用于用户画像、业务报表等海量数据的挖掘工作;另外一个是关系型(Sql)数据库,其针对个别记录增、删、改、查的速度很快,但很少做全表级别的大型关联计算,因此一般用于联机交易场景。简而言之,Sql处理速度快,NoSql处理数据量级高。
之前Sql与NoSql的应用场景两不重叠,井水不犯河水,但像直播带货这样的新场景不断涌现,由于在直播中的交易既要更新商家的库存和买家的帐户余额,又要根据客户行为进行实时分析、精确营销,类似这种综合Sql与NoSql需求的业务场景不断涌现,而以PolarDB为代表的云数据库则是解决这类问题的最佳途径。
以笔者所在的银行为例,目前一般在商业银行都使用Oracle数据库作为核心系统,但Oracle只能处理流程性的交易数据,不能做数据挖掘,要想把数据价值做二次表达,要每天做ETL、跑批作业、存到数据仓库中,然后在数据仓库中建模、挖掘、数据集市、ODS,一层一层地构建起数据仓库报表。
如果还回答不出非线性问题这样更细节更隐含的问题,就要把数据复制到SAS中做机器学习,再做统计的指标体系,以便做进一步的挖掘。数据要在这里搬动三次,复制三份冗余,还要管理数据一致性,每天数据中心运维的大量工作在做数据搬家。而数据在这种低效的转运迁移过程当中,很多价值也就白白耗散了,同时带来了处理时效和灾备建设这两个巨大的问题。
在处理时效问题上,正如我们前文所说,Sql与NoSql两种产品底层构建模型并不相同,彼此兼容性不佳。这首先就会催生出数据处理的时效性问题,还是以笔者所在的银行为例,分析数据在交易核心数据库中跑批处理,再ODS抽取ETL分析到数仓,再进一步训练流式计算,最后再入湖,整个数据手动的过程至少需要一天。
而且Hadoop和数据湖的开源生态中很多组件并不兼容,日常运维已捉襟见肘,想提速也无从下手,但业务对于转瞬即逝的营销机会又如此渴求,T+1分钟可能都会嫌慢。对于处理时效的要求可能是大数据工程师与产品经理之间永远无法达成的协议。
PDB与ADB的协同之战
从上面的介绍想必大家也能看出来,目前各个数据中心都迫切的找到一个一栈式解决方案,屏蔽底层组件的差别,打造“All Data In One”的解决方案,只有如此才能提高效率,低成本运维。而阿里云的PolarDB为代表的关系型数据库专注于解决Sql的需求,其 提供 的自动参数优化,自动索引推荐等功能,极大的提升了数据库管理员的幸福感,AnalyticalDB则是NoSql数据仓库方面的绝顶高手,这两个产品形成的数据库解决方案体系弥合了Sql与NoSql之间的鸿沟。
以PolarDB为代表的云原生数据库通过存储和计算分离、资源解耦,从而具备更高的弹性和高可用性以及分布式的能力,来满足业务对按需按量使用和按需按量付费的需求。
PolarDB和AnalyticalDB都是一种服务,用户完全可以不关注隐藏在PaaS层之后的具体细节,数据库及数仓之间的数据流动等技术细节被云服务封装起来,对于用户屏蔽了,这也使这一整套解决方案体系综合了NoSql与Sql的优势,用户可以不费吹灰之力的同时拥有一个高效的数据仓库,可谓一举用户在使用数据库中的最大痛点。