写点什么

一文详解华夏银行数据库变迁之路

  • 2023-07-12
    北京
  • 本文字数:4135 字

    阅读完需:约 14 分钟

一文详解华夏银行数据库变迁之路

随着科技的飞速发展,银行业和金融科技都面临着巨大的挑战和机遇。在这个数字化时代,消费者对银行业和金融科技的服务提出了更高的要求,要求更便捷、更高效、更安全的金融服务。


金融科技公司凭借其先进的科技技术和灵活的创新模式,在支付、借贷、投资等领域不断拓展市场份额,给传统银行业带来了巨大的压力。但同时,银行业也从金融科技中看到了巨大的机遇。银行业可以利用金融科技的技术和模式,提升服务效率,优化客户体验,扩大市场份额,实现业务的数字化和智能化


华夏银行就是这场数智化浪潮中紧跟时代的先行者。经过几年的自研数据库迁移与改造,目前华夏银行已经完成了 40%以上的老旧数据库系统替换,实现了由管理类业务系统成熟的应用,逐步向核心系统的试点推进。那么,是什么样的契机推动了华夏银行对数据库系统进行改造?在对数据库进行调研、测试、选型与推广方面都做了哪些工作?针对自研数据库的建设上华夏银行又有哪些经验值得分享?在此次 2023 可信数据库发展大会上,InfoQ 有幸采访到了华夏银行数据库专家王辉,听他来聊一聊华夏银行的数据库迁移改造技术实践。

为什么要改造数据库系统?


InfoQ:很高兴采访到您,您能简单介绍下自己吗?包括之前的一些工作经历?


王辉:你好,非常荣幸能够接受 InfoQ 的专访,我叫王辉,来自华夏银行信息科技部基础技术研究室,主要负责国产分布式数据库的调研、测试、选型与推广相关工作,之前主要从事Oracle、MySQL 等商用数据库的开发与运维相关工作。


InfoQ:以您的视角来看,近些年来银行业经历了哪些变革?是什么需求促进了华夏银行数据库系统的改造?


王辉:数据库在银行主要经历了以商用为主的集中式,逐步向开源和分布式试点,最终采用国产分布式为主的转变,主要需求来自于业务驱动、技术驱动两方面,业务驱动主要是由于随着数字化时代的来临,数据呈现爆发式增长,数据的存储和访问都面临重大的挑战,传统数据库架构受限于单机资源瓶颈,不具备水平扩展能力,使其海量数据的处理能力较弱,难以满足新业务场景需求。技术驱动主体现在实现金融科技创新对核心技术实现自主掌控的要求,同时进行深入研究和场景适配的攻关,推进金融业信息化核心技术安全可控标准建设的目标。


InfoQ:在数据库替换之前,华夏银行的 IT 架构和采用的数据库是什么,在业务中老旧的架构和数据库遇到了怎样的问题?


王辉:IT 架构主要以商用的 IOE 集中式架构为主,数据库在 TP 场景绝大部分采用的 Oracle,AP 场景以 TD、Oracle 一体机为主。主要存在集中式架构扩展能力差,成本较高,数据库高可用切换能力弱,同城数据复制存在数据丢失风险等问题。


InfoQ:华夏银行的数据库替换是由管理类业务系统成熟的应用,逐步向核心系统的试点,这两种系统在对数据库的要求上有什么区别吗?


王辉:在容灾级别、高可用、高性能、高扩展能力等方面要求不同。核心系统容灾级别为最高级别,需满足生产、同城、灾备三数据中心机房,同城 RPO=0,RTO<1 分钟,数据强一致、零丢失,又要具备自动高可用切换能力,高并发访问性能,数据库响应时间延迟低,及更灵活的弹性扩展能力等要求,对保障业务的连续性与稳定性能力也要求更高。而管理类业务系统要求相对较低,大部分为内部使用,属于次重要或一般类业务系统,等保和容灾级别也要求较低。虽然不乏有金融机构直接拿核心类业务进行试点,但为了稳妥起见,大多数金融机构都以管理类业务系统试点为切入点。


InfoQ:数据库选型过程中,您和团队都考虑了哪些因素?进行了哪些前期工作?为什么最终会选择分布式?


王辉:数据库选型主要考虑产品能力、服务能力、同业案例、生态建设和公司资质等方面。前期工作主要包括:技术调研、技术交流、市场调研、产品测试、产品选型等方面。


集中式数据库基本都不具备分布式能力,无法满足高并发、大数据量的业务场景需求,而绝大部分分布式数据库都具备集中式和分布式两种部署模式,可以满足不同业务不同场景的要求。


InfoQ:采用了新架构和新的数据库后,业务上带来了哪些改善?收益是否有明显提升?


王辉:分布式的优势在于存算分离,将数据分散到多个节点进行存储与计算,从而提升数据库的整体处理能力。因此带来的改善首先体现在性能方面,具体实践中虽然对于本身业务压力就比较小的系统提升并不明显,但对于交易量大的系统提升较为明显,TP 场景下,以核心借记卡系统为例,采用分布式架构后,TPS 提升 1.5 倍。AP 场景由于其数据量大,数据节点多等特点,更能体现出分布式计算的优势,替换后提升明显,平均性能提升 1.5-2 倍,以 CRM 系统为例用户响应时间由 30s 下降到 3s,极大的提升了用户体验。其次在成本方面,对比商用小型机、企业级存储,分布式数据库只需要运行在 X86、ARM 等架构的 PC 服务器上,同时软件费用相比较商用数据库较低,相关维保费用也较低,虽然分布式部署设备较多,但总体上成本还是有所降低的。


当然,分布式其实是一把双刃剑,用好了会事半功倍,但如果前期规划设计不好,反而会造成性能下降。在使用分布式架构时我们需要进行全面的评估分析,尽量避免分布式事务,分片键设计不合理等情况的发生。另外需要指出分布式数据库的集中式部署模式能满足大部分业务需求,我行也占有较大的比重,我们完全没有必要为了分布式而分布式。

自研数据库迁移平台的建设实践


InfoQ:整个数据库改造过程共耗时多久?分为哪几个阶段?这其中遇到过哪些技术上问题?又是如何解决的?


王辉:整个数据库改造过程大概分成如下几个阶段:


• 改造评估:收集相关信息评估改造成本,评估报告编写;

• 规划设计:数据库选型、架构设计、模型设计、环境部署;

• 适配测试:业务代码与数据库语法改造,功能、非功能及高可用测试;

• 数据迁移:数据对象与数据迁移,数据一致性比对与验证;

• 服务交割:系统上线与回退策略制定及后期运维、监控与故障处置等。


耗时大概在半年左右。数据库改造过程耗时主要取决于业务复杂度、数据量大小、兼容性及运维备份要求等方面,一般情况下业务系统数据库改造的平均时间在半年左右。


在数据库改造过程中遇到的主要问题是业务开发代码与新数据库的兼容性适配,包括对象、语法、链接驱动等适配改造,另外就是商用数据库如何完整、高效的迁移到国产数据库问题,最后还涉及到上线后的运维监控与备份等问题。


我们的解决方案是自研了几个工具平台来完成这项工作。


我们搭建了开发工具平台——自建龙跃(iGO)数据库迁移平台。实现了在业务代码不修改或少量修改的情况下与新数据库的适配,同时具备数据平滑、高效的数据迁移能力解决了数据库改造过程遇到的两大难题,提升了改造效率。


还建立了统一运维平台,实现现有数据库与我行一体化监控平台的对接,并建立统一的数据库运维管理平台。此外我们还推动了平台生态建设,推动了国产备份、安全等服务厂商与国产数据库的适配认证。


InfoQ:您能介绍下华夏银行在数据库改造过程中自研了哪些平台或工具?效率是怎样的?为什么没有选择市场上现成的平台或工具而要自研呢?


王辉:主要研发了数据库迁移平台,存储过程覆盖率检测工具,SQL 审计平台,应该说为数据库的改造既降低了成本又提高了改造效率,随着平台不断地成熟与完善,原来的改造要用年来计算,现在可以实现月甚至周来计算。


因为我们非常明确数据库的改造需求,也具备有实力的开发团队。另外市场调研结果显示针对国产数据库的迁移平台并不多,也很难覆盖我行的数据库种类,虽然各数据库也有自己的迁移工具,但都各自分散不便于统一管理,而且在数据迁移过程中遇到特殊情况自己研发的平台可以快速响应,可定制开发,比较反馈给厂商效率要高很多,同时还实现了自主可控与技术创新。另外两个平台也有类似同样的思考。


InfoQ:这款自研的数据库迁移平台是如何搭起来的?它有哪些关键的部分?其中的技术难点有哪些?


王辉:2019 年我们认识到数据库的改造,迁移是重要且必须的一环,未来一定有很多的需求,因此在同年开始组建团队,讨论需求、设计与研发,那个时候国产数据库引入刚开始,数据库改造并不多,也给了我们更多的时间。那个时候市场的迁移工具并不多,且对国产数据库的支持很少。


这过程中的关键部分有两大块:数据库迁移平台架构分为 monitor 和 worker 两大组件,monitor 主要是 web 页面进行迁移任务操作和日常系统管控还有任务调度能力等。worker 主要负责主要对象语法转换、数据迁移和数据校验。


遇到的技术难点就是各种字符集差异、时区差异转换,全量数据的快速同步,增量数据断点续传,数据库快速回退技术等。

数据库改造后为业务带来了哪些价值?


InfoQ:数据库迁移改造后,要把技术价值转变为业务价值,还会存在哪些阻力?怎么解决这些问题?


王辉:技术与业务之间的沟通障碍,导致难以理解和传达技术变革对业务的实际影响。通过建立良好的技术和业务团队之间的沟通渠道,确保彼此了解对方的需求和期望。可以组织定期的会议,交流小组或培训来加强沟通和理解。


技术变革带来人才转型,员工对变革可能存在抵触情绪,在接触新技术时需要适应和调整自己的角色和技能。一般通过提供培训和支持,帮助员工适应和接受新的工作方式,建立反馈机制,鼓励和回应员工的意见和关切。对创新标兵给与奖励以鼓舞大家的热情。


数据库迁移改造后会给业务带来性能和用户体验的提升,但也会存在一定风险,因此需要我们在上线前做好全面压力测试,同时要建立上线后的快速应急处置方案。


InfoQ:那么,在未来数字经济背景下,您认为科技金融该如何更好地服务于客户?


王辉:在未来数字经济背景下,科技金融需要不断创新和改进。通过大数据、人工智能、生物识别、区块链等技术平台,实现数字化创新、数据驱动决策、信息安全保护的客户服务,面推进金融服务线上化、移动化、智能化,提升场景和生态对接能力,满足客户的多样化需求,为客户提供更便捷、高效、安全的金融服务。


InfoQ:未来,在数字化进程中,华夏银行还有哪些动作和布局?


王辉:在国家大力发展数字化经济背景下,产业数字金融是一个重要发力方向,华夏银行未来将在金融数字化促进产业升级领域有更多布局。以产业链协作体系中的商流、物流、服务流、信息流、资金流等数字信息为基础,创新运用包括大数据、区块链、5G、物联网、隐私计算等在内的数字化技术,整合各条线金融服务,为产业链各类参与主体提供综合化的产业数字金融服务。


采访嘉宾:


王辉,华夏银行数据库专家

2023-07-12 15:543655
用户头像
李冬梅 加V:busulishang4668

发布了 963 篇内容, 共 560.6 次阅读, 收获喜欢 1119 次。

关注

评论

发布
暂无评论
发现更多内容

跟公司新招的这个“同事”搭档,工作搬砖太“自动化”了

华为云开发者联盟

华为 AI RPA 自动化 员工

你遇到过哪些质量很高的 Java 面试?

张小方

Java 面试 阿里 薪资

JVM笔记 -- 来,教你类加载子系统

秦怀杂货店

Java JVM 类加载 虚拟机

EGG公链生态项目——EFTalk上的巴莱特定律

币圈那点事

区块链

朋友,你听说过跨域吗

河磨

spring CORS 跨域

【LeetCode】不同的子序列Java题解

Albert

算法 LeetCode 28天写作 3月日更

看故事学Redis:再不懂,我怀疑你是假个开发

华为云开发者联盟

MySQL 数据库 redis 缓存 数据

OpenKruise v0.8.0 核心能力解读:管理 Sidecar 容器的利器

阿里巴巴云原生

容器 微服务 云原生 k8s 应用服务中间件

第8周大作业

八达鸟

寻找被遗忘的勇气(十七)

Changing Lin

3月日更

带你走进与千万数据通信者共成长的“家园”

华为云开发者联盟

华为 开发者 网络 华为数据通信 社区

阿里P8大牛亲自讲解!2021年Android网络编程总结篇,醍醐灌顶!

欢喜学安卓

android 程序员 面试 移动开发

电商千万级交易的金手指:分布式事务管理

华为云开发者联盟

微服务 事务 华为云 分布式事务管理 DTM

多端框架开发 | 拼团商城项目开发说明

YonBuilder低代码开发平台

小程序云开发 大前端 移动终端 APP开发 多端开发

Oracle Sql性能优化

大数据技术指南

oracle 大数据 28天写作 3月日更

JDK8新特性 Fork/Join 的优化

Java小咖秀

Java java8 jdk8 forkjoin fork

有道技术沙龙 | AI 语音交互技术在语言学习场景的实践

有道技术团队

人工智能

拍乐云创始人&CEO赵加雨:深耕18载,打造全景式音视频服务

拍乐云Pano

音视频 WebRTC 在线教育 RTC 实时通信

“时间”都去哪儿了?性能调优分析方法与案例详解

京东科技开发者

数据库 客户端

怎么找属于自己最优的2B增长模型?

boshi

销售管理 SaaS 七日更

图解堆排序

Silently9527

Java 排序算法 堆排序

智慧公安二维码定位报警系统开发,微警务平台解决方案

源中瑞-龙先生

二维码定位报警系统开发 智慧公安 智慧公安扫码

电影AI修复,让重温经典有了新的可能

华为云开发者联盟

AI 电影 华为云视频 视频增强 经典

架构师训练营第十一周作业 - 命题作业

阿德儿

数据驱动业务:一张大屏掌控城市运行,效率提高95%

一只数据鲸鱼

物联网 数据可视化 智慧城市 智慧园区 智慧交通

LeetCode题解:647. 回文子串,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

一招让Kafka达到最佳吞吐量

万俊峰Kevin

kafka go-zero Go 语言

沙龙报名 | 云计算进入多元架构,云原生时代的挑战与机遇

京东科技开发者

云计算 云原生

C语言中“野指针”、“悬空指针”是什么?

不脱发的程序猿

c 指针 编程之路 bug 3月日更

阿里P8大牛亲自教你!一个三非渣本的Android校招秋招之路,满满干货指导

欢喜学安卓

android 程序员 面试 移动开发

SDK 是如何存储事件数据的?

神策技术社区

ios 大数据 存储 数据采集 神策数据

一文详解华夏银行数据库变迁之路_银行_李冬梅_InfoQ精选文章