【摘要】因采用的存储架构和技术不同,数据库产品均面临着类似如负载均衡、数据同步、数据恢复等问题和难点。本文将从金融行业出发,通过聚焦信创数据库主流产品的存储架构,探讨信创国产数据库的本地存储和集中式存储在产品设计上的异同分析、难点分析、面临挑战及当前解决方案。
【作者】杨磊,中信建投证券数据库架构师
一、引言
金融行业作为一个高度信息化的领域,业务场景需要处理大量交易数据和用户数据,需要高效、安全、可靠、自主的数据库技术支持。
本文将从金融行业出发,通过聚焦信创数据库主流产品的存储架构,探讨信创国产数据库的本地存储和集中式存储在产品设计上的异同分析、难点分析、面临挑战及当前解决方案,最后将对数据库自主可控方向做一些探述。
二、本地存储和集中式存储特点
在存储架构层面,数据库产品存储架构主要分为本地存储和集中式存储两种方式。本地存储是将数据存储在本地计算机上,而集中式存储则是将数据存储在远程服务器上。
本地存储的优势在于,数据存储和处理速度快,不依赖网络,对于一些需要快速响应的应用场景非常适合。集中式存储的优势在于,数据共享和管理更加方便,能够满足多用户同时访问和管理的需求。此外,集中式存储可以通过高可用和负载均衡等技术来提高数据的可靠性和可用性。
目前,各类信创数据库主流产品的存储架构分类可以分为本地存储和集中式存储两种。从数据库产品研发侧先汇述下两种存储的架构特点、设计难点和实现重点,通常如下:
1.本地存储
特点:具有快速响应、高性能、低延迟等优势,数据访问速度快,能够实现实时数据交互和查询,数据存储量受本地计算机的硬件限制。设计难点和实现重点:
1) 数据安全性和可靠性。本地存储需要保证数据的安全性和可靠性,防止数据丢失或被篡改。此外,需要定期备份数据,并确保数据的恢复能力。
2) 数据访问速度。本地存储需要快速响应用户的请求,保证数据访问速度。为此,需要考虑到数据存储结构、索引设计、缓存机制、优化算法等方面。
3) 数据存储量。本地存储容量受到计算机硬件的限制,需要优化数据存储和压缩策略,以充分利用存储空间。
2.集中式存储
特点:具有数据共享、高可用性、负载均衡等优势。在金融行业中,集中式存储常用于数据仓库、风险管理、交易处理等领域。
集中式存储的架构特点:
1) 数据安全性高,能够进行集中管理和控制。
2) 数据存储量大,能够存储大量的数据。
3) 数据备份和恢复容易,能够快速恢复数据。
4) 数据访问速度受网络带宽和服务器性能影响。
设计难点和实现重点:
1) 数据安全性和可靠性。需保证数据的安全性和可靠性,防止数据泄露和丢失。需要设立权限管理等措施,充分保护数据安全。
2) 数据访问速度。需要快速响应用户的请求,保证数据访问速度。需优化网络带宽、服务器性能等。采用合理的传输协议、压缩算法、加密算法来提高数据传输的速度和安全性。
3) 数据存储量。存储容量较大,也需要定期备份数据,确保数据能恢复。需优化数据存储和压缩策略,充分利用存储空间。
三、国产数据库主流产品的存储架构
下面就TiDB、OceanBase、GoldenDB、GreatDB、Vastbase、达梦、GaussDB等主流数据库在本地存储和集中式存储方面的存储架构、特点、设计难点和解决方案进行论述分析。
表1:国产数据库主流产品的存储架构比较
(*本文首发于2023年,涉及产品最新信息以厂商官网公布为准)
四、国产数据库产品在存储架构层的差异和方案
国产数据库产品在存储架构层的差异主要体现在以下方面:
1) 存储模式:本地存储、集中式存储、分布式存储等存储模式的不同,导致对数据一致性、数据访问方式差异较大。
2) 存储引擎选择:关系型数据库常采用B+Tree、LSM-Tree等索引结构,而NoSQL数据库则采用键值存储、文档存储、列存储等不同的存储模式。
3) 数据分片策略:采用不同的数据分片策略,如基于数据量、基于节点数、基于业务类型等。
4) 优化方式:存储模式的改变,会导致SQL优化、监控方式的改变。
针对上述存储层的差异性,不同信创国产数据库产品通常有如下4个方面实现方案:
1) 强化分布式系统的一致性和可用性,采用Raft或Paxos等工程级分布式协议来实现数据同步和副本管理,加强故障处理机制和动态数据负载均衡。
2) 优化存储引擎的实现,采用混合存储模式或LSM-Tree和B+Tree混合实现,加强数据压缩和索引机制,提高数据存储和检索效率。
3) 设计多种分布式事务机制和数据分片策略,实现灵活的存储模式和数据分片策略,提供优化的数据备份和恢复机制。
4) 加强系统监控和性能优化,提供可视化的监控和管理界面,优化系统调优和故障处理机制,增强监管主动性。
5) 通过共享存储架构,实现计算存储分离,软硬结合,采用算子下推及优化IO访问路径,达到高性能及弹性扩展能力。此外,随着云计算和大数据技术的发展,越来越多的数据库产品开始支持云原生架构;当前的解决思路包括采用容器化技术和微服务架构,以实现高可用性和快速部署;采用自动化运维和自愈能力等技术,以提高数据库的稳定性和可靠性。此外,还需要考虑安全性和数据隔离等问题,以保证云上数据库的数据安全性和隐私性;可使数据库更适合在云上运行。
五、两种存储架构给数据库自主可控带来哪些挑战
数据库自主可控是指数据库用户拥有对自己的数据完全的掌控权,能够自主控制数据的存储、传输和使用等各个环节,对于信息安全和数据隐私保护非常重要。在实现数据库自主可控的过程中,面临着如下主要挑战:
1) 数据安全问题:金融行业的核心数据涉及到资金、账户等重要信息,必须保证数据库的数据安全,如无法控制数据库的访问权限和安全配置,就会存在数据泄露或被篡改的风险。
2) 数据隐私问题:金融行业的用户信息涉及到个人隐私和法律法规等要求,必须保证数据库的数据隐私,如无法保证数据隐私,就会存在违法风险和用户信任度下降。
3) 数据一致性问题:金融行业的交易数据要求高度一致性,任何数据的不一致都可能导致交易失败或损失,必须保证数据库的数据一致性,如果无法保证数据一致性,就会存在交易失败或损失的风险。
针对上述挑战,采取的措施通常有:
1) 选择合适的存储方式。对安全性和可靠性要求较高的业务,建议采用集中式存储方式;对访问速度要求较高的业务,建议采用本地存储方式。
2) 优化数据库结构和索引,以提高数据的查询速度和响应时间。此外,采用缓存等技术,减少数据库的访问次数,提高访问效率。
3) 优化数据存储和压缩策略,充分利用存储空间。此外,定期备份数据,并确保数据的恢复能力。
4) 设立权限管理等措施,以充分保护数据安全。此外,建议采用加密等技术,提高数据的安全性和可靠性。
5) 强化数据库的访问权限和安全配置,采用加密、身份认证、权限控制等措施,保障数据安全和隐私。
6) 采用多副本机制和分布式事务机制,保证数据的一致性和可恢复性。
7) 加强数据库监控和管理,及时发现和处理数据异常和故障,提高系统的可用性和稳定性。
8) 采用存算分离架构,利用存储的可靠性、安全性,结合共享存储架构,提高数据库的性能及可靠性。
金融行业应用中的数据库自主可控事关保证数据的安全、隐私和一致性,需要针对业务场景和数据特点,需选择合适的数据库产品和存储架构。
六、总结
总体来说,因采用的存储架构和技术不同,数据库产品均面临着类似如负载均衡、数据同步、数据恢复等问题和难点。针对这些难点,当前较优的解决思路包括采用存算分离架构,保证数据的可靠性和扩展性;采用分布式事务和多副本备份等技术,以保证数据的一致性和可靠性;采用智能调度和负载均衡等技术,以提高节点之间的负载均衡和数据同步效率;采用缓存技术和分布式查询优化等技术,以提高存储的性能和可扩展性。
另外,随着云计算和大数据技术的发展,数据库产品开始支持云原生架构,向着高性能、高可用性和高扩展性方向发展,以满足不断增长的数据需求和业务需求。