OceanBase 在证券行业基金资管场景落地实践与解决方案

简介: 自从证监会发布《客户交易结算资金管理办法》以来,券商的主要经营方式由网点营业部模式变化为总部集中模式,在集中交易系统的建设背景下,关系型数据库的重要性愈加突出,以 Oracle、DB2 为代表的数据库产品几乎占据了整个券商的各类核心业务系统。

01.gif

自从证监会发布《客户交易结算资金管理办法》以来,券商的主要经营方式由网点营业部模式变化为总部集中模式,在集中交易系统的建设背景下,关系型数据库的重要性愈加突出,以 Oracle、DB2 为代表的数据库产品几乎占据了整个券商的各类核心业务系统。

证券基金行业的核心系统整体上可分为两类,一类是以股票交易为中心的在线类业务,另一类是以基金/资管为中心的“T + 1”业务。对于数据库而言,前者强调极致的低延迟与高可用;后者则通常涉及批处理、大事务、复杂查询、备份恢复,对数据库的综合能力有较高要求。

本文重点描述近年来在基金/资管场景下,OceanBase 整体解决方案与落地实践。


基金资管的业务架构与数据库实践


图片.png

业务模型

典型的资管场景业务架构如下:

  • 对客查询系统:终端用户通过券商/基金的直销渠道或互联网分销渠道执行买入、卖出、查询等请求;


  • TA 登记过户系统:登记用户交易请求,在每笔交易链路中,根据资产估值计算用户的实际买入份额与卖出金额;在用户与交易两个维度进行批处理;


  • 估值系统:计算资产的净值、利息收入,资产维度批处理;


  • 投资交易系统:交易核心账务处理;高并发低延迟,满足 ACID;


  • 投资分析系统:统计分析,包括大量大事务,复杂查询。

容灾要求

1. 机房切换演练:

在线类交易业务对业务连续性有较高的要求,以银行核心做对比,发生灾难时,银行账务核心需优先保 RPO,确保数据一致,在此前提下,能接受一定时间的系统不可用;而证券核心交易系统需要优先确保业务可用,其交易期间的系统不可用损失往往以秒为单位计算。因此证券行业需要定期做各类高可用切换演练。

2. 快速数据恢复:

T+1 类交易业务则对数据一致性有较高要求,一旦跑批出现错误,需要将数据恢复到某个时间点进行重跑,同时需要在跑批时间窗口完成批量任务,因此一方面需要跑批稳定,尽量不出错,一旦出错还需要数据能可靠且快速地完成时间点恢复。

针对业务模型的数据库方案实践

1. 对客查询系统:

在自有销售渠道预期增长的背景下,为了支撑未来高并发场景,部分头部企业开始专库专用,将对客查询模块从数仓平台中抽出,单独运行在分布式关系型数据库。

资管系统的对客查询模块,虽然 SQL 基本都带有“用户 ID ”这类信息作为等值条件,但其 SQL 往往不是简单的点查,而是带有去重排序等各类计算以及多表 join 的中等复杂 SQL。在此情况下,OceanBase 的分区表+TableGroup+复制表可尽量将 join 中的相同数据放在同一个节点,减少分布式系统下带来的跨机 RPC 请求,同时 OceanBase 的一体化设计能尽量避免计算过程中的数据 merge。综合多方面特性,OceanBase 在此类场景下能够提供高并发低延迟的查询能力。

对于写入负载,若数据来源于数仓平台,建议在数仓平台完成数据进行清洗后再导入;若选择直接在对客查询系统进行数据清洗,则建议控制事务尺寸,尽量避免一条 SQL 处理一整段时间的数据(如一个月),尽管 OceanBase 3.X 已经支持大事务,但为了保持系统持续长远运行的健壮性,建议固定事务尺寸,否则随业务增长,按时间维度的事务大小也将持续增长,在达到临界点后,还是需要回头调整业务逻辑。

2. TA 登记过户系统:

引入分布式数据库并且借助其可扩展性,可在保持业务架构不变的情况下,较好应对未来基金用户数、交易数大幅提升的需求。

该系统涉及用户记录与交易记录两个维度,同时部分清算必须以串行方式完成,因此架构上较好方案是单元化,即将业务拆分为若干个能够独立完成关键业务流程的数据单元,单元之间避免 DB 间的交互,将不同业务单元以租户或用户维度进行部署,并将其主节点置于不同主机,从而提升整体批处理效率并且保证硬件资源利用率。

在每个单元内,需要确保其数据相对均匀并且执行效率相当,因为系统整体的处理时间本质上就是最后一个单元完成清算的时间,这需要数据库具备良好的租户资源隔离能力。

相对于分片单元而言的是汇聚单元,汇聚单元内有所有的数据,负责承载全局分析类负载,这需要数据库具备良好的 AP/TP 负载隔离能力。

3. 估值系统:

该系统只涉及资金维度,其批处理逻辑较为简单,通过热点大表分区 +TableGroup,可将负载均匀分布到各个节点,达到较高的性能效果,当前 Oracle 生产环境运行在一套高配 Oracle 数据库中,跑批时间在小时级别,高峰期 CPU 达到满负荷,OceanBase 采用了比生产多一倍的数据进行跑批压测,在国产芯片的 2-2-2 集群环境中,可在 6 分钟内完成。

4. 投资分析系统:

线上常见的问题是偶发的执行计划走错,导致复杂查询 SQL 时间变长,该问题在 Oracle 数据库也是常见的影响性能的因素之一,OceanBase 支持通过 HINT 来描述具体如何固定计划,并具备绑定执行计划的能力,更进一步,当前 OCP 3.2.1 版本已支持白屏绑定历史执行计划(点击文末阅读原文查看详情)。

对于上述场景,若该 SQL 在执行计划变化之前一直运行正常,则可找到以前正常的执行计划,若定位后发现根本原因确实是执行计划改变,则可直接一键绑定历史执行计划。该能力大大降低了线上环境复杂 SQL 计划调优的操作风险与复杂度。

除此之外,复杂分析 SQL 往往大量运行在 PL 环境中,业务逻辑均在存储过程、函数、匿名块中,数据库本身对 PL 语言的支持程度也决定了业务迁移改造的实施难度,OceanBase 能兼容 PL 的基本常见语法,在该项目中,原运行在 Oracle 的 PL 代码几乎没有做业务逻辑修改。

数据库部署架构

1. 集群内高可用能力:

OceanBase 集群在同机房内部署,其提供的高可用能力与效果可认为是一组节点扩展能力上限更高、没有存储单点风险的 Oracle RAC:无需人工或外部工具参与的自动故障转移、多节点多活提供服务、添加节点即可完成资源自动扩展。OceanBase 基于 Paxos 多数派共识协议的高可用底座经历了阿里巴巴/蚂蚁集团“双十一”级别的负载考验,而 TableGroup 、集群内负载均衡等日常运维手段也都依赖于高可用切主,因此可以认为集群内高可用已经是成熟稳定的能力,可有效抵御基础设施计划外故障导致的业务中断。

2. 集群间高可用能力:

基于多数派共识的高可用协议对于双机房场景无法有效抵御风险,若将多数派节点放置在主机房,则主机房故障就无法提供服务;若将多数派放置在备机房,对于主机房而言,其具备了故障转移的能力,但若备机房故障,主机房可用性将受到影响,系统整体可用性没有实质提升,在没有同城三机房的条件下,若要借助集群内高可用能力实现“双活”级别可用性,则至少需要引入第三机房存放日志副本做 Paxos 投票。

在此背景下,OceanBase 提供了集群级别的主备能力,针对双机房场景提供机房级别高可用能力。对于机房切换演练,带生产数据进行切换演练时,可通过 switchover 将主备集群的角色互换,演练结束后业务负载回到主机房,数据库侧则再次执行 switchover。不带生产数据做演练时,则将第二备集群与主集群解耦,让其独立为一个单独的集群,测试数据运行完后,重建该备集群。

图片.png

*主备库概述请查看:https://www.oceanbase.com/docs/oceanbase-database/oceanbase-database/V3.2.2/primary-secondary-database-overview-1


结语

相比耳熟能详的单机数据库,OceanBase 在开发使用、运维管理方面还不足够被广大技术人员熟知,同时产品架构与功能细节也在持续迭代。众多核心业务的成功上线离不开客户与合作伙伴的信任,OceanBase 也将以解决真实业务场景难题作为方向,不断提升产品能力,用技术让数据的管理和使用更简单。

相关文章
|
SQL 数据库 Docker
OBCP实践 - OceanBase Docker 体验
开发者和技术爱好者可以在无需复杂安装配置的情况下迅速搭建OceanBase数据库环境,从而方便地进行功能测试、性能评估或者开发调试等实践活动。同时,由于Docker的便捷性,此方法也支持跨平台部署,使得OceanBase数据库能够在不同的操作系统(如Linux、Windows、macOS)上轻松体验。
1075 2
|
SQL Java Shell
OBCP实践 - OceanBase 执行计划
在OceanBase数据库管理系统中,执行计划(Execution Plan)是数据库优化器基于SQL查询语句生成的一种逻辑表示,它详细说明了数据库如何执行SQL查询,包括选择合适的索引、连接顺序、临时数据处理方式、排序算法等一系列操作步骤,最终目的是为了最有效地获取所需数据并返回给客户端。
736 0
|
运维 容灾 安全
解决方案架构师郭援非:OceanBase助力金融ECIF“大机下移”分布式
随着“以客户为中心”逐渐成为金融业的战略重心,整合企业各系统分散客户信息的ECIF(Enterprise Customer Information Facility,企业级客户整合系统)应运而生。 ECIF 通过整合企业现有业务系统中的所有客户信息,实时保留客户的最新信息,为各应用系统以联机交易的方式提供实时的、完整的、共享的、一致的客户信息,建立起企业级的客户信息识别系统,在全企业范围内为客户信息的使用和管理提供服务,已成为金融业“以客户为中心”的战略性基础系统。
1123 0
解决方案架构师郭援非:OceanBase助力金融ECIF“大机下移”分布式
|
存储 SQL 分布式数据库
OceanBase X Flink 基于原生分布式数据库构建实时计算解决方案
OceanBase X Flink 基于原生分布式数据库构建实时计算解决方案
551 57
|
SQL 关系型数据库 MySQL
OBCP实践 - 迁移 MySQL 数据到 OceanBase 集群
OBCP实践 - 迁移MySQL数据到OceanBase集群,这是一个涉及到将现有MySQL数据库的数据和表结构迁移到OceanBase分布式数据库集群的实际操作过程。OceanBase是一款高度兼容MySQL协议的分布式数据库产品,支持在线平滑迁移,以便企业用户可以从传统的MySQL数据库平滑迁移到OceanBase,以实现更高的可用性、扩展性和性能。
822 0
|
存储 SQL 数据采集
OceanBase X Flink 基于原生分布式数据库构建实时计算解决方案
OceanBase 架构师周跃跃,在 Flink Forward Asia 2022 实时湖仓专场的分享。
21275 8
OceanBase X Flink 基于原生分布式数据库构建实时计算解决方案
|
关系型数据库 MySQL 调度
OceanBase 高并发场景技术解读
OceanBase 高并发场景技术解读
|
运维 安全 网络安全
OBCP实践 - 手动部署 OceanBase 集群
手动部署OceanBase集群是一项专业且细致的工作,需要深入理解OceanBase的架构原理和部署流程,同时也需具备丰富的数据库管理和运维经验。对于初次接触OceanBase的用户,建议先从简单的单节点或通过Docker部署开始体验,然后再逐步过渡到复杂集群环境的部署和运维。
758 0
|
容灾 Cloud Native 新金融
与客户手拉手|OceanBase客户实践精选Top 10
这个假期不像大风刮来的,却像大风刮走的......(开心吗?调休换的🥰)已经在收拾行李,准备开始新一年的“奋斗”生活了! 继<春节系列回顾>为大家带来的“技术文章”和“专访观点”后,最后来盘点一下 2022 年 OceanBase 客户实践精选 Top 10,希望为您带来一些启发与思考,也欢迎收藏或分享(点击下方图片直达原文🤩)。
646 0
与客户手拉手|OceanBase客户实践精选Top 10
|
存储 SQL 容灾
沉舟侧畔千帆过,高德的OceanBase Cloud实践之路
2002年,高德软件有限公司(以下简称“高德”)成立。从一款简单的车载导航,到移动互联网的出行工具,再到如今多场景的生活服务平台,我们回顾高德的发展史不难发现,高德始终坚持攻坚技术难题、拥抱科技创新。不仅是全国第一家获得导航电子地图甲级测绘资质的民营企业、国内唯一拥有航空摄影甲级资质的民营企业,还是第一款全程采用明星语音导航的地图应
832 0
沉舟侧畔千帆过,高德的OceanBase Cloud实践之路

推荐镜像

更多