openGauss金融应用关键能力研究 北京金融科技产业联盟2024年6月 版权声明 本报告版权属于北京金融科技产业联盟,并受法律保护。转载、编摘或利用其他方式使用本白皮书文字或观点的,应注明来源。违反上述声明者,将被追究相关法律责任。 编制委员会 主任 聂丽琴 编委会成员 黄本涛李斌林毅贤 编写组成员 阮桂亮娄贺展黄凯耀赵蒙高海涛刘杨箐何佳佳杨艳明贺承汉熊小军周斌窦欣张益李凯王薇李雨晴朱宏军叶晓光薛兴荣何振岩 统稿 张蕾 参编单位: 北京金融科技产业联盟兴业银行股份有限公司 中国邮政储蓄银行股份有限公司华为技术有限公司 天津南大通用数据技术股份有限公司超聚变数字技术有限公司 目录 一、发展情况及现状1 (一)研究背景1 (二)金融行业数据库应用情况1 (三)数据库金融应用关键要求2 (四)openGauss技术特点3 二、安全研究4 (一)安全架构5 (二)全栈国密5 (三)全密态数据库7 三、多模多态分布式研究9 (一)多存储模式9 (二)多部署形态10 (三)关键能力14 四、内核可观测研究23 (一)观测维度24 (二)观测接口25 五、AI能力研究28 (一)AI4DB:智能运维能力28 (二)DB4AI:数据库原生AI计算31 六、异构数据库工具研究34 (一)语法兼容34 (二)数据迁移35 七、典型案例(邮储银行核心系统)38 八、总结与展望40 一、发展情况及现状 (一)研究背景 数字基础设施键核心技术的深化应用,推动了我国数据库产业的进一步发展,数据库产品不断涌现,开源软件生态建设也日趋完善。openGauss是一种基于开源技术的关系型数据库管理系统,它采用开源模式,支持大数据处理,具有较为完善的安全机制,并与Oracle数据库语法兼容。研究其关键能力,对金融行业已有的应用和数据迁移具有一定价值。截至2023年11月底,openGauss社区理事会包含了华为、超聚变、交通银行、邮储银行、招商银行、民生银行、兴业银行等多家技术和金融领域头部企业,在技术资源、技术氛围和场景多样等方面具备一定优势。本报告对照金融行业数据库需求对openGauss进行关键能力的分析,为金融业务创新中使用该技术提供支撑。 (二)金融行业数据库应用情况 集中式数据库在我国金融行业的使用时间很久,得到了广泛的应用。整体来说集中式数据库的应用比例高达89%,其中银行业应用比例接近80%,证券和保险行业的比例超过了90%。分布式数据库近年来在我国金融业不同领域也已逐步开展应用,现已涵盖不同类型的业务系统,总体占比达到7%,其中银行业超过了17%,证券业和保险业分别为3.74%和 1.92%。 2023年,国内金融行业数据库加速发展,金融信息化研究所发布的《金融业数据库供应链安全发展报告(2022)》指 出,超过40%的金融机构在办公和一般系统中使用了国内数据库产品,银行业、证券业和保险业核心系统的应用进展如图1所示。 60.00% 52.94% 49.02% 50.00% 40.00% 30.00% 25%25% 27.27%27.27% 20.00% 15.69% 17.86% 18.18% 10.00% 0.00% 银行业 证券业 保险业 办公系统一般系统核心系统 图1不同领域金融机构使用国内数据库产品示意图 openGauss系数据库目前在金融行业有较多的实用案例。邮政储蓄银行通过鲲鹏、自主创新操作系统、openGauss打造的IT基础设施,支持邮政储蓄银行全国6.5亿用户,日均20亿的交易,全天联机平均耗时降低30%,系统负载峰值TPS提升319%。兴业银行基于openGauss开源数据库,对现有业务进行优化,已在报表系统、支付系统等系统投产使用,共计应用超过30套系统。四川银行构建的新一代反洗钱系 统,单个处理任务涉及6条上亿级大表的多表关联查询,运 行耗时从单次12个小时降低至1-1.5小时。另外,openGauss在保险行业和证券行业,如中华保险、上海期货交易所等企业单位,都得到了应用。 (三)数据库金融应用关键要求 数字化的浪潮给金融行业带来了业务创新,也使金融行业数据库面临着新挑战与新需求。 安全要求。金融行业的数据库在数字化时代面临着愈加 严峻的数据安全挑战。金融行业是数据密集型、高安全标准和强监管的行业,数字化时代新技术的发展,也使数据库面临新的威胁手段,需要采用更加先进的技术手段保障数据安全。 高性能、高可用、可扩展与高稳定要求。金融行业传统 中心化数据库架构在高频处理海量数据时面临着时延较高、扩展性能不足、一致性无法保证等问题。同时,金融行业核心业务涉及大量资金流动、客户信息、交易数据等敏感信息,高业务连续性以及数据监管合规要求也必须充分保证。此外,7*24小时服务不间断也对金融数据库提出高稳定性要求。 易运维要求。金融行业数据库需具备业务线上化、便捷 化的能力,支持在线变更,包括在线DDL变更、在线配置变更、在线数据变更、在线扩容与缩容,以及在线版本升级等,同时也需降低服务运维复杂度并提供问题诊断。 智能化要求。金融应用需要处理海量的结构化和非结构 化数据,涉及复杂的计算和分析。金融行业数据库对利用AI技术实现数据库的自动优化、自动索引,提高数据处理效率和质量,降低运维成本和风险等有强烈需求。 (四)openGauss技术特点 openGauss总体技术架构,如图2所示: 图2:openGauss总体技术架构 openGauss金融版本在安全、高可靠、性能优化、智能运维方面具备如下能力: 安全:提供全密态计算、国密算法认证和加密、动态数据脱敏。 可靠:日志并行回放实现RTO<10s,Paxos架构,两地三中心流式容灾。 性能优化:Numa-Aware改造,指令集优化,对应鲲鹏系列tpmc进行了调优。 智能化:数据库管理系统(AI4DB)提供智能索引推荐、慢SQL诊断等,数据库内机器学习(DB4AI)支持主流机器学习场景 资源池化:存储池化、内存池化和计算池化三层池化架构,支持应用横向扩展 二、安全研究 本章根据金融行业数据库数据安全要求,从数据安全架 构、全栈国密、全密态数据三方面展开openGauss研究。 (一)安全架构 金融领域数据库的核心任务是帮助用户安全的存储和管理数据,保证复杂环境下数据不丢失、隐私不泄露、数据不被篡改以及服务不中断。openGauss数据库在安全审计、用户数据保护、用户识别和认证、安全管理、TSF自保护、TOE访问功能满足CCEAL4+安全认证的要求,其安全架构的主要模块和采用的技术包括: 安全感知框架:包括数据库防火墙的入侵防御、基于AI 的攻击识别及智能防御。 安全认证:数据库服务端的强认证机制。 访问控制:具备权限管理模型、对象访问控制及校验机 制。 数据脱敏与加密:对关键数据采用数据加密存储机制或数据静态脱敏及动态脱敏机制保护。 数据防篡改:采用多副本备份和区块链技术对数据进行一致性保护。 数据库审计:通过系统内部细粒度审计机制,记录用户操作行为。 第三方安全测试:引入第三方安全测试和认证,加速完善数据库安全能力的构建。 (二)全栈国密 《中华人民共和国密码法》要求关键信息基础设施应当使用商用密码进行保护,并开展商用密码应用安全性评估 (密评)。中国人民银行发布《金融行业信息系统商用密码应用基本要求》及配套测评规范,推动相关测评机构开展金融信息系统密评工作。openGauss已通过国密局数据库国密认证,全栈国密如图3所示: 图3openGauss全栈国密 openGauss支持使用国密算法SM3进行用户登录认证,支持使用国密算法SM4进行数据加密。在鲲鹏920上,通过使用内置的KAE引擎实现SM4加密算法加速4.6x、SM3哈希算法加速12.6x,如图4所示。 openGauss支持国密TLCP协议,增加支持的国密加密套件,包括ECDHE-SM4-SM3、ECDHE-SM4-GCM-SM3、ECC-SM4-SM3、ECC-SM4-GCM-SM3。其中,TLCP是指符合《GB/T386362020 信息安全技术传输层密码协议(TLCP)》的安全通信协议,其特点是采用加密证书/私钥和签名证书/私钥相分离的方 6 式。 图4鲲鹏920KAE加速引擎 (三)全密态数据库 密态数据库是专门处理密文数据的数据库系统,数据以加密形态存储在数据库服务器中,数据库支持对密文数据的检索与计算,而与查询任务相关的词法解析、语法解析、执行计划生成、事务ACID、数据存储都继承原有数据库能力。 在密态数据库机制下,业务数据流图如下图5所示。假定数据列c1已以密文形态存放在数据库服务端,用户发起查询任务指令。用户发起的查询任务无需进行特殊化改造,对于查询中涉及的与敏感数据c1相关联的参数,在客户端按照与数据相同的加密策略(加密算法,加密密钥等)完成加密,如图5中关联参数“123”被加密成“0xfe31da05”。参数加密完成后整个查询任务被变更成一个加密的查询任务并通过安全传输通道发到数据库服务端,由数据库服务端完成基于密文的查询检索。检索得到的结果仍然为密文,并最 终返回客户端进行解密。 图5密态数据库核心业务数据流 密态数据库的核心思想是:由用户持有数据加解密密钥且数据加解密过程仅在客户侧完成,数据以密文形态存在于数据库服务侧的整个生命周期过程中,并在数据库服务端完成查询运算。openGauss全密态数据库支持密码学软件模式和基于TEE(TrustedExecutionEnvironment)的硬件模式。 在硬件模式下,openGauss支持鲲鹏ARMTrustZone较高级别隔离,并且通过多层密钥管理体系、可信传输通道、会话级密钥管理机制等密钥安全保障机制实现硬件环境中的数据及密钥安全,降低因硬件安全问题而导致的用户数据及密钥泄露风险。 在软件模式下,openGauss支持密态查询,通过密态查询引擎,实现数据等值查询、范围查询、保序查询、表达式计算等。并通过引入确定性加密机制,实现数据的增删改查、表字段关联、等值检索等操作。基于GS-OPE算法的密文索引技术,实现数据密态保序查询、表达式大小比较等。通过 Range-Identify算法,实现数据密态范围查询。 三、多模多态分布式研究 本章针对金融行业数据库高性能、高可用、可扩展与高稳定需求,研究了openGauss的分存储模式、部署形态、分布式能力。 (一)多存储模式 openGauss系统支持以下三种存储引擎:行存储引擎、列存储引擎、MOT内存引擎。 1.行存引擎 行存储引擎的特点是支持高并发读写,时延小,适合OLTP交易类业务场景。openGauss行存储引擎采用原位更新(in-placeupdate)设计,支持MVCC(Multi-VersionConcurrencyControl,多版本并发控制),同时支持本地存储和存算分离的部署方式,支持存储层异步回放日志等。 行存储引擎Ustore将最新版本的“有效数据”和历史版本的“垃圾数据”分离存储。将最新版本的“有效数据”存储在数据页面上,并单独开辟一段UNDO空间,用于统一管理历史版本的“垃圾数据”,因此数据空间不会由于频繁更新而膨胀,“垃圾数据”集中回收效率更高。 2.列存引擎 传统行存储数据压缩率低,必须按行读取,即使读取一列也必须读取整行。在数据库遇到针对大量表的复杂查询,而这种复杂查询中仅涉及一个较宽(表列数较多)的表中个别列时,行存储以行作为操作单位,会引入与业务目标数据 无关的数据列的读取与缓存,造成了大量IO的浪费,性能较差。因此openGauss提供了列存储引擎的相关功能。创建表的时候,可以指定行存储还是列存储。 openGauss行列混合存储是指将表按行存储到硬盘分区上,列存储是指将表按列存储到硬盘分区上。行、列存储模型各有优劣,建议根据实际情况选择。其通常用于OLTP(联机事务处理)场景的数据库,默认使用行存储,仅对执行复杂