编者按
在国产化与数字化转型浪潮下,传统数据库架构逐渐制约着银行业务的高效发展。作为重庆第一家民营银行以及中西部地区首家民营银行,重庆富民银行在这场数字化浪潮中积极探索,通过引入 TiDB 分布式数据库,成功从 MySQL 分库分表架构困境中突围,在批量场景中实现降本提效,为银行的可持续发展注入了强大动力。
本文根据重庆富民银行 DBA 刘攀在 TiDB 地区交流重庆站分享内容整理而成。
作者:刘攀|重庆富民银行 DBA
传统架构之困:使用 MySQL 面临的挑战
重庆富民银行成立于 2016 年 8 月,是经原中国银监会审批成立的中西部首家民营银行,注册资本 30 亿元,秉承“扶微助创、富民兴邦”的企业使命,富民银行以“产融新动能、生态好伙伴”为企业发展愿景,始终坚守普惠金融定位,通过构建科产融生态,积极服务实体经济发展,为培育新质生产力赋能,不断为经济社会高质量发展奉献金融力量。截至 2024 年末,富民银行资产总额 622.94 亿元,贷款总额 399.91 亿元,存款总额 395.56 亿元,自 2016 年成立以来,累计缴纳各项税收合计 21 亿元,累计服务客户数量超 5000 万户。
随着业务规模持续扩张,数据量如潮水般呈指数级激增。在此情形下,原本承载数据存储与管理重任的 MySQL 分库分表架构,在应对大规模数据存储以及高并发请求的多重挑战时,逐渐显露出诸多棘手问题。不仅性能方面遭遇严重瓶颈,数据处理效率大幅降低,而且在高可用性上也暴露出明显缺陷与短板,难以保障业务的稳定、顺畅运行。
在批量业务场景中,数据的急剧增长使得 MySQL 在处理批量任务时的性能问题非常显著,核算耗时长达 1 小时,严重影响了业务的时效性。
在数据融合与分析方面,传统 MySQL 难以满足多源数据实时汇聚与融合分析的需求。银行的业务系统产生了大量来自不同源头的数据,这些数据需要进行实时整合和分析,以支持决策制定和业务优化。在 20 + 批量场景、130 + 联机查询接口、5 + 运营管理场景的压力下,MySQL 的局限性使得数据处理链条冗长,效率低下。近两年,富民银行业务数据超十倍增长,需尽快解决读写分离、垂直拆分、水平拆分投入、性能容量如何扩展等方面的难题。此外,随着金融行业对国产化和信息安全的重视程度不断提高,富民银行也面临着国产化替代的压力。
TiDB 分布式架构破局:打造高性能金融数据底座
其实早在 TiDB 刚刚开源时,富民银行就已经开始尝试使用 TiDB。在“业务诉求不断推进”、“MySQL 性能达到天花板”、“充分了解和体验 TiDB 稳定性”等多重因素推动下,重庆富民银行开始寻求新的数据库解决方案。经过深入调研和全面评估,TiDB 分布式数据库凭借其显著优势,成为富民银行的理想之选。
- TiDB 基于分布式架构,具备强大的水平扩展能力,能够轻松应对 PB 级数据存储与高并发请求,这为富民银行解决数据量增长和性能瓶颈问题提供了可能。
- TiDB 的 HTAP(混合事务/分析处理)能力,使其能够实现交易与分析负载在同一集群内共存,通过资源隔离满足实时报表生成等分析场景的需求,有效解决多源异构数据的融合分析难题。
- 完全兼容 MySQL 协议,使得富民银行在迁移现有业务时,无需对业务代码进行大规模修改,大大降低了技术切换的风险和成本。
- 基于开源生态构建的 TiDB,拥有成熟的技术体系和活跃的社区支持,契合金融行业国产化替代的要求,能避免因依赖纯商业数据库而可能面临的技术封锁和高昂成本问题。
基于 TiDB 构筑金融级高可用与容灾体系
为满足金融行业对业务连续性、数据安全性的严苛要求,TiDB 为富民银行核心集群设计了稳健的“两地三中心”高可用与容灾架构:
- 同城主备双活:在同城两个机房分别部署完整的 TiDB 生产集群(主机房)和灾备集群(备机房)。主机房集群承载所有在线业务流量。每个集群内部,TiKV 存储层采用默认的 3 副本机制,确保节点级高可用和数据强一致性。
- 跨中心数据同步:主机房与备机房之间的数据实时同步,通过 TiCDC(TiDB Change Data Capture)工具实现,为机房级容灾切换(如主机房整体故障)提供数据基础,通过合理配置和遵循最佳实践,可以保障 RPO 趋近于零。
- 异地数据容灾:在异地机房,部署一个主机房 TiDB 集群的从库。该从库同样通过 TiCDC 从主机房接收数据变更,提供异地数据备份能力,防范地域性灾难风险。此架构通过多层次冗余,为富民银行的批量业务及其他关键系统提供了坚实的可靠性保障。
TiDB 助力金融核心场景效能提升
批量业务:从 60 分钟压缩至 20 分钟
在批量业务场景中,TiDB 带来的提升尤为显著。
以往,富民银行的批量业务依赖于多个 MySQL 库,通过前置机抽取流水,再将数据吐到后端的MySQL 库进行加工,整个过程耗时较长,在数据量为 2 T 时,处理时间长达 60 分钟。
引入 TiDB 后,借助 DM 工具以及 TiDB 的分布式架构,实现了数据的并行处理,大大缩短了批量跑批时间。在数据量增长了十几倍的情况下,处理时间依然能控制在 20 多分钟,而且随着水平扩容一台服务器,性能也呈现出线性扩展的良好态势,充分展现了 TiDB 在处理大规模数据时的高效性和强大的扩展能力。
降到 20 分钟并不是因为 TiDB 需要跑 20 分钟,而是因为当时位于上游的 MySQL 处理时间最快只能缩短到 20 分钟。TiDB 可以做到几乎和上游处理同步,这意味着 TiDB 性能远超 MySQL。
账单服务:百亿级明细查询秒级响应
在账单服务这一关键业务场景中,TiDB 展现出了不可替代的核心价值与卓越效能。账单服务作为连接客户与业务数据的重要桥梁,需高效实时汇聚来自上游多个产品数据库的庞杂数据,并以清晰、准确且直观的方式呈现给客户,从而有力支撑起交易记录查询、账户收支明细详尽展示以及支付交易流水全链路追踪等一系列核心功能。
TiDB 凭借其强大的原生分布式架构优势,拥有出色的数据整合与高效实时处理能力。能够轻松应对海量数据的汇聚与实时分析挑战,确保在复杂多变的数据环境下,依然可以为用户迅速提供精准无误的账单信息。百亿级明细查询可以毫秒级响应,极大地缩短了用户等待账单数据的时间,更从根本上提升了账单服务的整体质量与可靠性,为客户带来了更加流畅、便捷且满意的使用体验,有力地增强了客户对服务的信任与依赖。
富民银行未来规划: TiDB 全面支撑金融业务
重庆富民银行的实践充分印证了 TiDB 在支撑金融级核心业务、推进国产化转型及实现降本提效方面的重要价值。其在 TiDB 应用中积累的经验与建议,不仅为金融行业数字化布局提供了实践参考,更从生产一线为 TiDB 产品生态完善贡献了宝贵经验,推动数据库技术在金融领域的应用创新。
未来,富民银行计划进一步拓展 TiDB 应用场景,将考虑在风控、财富管理、营销系统、OA 办公、门户平台、设备指纹及运营类联机业务中引入 TiDB,为全业务线发展构建坚实的数据底座。随着对 TiDB 的深度应用与持续优化,富民银行在数字化转型中不断突破,将以更强的技术竞争力为客户提供更优质高效的金融服务。