我的解读:分布式数据库发展趋势报告2022

2022-09-07 00:00:00 数据 用户 数据库 分布式 场景
7月底,国家工业信息安全发展研究中心的2022版《分布式数据库发展趋势研究报告》发布后,我仔细研读了一番。从报告中了解到了不少国产分布式数据库发展的一些前沿性的信息。虽然国外有不少数据库产业发展的而分析报告,不过其分析的内容大多数与我们国家的数据库产业相去甚远,我们国家的产业界也确实需要有一份我们自己的国别数据库产业研究报告。
报告是对分布式数据库的发展前景持极为乐观的态度的,确实在国内外的分布式数据库市场近些年的趋势来看,其增长也是相当迅猛的。对此,我也感同身受,分布式数据库的未来有相当广阔的前景。特别是在一些特殊业务场景的支撑上,分布式数据库有着比传统集中式数据库没有的优势。

虽然国内外的产业界都比较认可分布式数据库必然迎来爆发性增长,真正能够让分布式数据库在未来的数据库竞争中获得优势的,还应该是分布式数据库在产品所表现出来的符合用户应用场景需求的特性。只有符合用户应用场景需要,并在竞争中表现出真正的优势,才能够真正让分布式数据库在未来的数据库竞争中获得优势。今天我就分布式数据库发展趋势报告中的一些信息,以及我所了解的用户需求来分析一下分布式数据库怎样才能在这场竞争中胜出。

多年来,数据库行业内讨论得比较多的一个话题,就是选择分布式数据库还是集中式数据库。实际上这个讨论已经超出了“企业应该选择什么样的数据库产品“这个话题。受到互联网企业在在数据库应用方面的成功的影响,大多数企业都表示对分布式数据库比较感兴趣。目前对于分布式数据库,以及在企业中使用分布式数据库在不同企业、不同的IT从业人员中是存在两个极端的。一部分人认为企业数据库应用必须用分布式数据库,一部分人认为分布式数据库无法在自己企业里大规模应用。实际上,出现这两种极端认知也是正常的,因为不同的企业的应用场景不同,因此也会对分布式数据库有两种截然不同的看法。

要想来探究分布式数据库的问题,首先我们必须回答一个问题,那就是分布式数据库解决了企业的什么问题?或者说企业希望用分布式数据库来解决什么问题?实际上并不是客户天生需要使用分布式数据库,而用户选择分布式数据库一定是分布式数据库有着集中式数据库无法替代的一些能力,否则这个客户的选择就出现了问题。

我和很多金融企业的IT人员交流过他们选择数据库的依据,安全可靠,高可用是决定他们选择数据库产品的重要的要素。哪怕这个数据库在SQL语句上有些限制,性能上有些问题,这些都不是大问题,都是可以通过应用优化来解决的。而安全可靠一旦不能保证,那么金融系统的根本的安全就受到了极大的影响。分布式数据库的数据多副本存储、自动故障切换等都是金融行业企业所关注的。目前分布式数据库的三种主要的形态,在这方面都下了大功夫。
形态一:分布式中间件+单机数据库通过数据库本身的主从复制实现数据的高可用,国产数据库此形态的数据库包括GoldenDB、HotDB、TDSQL、StarDB等,openGauss与ShardingSphere组件整合后,也可以近似等同于此类形态的分布式数据库;形态二:非对称计算节点+分布式存储本身在底层的分布式存储上实现了数据的多副本,而只读备库可以随时快速升级为主库,替代故障的主库,从而确保数据的可靠性,这种形态与集中式数据库十分类似,国产数据库中,阿里PolarDB,腾讯TDSQL-C/TDSTOREdeng都采用此形态;形态三:原生分布式数据库则天然设计为数据多副本,并通过分布式选举协议自动选主,实现透明故障切换,国产数据库中OceanBase、TiDB、HubbleDb等采用此形态。

从这三种形态上看,分布式中间件架构和非对称计算节点架构的故障切换时间会因为待复制的WAL的数量而变得不太固定。如果切换发生在大量UPDATE发生时,可能会出现较长的切换延时。相对来说,原生分布式数据库在控制副本复制上更有优势。实现可确保的30秒以内主副本切换,甚至进一步压缩到10秒以内,对于金融用户的高可用要求来说,是十分关键的。

实际上金融用户所需要的高可用也是很多其他行业用户选择分布式数据库的一个主因。除此之外,大部分选择分布式数据库的客户都是被HTAP的能力所吸引的。HTAP到底是不是伪需求的问题,实际上已经不需要讨论了,无论是互联网企业还是传统企业,都涌现出了一大批HTAP应用场景。而如何将AP/TP两种截然不同的工作负载在一个数据库里实现,分布式数据库有天然的优势,利用读副本做查询与分析,利用租户与资源管理器隔离用户之间的工作负载,使用行列混合存储或者行存列存双副本,可以为各种HTAP场景提供有力的支撑。

前些天我和一个客户讨论数据库XC的问题,他提出了一个需求。他们觉得数据库信创对业务的风险还是挺大的,能不能让数据库一部分跑在X86节点上,一部分跑在信创节点上,根据使用的情况,逐步把X86节点下线,无缝切换到纯信创环境中。实际上这些需求也为我们的分布式数据库厂商提供了一些产品设计的思路,在目前这个特殊历史环境中,能够具备这种能力的数据库,肯定也是能够获得大量的市场的。
针对分布式数据库所面临的挑战,报告中提出五点,我们先来看前三点。一个是数据库迁移时的兼容性问题,实际上信创迁移都会面临兼容性的问题,因为以前我们的应用要么跑在商用数据库ORACLE,SQLSERVER ,DB2等上面,要么跑在开源的MySQL、PostgreSQL等上面。如果不考虑SQL语法的兼容性就是耍流氓,系统迁移的成本太高也会制约了数据库XC迁移。除此之外,与集中式数据库不同的是,分布式数据库本身对SQL就有一些天然的约束,有些分布式数据库限制表必须有SHARDING KEY,或者对全局索引有些限制,另外事务隔离级别、每个交易大的记录数、多表连接的数量,SQL复杂程度等都有一定的约束。还有些分布式数据库不支持存储过程,或者说存储过程的语法上与商用数据库的能力上差距较大。这些问题都会对XC迁移造成了阻碍。

安全合规其实是一个更大的问题,目前大部分分布式数据库产品都大量使用了开源的代码,代码的安全性,甚至代码的知识产权合规性都存在较大的风险。不过这些问题普通的用户极难把握,需要我们的管理部门出台具有实用价值的规范与审核和评测手段,避免让不具备专业能力的用户来判断一些合规与法律方面的问题。

实际上这三条挑战并不能涵盖用户以及用户应用场景对分布式数据库产品的需求。分布式数据库产品的文档完善度、易用性,可观测性,运维成本、售后服务水平等都是客户十分关注的问题,这些也都是目前绝大多数国产分布式数据库还存在问题的地方。

另外一个制约分布式数据库进入寻常百姓家的因素就是成本。目前的很多分布式数据库产品的小部署单元还是过于庞大,只能让一些有钱的客户成为玩家。分布式数据库小型化一直是客户所期望的,只不过目前我们的很多分布式数据库厂家依然没有看到客户的这种需求。在当前300多种国产数据库横空出世的时代,国产数据库市场内卷是必然趋势。如果只盯着一些有钱的大客户,恐怕是不行的。前阵子OceanBase 4.0发布时推出了单机版分布式数据库,让人眼前一亮。一个分布式数据库可大可小,大型的可以支撑大型互联网业务,小型的可以在云平台的两台ECS虚拟机上构建一个主从高可用集群,如果今后业务发展了,还可以平滑升级到真正的分布式环境。这让很多中小企业也能够玩得起了。
在分布式数据库中也存在一个种类,天生就比较容易小型化的,那就是非对称计算节点的分布式数据库。这种以日志就是数据库理念的分布式数据库产品早的典型就是亚马逊的Aurora,今年4月份,谷歌也推出了类似架构的AlloyDB。在国产数据库方面,阿里的PolarDB-O/PolarDB-PG,以及腾讯的TDSQL-C/TDSTORE等都是采用这种架构的。虽然这些数据库在高可扩展性方面存在一些不足,不过因为其具备的小型化特性,以及易用性,反而在目前一些用户场景中获得了较好的应用效果。
在报告中对于分布式数据库的应用场景与生态也提出了一些挑战。其中提出了客服实验室场景与实际应用场景之间的性能差异的问题十分尖锐。这一点也是我们的用户在具体应用实践中遇到的问题。往往一些分布式数据库产品在实验室的测试数据十分漂亮,但是在应用实践中的效果不太理想。这也是实际应用场景的复杂性决定的。大部分用户是希望数据库能帮他们解决应用中的问题,而不希望通过加大应用的投入来解决数据库存在的缺陷。这需要分布式数据库厂家能够提供大量的技术手段,让用户能够面对各种各样的应用厂家。通过HINT、OUTLINES等技术手段优选执行计划,通过多模引擎让各种非结构化数据的访问变得更为简单,DB4AI/AI4DB等技术的引入等,都会大大拓展数据库的应用场景支持,同时让数据库变得更加易用。

后一点,开源生态是十分重要的,开源生态可以弥补目前国产数据库中存在的研发能力、服务支撑能力不足的问题,也可以缓解用户转向开源数据库的成本压力。因此“开源是基础软件的必经之路”这句话我是十分赞同的。

不论如何,分布式数据库要想在未来国产数据库发展中占据主导地位,必须在更好地解决用户应用场景痛点上下功夫,并且在更易用、更低的使用成本、更好的可观测性、更强大的售后服务支撑体系等方面下足功夫才行。我想在目前长长的国产分布式数据库清单里,终能够成功的也可能只是一个短名单。

相关文章