当前位置: 首页 > 科技观察

解读《分布式数据库发展趋势研究报告》

时间:2023-03-19 00:26:18 科技观察

近日,国家工业信息安全发展研究中心发布了2022年的《分布式数据库发展趋势研究报告》。报告从数据库行业的发展、分布式数据库产品的价值、调整、技术路线、发展趋势、发展方向等多个角度阐述了分布式数据库存在的诸多问题。在本文中,我将从个人角度谈谈我对上述研究报告的解读。一、背景篇:不出大事,必一鸣惊人。随着数字化转型的深入,企业对数据的关注度也逐渐提高。随着云计算、5G、物联网、人工智能、区块链等新兴技术的发展,更多新兴数据场景正在催生。直观带来的是数据规模呈几何级数增长,数据结构的复杂度与日俱增。根据第三方机构的预测数据,未来几年全球数据存储量将呈现爆发式增长。除了数据规模之外,对数据载体数据库在数据采集、存储、传输、展示、分析和优化等方面也提出了更高的要求。希望以此更好地实现企业对数据资产管理、增值和科学决策、数据高可靠和高可用、在线数据分析等需求,进一步发挥数据的价值。以上诉求可以说是对数据库提出了更高的要求,但是传统的数据库架构显然无法应对超大规模、高并发、实时处理、数据安全等。建设成本也难以适应数字时代的趋势。与传统数据库相比,新兴分布式数据库的优势凸显。大规模存储容量的突破在传统的单机或集中式架构下,承载的数据规模受限于本地磁盘或可连接的外部存储空间。后者虽然可以大规模实现(如PB级),但建设周期长,扩展不灵活,投资成本高,仍然面临IO性能瓶颈。分布式架构数据库以其天然的数据分片能力,是有效解决超大规模数据承载问题的有力工具。突破高性能计算瓶颈作为承载计算的主要资源,CPU和内存资源对于计算来说尤为重要。在传统的单机或集中式架构下,以上资源只能通过ScaleUP进行扩展,扩展能力有限,无法整合更多资源参与计算。分布式架构的数据库可以通过网络聚集更多的计算资源参与其中,形成更大规模的算力支持。在高并发、高性能计算领域更具优势。填补数据分析能力空白数据分析是数据利用的重要方向之一,以往通常由数据仓库等技术承载。这种在线数据库和离线数仓的架构在一定程度上可以解决数据分析的问题,但在实时性、一致性、成本等方面存在不足。理想的方式是在单个系统中完成,但传统架构受资源限制,无法完全提供。分布式架构的数据库,通过整合其计算能力,可以满足混合负载的业务压力,大大提高分析的时效性,减少数据冗余,大大提高灵活性。提高可用性和安全性在传统架构下,数据库的可用性更多地依赖于单点(或存储),往往通过冗余硬件保护的方式来提高设计;但是,由于架构限制,很难实现非常高的可用性。对于数据安全,通常通过主从复制和备份的方式来完成,但数据的在线安全难以保证,需要在一个窗口期内完成恢复。分布式架构具备存储计算分离、多副本、弹性扩展等能力,有效提升整体可用性和数据安全性。用户可以根据需要灵活调整架构,提高易用性和安全性。传统架构数据库优化成本模型实现按需扩展成本相对较高,主要是其架构限制,向上扩展相对容易,水平扩展困难。为了保证业务的快速发展,通常需要在项目设计初期就按照最大容量进行规划,或者为更高的可靠性付出高昂的成本。分布式架构数据库不同。其架构天然支持灵活的扩展能力(包括存储和计算),可以实现低成本高可用的解决方案(多副本)。以上能力将有效降低企业在构建系统方面的投入,尤其是面对快速变化的业务场景。2、技术文章:百花齐放,百家争鸣。从上图可以看出,分布式数据库已经发展了很多年,尤其是近几年才逐渐成熟并投入使用。从大的技术路线来看,大致可以分为几种:路线:分布式中间件+单机数据库这种技术路线是对单机数据库系统进行改造,主要解决计算和存储的扩展性问题.上层是一组无状态的计算节点,提供基于分片规则的SQL解析、请求转发和结果合并能力。下层是增强型单机数据库,提供单机数据库的存储和执行能力。该架构通过逻辑层的数据切分,可以近似线性地扩展计算性能和存储容量,具有扩展能力。路线:分布式存储建设的技术路线是通过构建分布式共享存储、使用非对称计算节点实现扩展,大部分公有云数据库都走这条路线。该路线有限地解决了可扩展性问题,跨区域的数据一致性主要依赖于分布式存储引擎。共享存储可以提供跨多个节点的读写,上层的计算部分由一组无状态节点组成。当具有写能力的计算节点发生故障时,会自动选择其中一个可用的读节点作为写节点,实现写能力的高可用。路线:NativeDistributed该技术路线是原生分布式数据库,每个计算节点提供点对点的读写服务。该路线基于分布式共识协议的底层设计,与传统数据库有着根本的区别。原生分布式数据库将分布式存储、事务和计算有机地结合在一起。数据由系统自动打散并存储在多个副本中。一致性协议确保多个副本和事务日志的一致性。分布式事务、GlobalMVCC等支持更彻底。整个分布式结构包裹在集群内部,应用程序并不知道它。3、趋势:化石为石,化钝为利随着分布式架构数据库在众多场景中的使用,享受其带来的收益,也对这种新架构的产品提出了更多的挑战。这些挑战也为分布式数据库未来的发展指明了方向。(1)融合原生设计,比如上面提到的分布式数据库,有不同的路线,不同路线的产品有明显的差异。从长远发展看,不同路线的产品逐渐融合,各家各取所长,不断丰富产品能力。一方面,与单机或集中式架构相比,分布式架构产品还存在很多不足,可以理解为基础能力的完备;另一方面,用户也对分布式能力提出了更高的要求,可以理解为扩展能力增强。基础能力的完善分布式架构下,与单机或集中式架构相比,还存在很多不足。这些都会直接影响用户体验。比如分布式事务的一致性保证,ACID,在单机上更容易实现,在分布式环境下问题更多。分布式数据库将需要处理的事务进行拆分,然后部署到不同的服务器上进行处理。理想情况下,整个过程需要全局一致性协议的保护,在一些突发情况下可以采用分库分表的两阶段方式。容易出问题。再比如,分布式架构多采用存储计算分离架构,自然会带来层与层之间的网络开销。如何解决低延迟需求值得思考。增强的可扩展性随着分布式数据库的使用,如何利用好这个架构成为核心。比如在分布式场景下,如何做好数据分片的智能化。通过分库分表进行分布式数据分片,使每个表的数据量保持在阈值以下,以应对高并发和海量数据,但如何高效、高质量分片还有待探索。此外,分布式数据库作为一种全新架构的产品,其弹性伸缩、按需扩展、海量支持、多副本细粒度控制等课题也值得深入探讨。(2)负载集成设计企业级应用的业务场景通常可以分为在线交易和实时分析两种类型,通常称为OLTP和OLAP业务应用。由于应用场景不同,很多企业往往会选择多种数据库产品分别支持。这种组合方案需要在不同产品之间传递数据,数据同步过程带来时延和数据不一致的风险,同时还会产生冗余数据,被迫增加成本,这在一定程度上制约了企业的发展.分布式数据库的出现,为企业解决上述问题带来了契机。这也是近年来HTAP(mixedworkload)的兴起,旨在打破事务处理和分析之间的“壁垒”。未来的分布式数据库应该具备混合负载能力,即在支持高并发和事务性请求的同时,对分析型复杂查询也有很好的支持,使计算资源和I/O资源互不干扰。通过互不影响的在线交易和分析,一站式解决企业级应用的各种需求,从而大大降低成本,提高企业决策效率。(3)云和云原生设计全球知名咨询公司Gartner预测,“到2022年,75%的数据库将部署或迁移到云平台……”云化无疑代表了未来。数据库作为IT基础设施,如何将数据库与云环境融合,成为摆在大家面前的难题。特别是对于分布式数据库,其架构需要大量的资源来搭建。如何有效解决灵活部署、弹性伸缩、资源管理,甚至如何更好地利用云基础资源,通过与云的结合,实现真正的云原生,都是分布式数据库需要考虑的事情。因此,在分布式数据库产品的设计层面,需要充分适应云环境,兼容更多的云技术,增加更多的资源管控、多种部署形式、云原生资源利用。(4)高可用和一致性设计是数据库的基本能力要求。服务高可用和数据一致性一直是企业选择数据库的重点考察要求。尤其是随着数字化转型,更多的数据参与到企业的业务流程中,对易用性等提出了更好的要求。传统数据库架构在7×24小时不间断服务、零数据丢失等方面往往已经超出了其承受能力,或者即使能够解决,成本也非常高。分布式数据库的分层、多组件、多节点架构成为高可用的基础。有效控制故障范围,主动发现和自愈,可以大大提高服务可用性。同时,其多副本机制为数据的一致性和安全性提供了可能。这也是相对于传统架构的一个突破,可以实现更细粒度的数据一致性,满足各种数据场景下不同级别的一致性需求。(5)软硬件结合异构设计硬件和软件是信息系统的核心组成部分,两者相辅相成,相互促进。新硬件的出现可以给数据库的发展带来更多的好处。一方面,以多核CPU、异构计算(如GPU、FPGA)持久内存、高速网络等基础硬件为代表的硬件的出现,为分布式数据库架构提供了更多的想象空间;另一方面,新的硬件也会给数据库设计带来更多的挑战。如何用好新硬件,值得每一个数据库厂商思考,甚至??有可能颠覆以往的设计模式。此外,数据库作为关键基础设施,还需要为操作系统和芯片的灰度更替提供支持。在重点行业和软件领域,数据库还需要为异构芯片提供支持,从而提高数字化解决方案的严谨性。降低应用风险。(6)全密安全设计当前,信息安全已经上升到国家战略的高度,许多行业监管机构和政府部门对数据存储和使用都有明确的安全合规要求。《中华人民共和国个人信息保护法》2021年11月,监管部门宣布在金融等行业推进数据加密,要求敏感数据以加密方式存储。数据库作为数据的主体,有义务为此提供坚实的数据安全保障。所以在分布式数据库设计之初,需要考虑数据传输、数据存储、数据计算等方面的安全问题。数据透明加密、数据透明传输、多密钥管理、国密算法支持、加密状态计算等方面,都需要考虑。(7)分布式数据库的低成本集约化设计作为一种新的架构产品,会给企业带来很大的成本。从管理的角度来说,分布式架构给运维人员带来了新的要求,如何管理成为重点。产品是否提供完备的管理能力和完备的生态工具,将直接影响到最终的使用效果。从资源的角度来看,分布式架构需要一定的资源投入。如何做好规划设计,通过租户能力有效降低使用成本非常重要。(8)高易迁移设计对于底层数据库的更换,最头疼的就是数据库的更换。经过企业信息化的长期积累和创新,大部分企业内部已经积累了大量的业务系统。传统的企业级数据库产品提供强大的能力帮助开发者快速、轻松地构建应用,但同时导致应用设计过度依赖数据库功能。适应新的数据库产品需要大量修改应用程序代码。没有两个数据库是完全相同的,分布式数据库更是如此。底层架构和实现逻辑肯定是有区别的。更好的方法是提供高兼容性,这将有助于大大降低代码改造的成本。目前大部分分布式数据库还没有完全兼容主流数据库生态,兼容的种类也不够丰富,兼容程度有待提高。此外,分布式架构对设计也有特殊要求。如何降低研发设计成本,几乎透明地屏蔽这种差异非常重要。此外,数据从传统的集中式数据库迁移到分布式数据库是一项复杂而庞大的工程。从前期的兼容性评估、应用设计改造,到中期的业务测试、性能测试,指导最终迁移的完成并保证迁移的准确性等,都需要提供全流程的支持。这也是分布式产品普遍缺少的。希望未来的分布式数据库产品具备全方位、高标准、高可靠的平滑迁移能力。4.开发篇:知之不难,做之难。分布式数据库作为一种新的技术架构,需要多方位的支持来推动它的发展。从近几年来看,得到了国家、行业、用户等多方面的大力支持。从政策层面,将作为数据基础设施之一的数据库提升到一定层次,重点布局将聚焦数据库的分布式改造和应用创新战略。从行业来看,越来越多的数据库厂商加入进来,尤其是分布式产品已经成为主流。在用户方面,以金融、电信为代表的高数据价值企业已经开始逐步在核心生产系统中使用。但同时我们也看到,分布式数据库的推进还存在很多不足,这也是我们未来需要重点发展的地方。(1)我们要培育自己的生态数据库并用好,需要从“产、学、研、用”的角度去考虑,需要与上下游形成合力生态,以便为客户提供更完善的服务。与以往国外商业数据库或开源产品相比,国内数据库生态仍需加大投入,培育自身生态。其中,这个过程可以通过生态兼容来加速,如何有效利用之前成熟的生态值得思考。此外,开源作为生态建设的有效手段,也是生态建设的利器。(2)共建行业标准分布式架构作为一种新型的数据库,目前还没有形成统一的行业标准或事实标准。从最终用户的角度来看,他们不得不面对复杂的产品细节,这也阻碍了分布式数据库的大规模推广。从行业整体发展的角度来看,一方面可以由行业指导单位牵头,行业内多家企业参与制定标准;另一方面,通过建立标准化的评价体系,建立可衡量的标准。希望通过标准的制定,探索出一条有特色的发展路径,抓住机遇,早日在分布式数据库领域实现换道超车。(3)建立专有的测评分布式数据库,作为新产品具有自己的架构特点。对这个新产品的理解因公司而异。业界迫切需要统一的评价标准,从多个维度对这一新型产品进行评价。这不仅包括传统数据库的基本能力,还包括分布式的固有特性,如高可用、备份和恢复等。逐步建立其功能测试、非功能测试和场景测试的组合,形成完整的评估系统。(4)填补最后一条路企业更换底层数据库是一个相当痛苦的过程,尤其是对于一个新架构的产品。大量使用分布式架构的用户的担忧来自于对新架构、新产品的不了解,以及对实现路径的不熟悉。前者我们可以通过专有的评价标准逐渐熟悉,而后者则需要做好“最后一公里”,填写最后的路径。形成标准的实施路径将从模型选择评估、工作负载评估、结构数据迁移、流量切换和在线保障等多个角度大大加快这一进程。写在最后:分布式数据库还处于发展的早期阶段,但已经有了蓬勃发展的迹象。虽然还存在很多不足,但发展空间巨大。这里送给分布式数据库从业者一句话:路漫漫其修远兮,征程已至;旅途不停,未来可期!作者介绍韩峰,社区编辑,CCIA(中国计算机协会)常务理事,前OracleACE,腾讯TVP,阿里云MVP,dbaplus等社区创始人或专家组成员。具有丰富的一线数据库架构、软件开发、产品设计、团队管理经验。曾担任多家公司的首席DBA和数据库架构师。涉足云、电子商务、金融、互联网等行业,精通各种关系型数据库,也涉足NoSQL和大数据相关技术,具有丰富的实战经验。他撰写了与数据库相关的书籍《SQL优化最佳实践》和《数据库高效优化》。