观点 | 智能云原生分布式数据库助力金融业数字化转型
欢迎金融科技工作者积极投稿!
投稿邮箱:newmedia@fcmag.com.cn
——金融电子化
清华大学计算机系长聘教授 李国良
数据库发展背景
由于数据库数据模型和查询模型抽象好、简单易用,因此数据库60年来在各行各业(金融、政府、运营商、电力、制造等)得到了广泛成功应用。然而随着大数据、云服务、智能化时代的到来,企业关键核心业务的架构也产生了巨大的变化。首先,传统的集中式数据库已经无法满足企业面临的呈现指数级增长的海量数据带来的存储需求和挑战,需要分布式技术来解决弹性扩展大容量的问题。其次,传统线下数据库(On-premise)无法有效解决企业“波峰波谷”动态变化的需求,需要按需弹性伸缩技术来解决负载动态变化的诉求。第三,传统数据库往往通过手工进行调优,不能满足大量数据库实例自动调优和运维的需求,需要智能化的自治管理手段来解决大量数据库实例的问题。此外,传统数据库关注于增删改查等基本的数据处理操作,而不能支持智能的数据分析和决策,因此需要融合智能技术来提升数据库的智能化水平(例如实时智能风控分析)。因此需要研究智能化数据管理手段解决企业用户的关键诉求。
围绕大数据、云服务、智能化三大挑战,我们打造了智能云原生分布式数据库来解决企业核心业务面向数字化、服务化、智能化演进的核心诉求,推动国产数据库系统构建、技术突破和生态建设。
数据库发展趋势
1.从集中式到分布式的演进
从数据库发展历史来看,数据库架构遵循单机主备、集群、分布式的演进路径。
(1)单机主备数据库:早期单机数据库主要解决文件系统读写并发度不高的问题,实现了数据正确的读写(并发事务处理)、快速的读写(查询优化)和安全的读写(数据库安全)。但是单机数据库不能满足应用高可用(例如数据库单次停止服务时间不超过1分钟)和高可靠的要求,因此主备数据库(Active-Passive)应运而生。主备数据库为主数据库提供一个或者多个备数据库,备数据库通过物理复制方式实时同步主数据库的数据,当主数据库服务停止后,备数据库能够快速接管成为主数据库并提供服务。主备数据库通过备份的方式来提升高可用性,还支持一写(主)多读(备)、读写分离,提升数据库性能。
(2)集群数据库:主备数据库的主备切换时间较长,不能满足金融级的高可用性(例如业务恢复时间RTO<10秒)和高可靠性(99.99%)要求,集群数据库通过Active-Active方式来解决这一问题。集群数据库有多个主机,同时提供读写能力,当一个主机停止服务时,其他主机仍能够提供服务。但是集群数据库很难解决数据的可扩展性。首先,某个节点访问其他节点的数据时,为了保证缓存一致性,需要节点间同步缓存来防止缓存数据的冲突。当节点较多时,其复杂度是平方级的,而且传输数据量较大;其次集中式数据存储也较难扩展。
(3)分布式数据库:随着移动互联网时代的到来,智能设备越来越多(智能手机、智能手表、平板),因此读写数据的频次和并发度越来越高(例如传统银行转账都需要到银行网点,网点数量是万级的;但现在智能设备可以方便转账,而移动支付则是亿级的),因此数据库对扩展性的要求越来越高,传统的单机和集群数据库不能满足海量并发处理的需求。目前有两种方案来解决数据库的可扩展问题,一种是分库分表+中间件,它将数据划分到不同的节点,然后再通过中间件聚合。但是这种方案复杂度高、偏定制化、可复制性差,不能保证数据实时一致性要求,而且支持复杂的跨节点查询处理速度慢;另外一种是(原生)分布式数据库。分布式数据库采用Shared-nothing架构,通过数据分片的方式,每个节点来管理一个数据分片,通过增加分片来支撑数据的增长,不仅可以提升数据库的可扩展性,而且能够为客户带来更多业务价值。分布式数据库的优点是将复杂的分布式事务处理(Global Transaction Manager,GTM)和分布式查询优化(Optimizer)交给数据库,保证数据的强一致性、查询高效性和高扩展性。
2.从线下部署到云原生的演进
云基础设施的虚拟化、高可用、高弹性等特点,为数据库提供了开箱即用、可靠可用、按需计费等优势,云数据库得到了学术界和工业界的广泛关注。目前云数据库包含数据库云服务和云原生数据库两大类。数据库云服务(Database as a service)主要是将传统数据库部署到云基础设施上(虚拟机),实现轻松部署、开箱即用、自动运维(备份恢复、软件升级、扩容、高可用部署、安全管理等由云服务商提供)。其优势就是用户不用关心数据库的安装和维护,并且可以动态扩容,按需付费。然而,此类数据库云服务主要采用云托管的形式,即云服务商将数据库看作一种部署到云平台的普通软件,但没有面向云平台对数据库底层存储与处理机制作相应的优化。而云原生数据库(Cloud-native database)则是为云架构而原生设计的数据库,云原生数据库一个重要的特点是计算与存储的分离架构,即计算节点与存储节点的解耦合分离,计算层与存储层之间连接一个高速网络用于数据传输。该架构实现了独立的计算节点弹性伸缩和存储节点弹性扩容,进而提升了数据库性价比。基于计算存储分离架构,利用计算节点的内存做本地缓存,并采取日志即数据技术,旨在解决事务处理时的放大问题。传统的数据库不仅写日志(redolog、undolog)还写数据以及数据的备份文件,这导致了写放大问题。日志即数据技术将日志看作为主要数据源存放在共享存储层,计算节点只写日志(redolog)到存储层,不刷脏页;存储层异步地回放页面数据用于计算节点读取访问最新数据。另外,由于redo日志一直在存储层异步地被回放最新数据,以ARIES算法为主的恢复过程不再需要特定的redo过程,因此日志即数据技术也同时简化了数据库的恢复过程。当前云原生数据库的架构主要可分为三类:一是计算—存储分离,二是计算—日志—存储分离,与第三类计算—缓存—存储分离。第一类系统采取经典的两层分离架构,其计算层的节点不做数据持久化(不写脏页与建立检查点),只写redo日志,然后redo日志的持久化与数据同步操作全部卸载到存储层处理。第二类系统同样采取两层分离架构,但其在存储层进一步将管理日志的节点从存储节点中分离,优化了写入路径。其日志节点记录事务产生的数据变化,而存储节点则保留最新页面数据,服务于读写操作。第三类系统采取三层的分离架构,其在计算层和存储层之间增加了基于高速网络技术(如RDMA)的共享缓存层,实现计算节点之间的缓存共享机制,因此计算节点可快速地从共享缓存里读取最新页面。
云化数据库架构通过计算存储分离来解耦计算节点和存储节点,从而实现计算节点的弹性伸缩、秒级拉起,以及存储节点的在线扩缩容,解决用户可以按需付费、峰值数据处理无感知问题。云化架构还具有版本统一、易于统一运维和远程运维等优势,因此近年来得到了迅速发展。
此外单机数据库、主备数据库、集群数据库、分布式数据库与云数据库是正交的,即前四类数据库都可以进行云化架构升级,一方面可以提高数据库的高可用性(计算和存储解耦,计算节点无状态),另外一方面可以提升性价比(计算节点和存储节点独立伸缩)。但是目前的云数据库还仅仅是单机数据库和主备数据库的云化,仅支持单点写能力,不支持多点并发写,因此不能解决大数据量的并发写问题,而且计算节点扩展性也有一定瓶颈。
3.从传统数据库到智能化演化
由于数据的规模越来越大,数据库实例数目越来越多(特别是云上有数十万上百万的实例),传统的基于数据库管理员(DBA)的设计和优化方式难以解决数据库调优、运维、诊断与恢复的问题,因此亟待利用智能化手段实现数据库的自调优、自运维、自管理、自诊断、自恢复。
(1)数据库内核自优化。很多数据库的优化问题都是NP难题,例如执行计划选择,需要智能优化技术来快速选择最优计划。还有一些问题是复杂的回归问题,例如查询基数和代价的估计,需要机器学习技术来更加准确高效的估计结果。因此需要设计智能化的数据库内核来实现复杂场景下的高效优化。
(2)数据库运维。数据库为了适应不同场景,往往需要根据场景进行调优,例如参数的选择、索引的建议、视图的推荐、分部件的选择、问题诊断和根因分析,需要智能化调优手段来实现智能的数据库运维。
(3)数据库内置机器学习。目前很多业务需要机器学习技术进行推理和决策,例如实时风控,传统方法都是将数据导出到大数据平台再进行决策分析,这往往导致数据不一致、分析延后、数据不安全等问题,因此需要数据库内置支持机器学习的训练和推理,实现实时的智能分析。
GaussDB架构设计
为了提升解决大数据时代的数据库高扩展、高可用、高性能、弹性伸缩、智能化需求,清华和华为共同打造了智能云原生分布式数据库GaussDB。首先,将数据存储在不同的物理节点上,通过网络连接到一起,在逻辑上是一个统一的、整体的数据库,并提供了计算存储分离的云化能力,具备存储快速扩缩容、计算弹性伸缩的能力。通过分布式数据库的数据分片来解决高可扩展问题,通过计算存储分离和云化技术来解决弹性伸缩问题,通过计算节点状态解耦、多副本、两地三中心、双集群容灾、高精度时钟等技术解决高可用问题,智能自学习技术解决数据库智能优化问题。
图 GaussDB:云原生分布式数据库
1.架构设计
(1)分布式查询优化和事务处理技术。突破分布式全并行优化、全链路编译执行技术、轻量级分布式事务处理技术来优化分布式数据库性能。
(2)分布式数据库的高可用容灾技术。设计了多副本高可用、两地三中心、跨region容灾、双集群高可用、细粒度并行解码与回放技术,全方位提升数据库的高可用能力。
(3)分布式数据库的云原生计算存储分离和弹性伸缩技术。首创分布式云原生计算存储分离技术,设计基于共享存储及RDMA高速网络实现多写多读,践行日志即数据理念,实现数据页面的按需并行回放,提供跨分片事务的强一致。
(4)分布式数据库的智能管理技术。构建了端到端基于AI的智能自治优化技术,突破了自动学习AI智能优化内核、库内原生AI训练与推理引擎及AI自治运维系统,提升了数据库智能化管理水平。
(5)分布式数据库的全方位安全引擎。构筑了全栈国密算法体系,设计并实现了细粒度权限管理、统一审计、访问控制、透明加密及动态数据脱敏等技术,保护用户权限、操作和数据的安全,打造了全密态处理技术(存储、计算、传输)和防篡改技术,保证数据的安全和隐私。GaussDB是国内首个通过国际最高等级安全认证CCEAL4+的数据库系统。
2.GaussDB优势
(1)高扩展。通过share-nothing架构和数据分片技术来解决数据高可扩展问题,并提供多读多写能力和实时一致性能力,解决企业级超高并发读写问题;通过计算存储分离来解决计算弹性伸缩、存储弹性扩缩容问题。因此云分布式数据库可以将传统的分布式数据库十节点级扩展到千节点级。
(2)高性能。通过分布式并行读写技术、分布式共享内存技术、分布式事务技术来解决分布式并发处理问题,通过分布式查询引擎和查询优化技术(特别是通过核心间并行、节点间并行)来实现超高并行计算处理,解决分布式高性能计算问题。
(3)高可用。通过多副本和物理复制技术解决单分片数据的高可用问题(并且可以提供独立的分片间高可用能力,做到数据分片间高可用无影响);通过并行逻辑复制技术来解决两地三中心高可用问题;通过高精度时钟技术来解决全球异地多活问题。
(4)高智能。通过自治数据库技术、智能优化与运维技术降低DBA的依赖,降低数据库的使用和维护门槛,通过智能优化内核来提升数据库的智能水平。
(5)高安全。实现数据的密态存储、计算、传输,全生命周期保证数据安全隐私,解决企业上云的顾虑;实现数据防篡改和审计追踪,解除数据被窃取和篡改的风险。
GaussDB广泛应用于金融、政企、运营商、能源、电力、制造、交通、水利等十大国计民生重点行业。在对数据库要求最为苛刻的金融行业,6大国有商业银行中的4家银行,以及多家股份制银行和保险证券机构,已经选择了GaussDB作为数字化转型的坚实数据底座;在政企,陕西财政、陕西国家电网、深圳海关、北京首发集团、中国石油、中国海油、国家管网等都已采购上线,并应用于行业核心系统。与此同时,GaussDB单机主备开源内核openGauss,全球下载量已经超过了100万,覆盖了全球90多个国家、700多个城市,汇聚了3500+开发者和160多个企业合作伙伴,为国家数字化转型做出了重要贡献,为解决数据库“卡脖子”问题走出了一大步。
数据库未来趋势
1.加强数据库生态建设
数据库是一个承上启下的基础软件,向下发挥硬件算力,向上支撑各类应用。因此数据库需要向下支持不同的硬件(例如X86、ARM)和操作系统,向上支持不同的应用软件,需要应用软件的适配和工具的对接,牵扯到数据库的接口、系统视图、开发者和运维。数据库的普及需要构筑自己的生态,特别是用户更方便地使用数据库,开发者更容易开发应用,DBA更好地管理运维、调优数据库。建设好一款数据库,需要构筑相应生态,包括应用软件的兼容性、迁移工具、行业需求的支持、DBA培养、开发者培养等。
2.加快数据库人才培养
培养一批基础软件领域的兴业之才和学术大师。首先,打破国内“重应用、轻基础”的不良局面,引导国内高校“基础软硬件”等硬核培养能力,打造一批数据库精品课。其次,加大数据库人才培养力度,在一批高校试点专门培养基础软件人才,培养一批从事数据库研发的内核人才。第三,有效推动数据库领域人才建设、标准与评测制定、生态构建、开源数据库建设。第四,推动数据库创新发展,设立一批推动基础软件创新发展的研究计划,切实推动国内高校老师在数据库系统领域辛勤耕耘、大胆创新,打造数据库核心竞争力和培育新型数据库发展。
3.夯实数据库核心技术
数据库涉及存储引擎、优化器、执行器、分布式处理等技术,还有一些技术亟待突破。(1)分布式一致性协议(例如2PC、3PC)性能难以满足核心金融领域低时延的诉求,需要突破分布式事务理论和技术来提升分布式事务处理的性能,通过RDMA实现分布式共享内存技术来解决低时延问题。(2)优化器是数据库的引擎,被称为数据库的“大脑”,优化器产生的执行计划的优劣直接决定数据库的性能。传统基于规则的优化器和基于代价的优化器不能满足分布式计划的生成,因此需要研究智能化的优化器来解决分布式下智能代价估计问题、智能计划选择问题。(3)数据库需要充分发挥软硬件优势,通过软硬结合来进一步提升数据库的性能和可靠性。首先,未来单机将突破数百核甚至千核,核间竞争为数据库并发事务处理带来严重挑战,需要解决百核甚至千核的数据库并发冲突问题;其次,NVM等新型存储硬件带来了非易失、低时延、随机字节访问等优势,为提升数据库的性能和可靠性带来了重大机会;第三,未来分布式将达到数百上千节点,需要解决分布式并发事务问题,可以通过RDMA远程读写和网络卸载技术来提升分布式性能。
4.培育新型数据库系统和技术
数据库技术一直在发展,我们不能停留在当代技术的补齐,而是要在打捞基本能力的同时推动数据库技术的创新和发展,通过创新来给数据库用户带来更好的价值。(1)极致弹性的数据库系统,突破事务级、查询级的弹性调度,实现让用户类似于按需收费的用水用电一样使用数据库。(2)端边云协同数据库,综合考虑端侧能耗、端边云之间带宽、应用响应时延需求、端侧边侧计算资源配置,设计端边云协同的数据管理,解决端边云协同数据分析的where-when-what问题,即数据应该存在哪一侧、什么时机传输和分析数据、采用什么数据模型和分析手段?与传统数据库基于代价的分析不同,端边云协同数据库需要考虑能耗、带宽、时延等多个因素,设计新的代价优化模型、新的数据存储模型、协同查询优化机理来实现端边云协同数据处理。(3)数据隐私计算系统,数据安全和隐私已经影响到了国家安全和社会安全,未来要持续突破数据的隐私保护技术、密态计算技术及多方安全计算技术,实现数据的“可用不可见”,保证个人、社会和国家的全方位安全。
(栏目编辑: 马俊)
往期精选:
(点击查看精彩内容)
● 观点 | 浅析疫情以来县域信贷政策传导效果及建议——以新宾县为例
新媒体中心:主任 / 邝源 编辑 / 傅甜甜 张珺 邰思琪