分布式数据库发展综述
2023-12-01苏彦志蒋越维
苏彦志,陈 广,蒋越维
(中国移动通信集团河北有限公司,河北 石家庄 050000)
1 分布式数据库概述
分布式数据库的特点主要包括以下几点。
(1)透明性:分布式数据库的透明性包括分片透明、复制透明、位置透明和逻辑透明等,其中分片透明是透明性的最高层次,逻辑透明层次最低。具体来说,透明性是指用户在使用过程中,不必关心数据在数据库管理系统内部是如何分片的,不必知道数据都分别存放在哪个节点以及各个网络节点是怎样完成数据复制的,用户只需在使用时完成自己的相关操作即可。
(2)高可靠性:分布式数据库会对数据采取多次备份存储形成多副本来提高数据的可靠性。当某个节点出现故障时,其他节点可快速替代故障节点继续工作,避免出现数据丢失现象。
(3)易扩展性:当数据库现有容量和性能告急时,分布式数据库可采取添加新节点和服务器的方法来实现扩展,相比于集中式数据库的难扩展性可以更好地满足用户不断增长的需求。如图1所示。
图1 分布式数据库[1]
2 分布式数据库的发展历程
21世纪以前,关系型商业数据库可以满足大部分用户应用场景,但随着互联网应用的到来,数据呈现大容量、多样性、流动性等特点,采取集中式架构的传统关系型数据库逐渐无法实现业务系统高并发的需求,于是分布式数据库迎来了发展机遇。
2.1 第一代分布式数据库——NoSQL
2009年初,NoSQL数据库应运而生代表着第一代分布式数据库的诞生。它专注于分布式场景下数据的存储和查询,不需要预先定义Schema,开发人员可以频繁在线更改Schema,更高效满足业务需求。NoSQL数据库打破以前传统商业数据库多节点部署难度大、造价高的困境,易于扩展。但由于其是通过牺牲SQL和事务来实现可扩展的,甚至缺乏ACID,因此数据一致性问题难以解决,应用场景十分局限,不利于完成整个应用架构的搭建。最流行的两个NoSQL系统分别是Amazon Dynamo和Google Bigtable。Dynamo系统因牺牲一致性而失败。Bigtable虽实现了强一致性,但只支持单行事务,未达到高效的目的。如图2所示。
图2 第一代分布式数据库
2.2 第二代分布式数据库——NewSQL
第一代分布式数据库友好性欠缺,且无法支持SQL,于是第二代分布式数据库采用搭积木的方式,在NoSQL的基础之上引入了SQL支持,以Google Spanner为代表。Spanner支持大部分SQL,但不兼容SQL标准,通过Truetime实现全功能事务,保证了强一致性,但单次事务提交时延、单机性能牺牲度较大,这意味着其不符合性价比的特性,难以广泛应用于传统行业的业务场景。如图3所示。
图3 第二代分布式数据库
2.3 第三代分布式数据库——原生式
第三代是原生式分布式数据库,充分享受分布式高可用、可扩展的技术红利,在利用较低成本的前提下具备极致单机性能,是较为成熟的透明扩展企业级数据库,如OceanBase。OceanBase的底层为可扩展的分布式架构,在同一套数据库引擎中支持HTAP混合负载,支持SQL和Paxos高可用性,在众多分布式数据库中脱颖而出。如图4所示。
图4 第三代分布式数据库
3 分布式数据库国内外发展现状
3.1 在技术方面
数据分片、分布式事务处理和数据同步都是分布式数据库的核心技术。数据分片技术是实现可扩展性和高可用性的核心技术。随着数据量的增加,数据分片技术也在不断发展,如基于哈希算法的分片、基于范围的分片等;分布式事务处理技术的发展对保证事务的一致性和隔离性十分重要,常用的分布式事务处理技术[2]包括两阶段提交、三阶段提交、Paxos算法等.数据同步技术是保证数据一致性和完整性的关键技术,常用的数据同步技术包括主从复制、主主复制、基于日志的同步等。
3.2 在市场方面
随着社会科学技术的快速发展,分布式数据库系统的市场需求和市场竞争都在日益增加。据统计数据显示,2018年分布式数据库系统市场规模仅为92亿美元,到2022年已达161亿美元,年复合增长率达14.1%。市场需求的增长吸引了国内外众多企业开始参与到分布式数据库系统市场的竞争中,如阿里云、华为云等。另外,开源分布式数据库系统也在不断涌现,如Hadoop、MongoDB等,其以开源和灵活性高等特点受到广大企业和开发者的关注并被采用。
3.3 在应用方面
分布式数据库系统在云计算、大数据、物联网等领域得到了广泛应用。分布式数据库系统的高可用性、高扩展性和高性能性可满足企业在云环境下的数据存储和处理需求。云计算领域主要应用的分布式数据库系统包括阿里云的AnalyticDB、亚马逊的Aurora等。在大数据环境下,庞大的数据量需要分布式存储和处理,该应用环境中的主要分布式数据库系统包括Apache HBase、Apache Cassandra等。物联网中,设备和传感器产生数据量巨大,需要实时分析和处理,分布式数据库系统可满足其需求,应用的主要分布式数据库系统包括InfluxDB、OpenTSDB等。
4 分布式数据库发展面临的问题
本节主要讨论针对CAP理论的应用系统合理选择问题、遗留系统迁移改造问题以及产品成熟度不足[3]的问题。
4.1 应用系统合理选择问题
CA P理论是一个经典的分布式系统理论。已知一个分布式系统不可能同时满足一致性(C:Consistency)、可用性(A:Availability)和分区容错性(P:Partition tolerance)这三个基本需求,最多只能同时满足其中的两个。而在现实的分布式系统中,不可靠的网络和宕机概率是一定存在的,因此分区容错性是必选项而不是可选项,这样用户就需要在一致性和可用性之间进行取舍,这是困扰众多开发人员的问题。在实际场景中,各企业结合自身不同的业务需求,做出的最终抉择有所不同,但是做好一致性和可用性之间平衡是所有企业的共同诉求。如图5所示。
图5 CAP理论[4]
4.2 遗留系统迁移改造问题
分布式数据库与集中式数据库工作机制的不同使得两者的功能性也存在着一定差异,比如存储过程、视图、外键约束等功能,虽然分布式数据库也具备上述功能,但执行效率会比集中式数据库低,这样使得上层业务迁移改造时需特别注意数据模型和实现逻辑。另外,还要考虑硬件开销成本,分区计,充分利用分布式数据库的高并发性和水平扩展特性[4]。
4.3 产品成熟度不足问题
分布式数据库作为新兴的数据库技术,自身发展还处于初期,存在着技术体系、产品推广和标准规范不成熟的情况。而传统集中式数据库经过几十年的发展,已具备较为完善成熟的产品,甚至不断衍生出许多特殊用法,这导致在迁移过程中会出现较大的困难,阻碍了分布式数据库大面积推广使用。
5 分布式数据库发展前景与展望
(1)大规模数据处理:随着互联网和物联网等新技术不断革新,数据量将会持续呈现爆炸式增长。分布式数据库依靠其良好的可扩展性和高性能的特点,能够满足大规模数据处理的需求,未来将会越来越受到关注。
(2)数据智能化:未来分布式数据库将会越来越智能化,利用机器学习和人工智能等技术对海量数据进行分析和挖掘,从而为企业提供更加有价值的业务洞察和预测结果。
(3)区块链技术:区块链技术将会成为未来分布式数据库的重要发展方向之一。区块链技术依靠其去中心化、不可篡改、安全等特点,能够为企业提供更加可信的数据存储和访问方式,因此将会成为分布式数据库发展的重要趋势[5]。
(4)云原生数据库:云原生数据库[6]将会成为未来分布式数据库的趋势。云原生数据库采用微服务、容器化、自动化管理等技术,实现了高可用性、高可伸缩性和高安全性,能够帮助企业更加高效地管理和维护数据。
总的来说,分布式数据库未来的发展前景非常广阔,同时也需要我们密切关注技术的发展趋势,不断学习新的技术和知识,从而为企业提供更加优质的服务。■