安信证券资管清算重要业务在原生分布式数据库的创新实践

news/2024/12/21 21:43:50/

作者:安信证券信息技术委员会运维部系统平台室 刘盛彩、肖昭、张杰

来源:《金融电子化》

近日,《国务院关于数字经济发展情况的报告》(以下简称报告)提请十三届全国人大常委会第三十七次会议审议, 报告提出:“深入实施创新驱动发展战略,推进关键核心技术攻关,加快锻造长板、补齐短板,构建自主可控产业生态”。

安信证券作为证券行业信息技术应用创新第二批试点单位,大力推进信息技术应用创新工作,并在关键基础设施——数据库的应用创新中,率先将原生分布式数据库 OceanBase 应用于重要的资管清算场景。随着项目从适配到投产,给安信证券带来了若干技术红利,包括多租户、高并发、高压缩等,同时促进厂商打磨了数据库在重度 ETL 数据处理、复杂分析场景的若干能力,并推动数据库厂商与应用开发商之间的对接落地,共建产业生态。凭此,“安信证券资管清算重要业务系统基于 OceanBase 的创新应用实践”项目荣获“2022 第十三届金融科技应用创新奖”。

 

分布式数据库选型分析

 

最初进行数据库选型时,安信证券重点关注分布式数据库产品未来是否能够支撑更多业务场景,达到增效降本的目的。同时,我们也对分布式数据库有两点忧虑:首先,如何找到适合“分布式”的业务场景?其次,是否会因为引入分布式数据库导致硬件投入大幅增长?对于 OceanBase,我们认可其多租户体系、兼容性、高可用以及其在多个头部大型券商的落地案例。

主流的商业数据库 Oracle 在 12C 版本提供了多租户(PDB)特性,OceanBase同样基于租户对外提供服务,并在内核上天然支持 DBaaS。如果说分布式数据库由于多副本的特性,天生需要更多硬件资源投入,那么多租户则是有效提升整体资源利用率的关键。 经调研,安信证券了解到,OceanBase 的多租户体系能够把投入的硬件资源池化,再按需分配为不同的资源对象(租户)供各个业务使用,租户之间数据不互通,并且具备资源隔离的能力。

同样是为了提升资源利用率,原生分布式数据库与单机多实例形态相比,原生的多租户降低了维护对象实体——“进程”的数量。“进程”数量的降低,可以有效降低引入分布式数据库带来的节点数量增长,将大幅提升数据库版本升级、备份恢复、主机变更等日常运维的操作效率。

此外,OceanBase 的租户能够同时提供 Oracle 和 MySQL 两种兼容模式,即同一个集群中可以同时创建 Oracle 和 MySQL 类型租户,并且都具备较高的兼容性,基本可以做到仅需少许修改即可“平迁”到对应的租户中。这将让安信证券在数据库国产化选型时无需引入过多数据库类型。

 

资管清算,重要业务系统创新实践

 

安信证券是首批将资管核心业务 TA 下移到国产数据库的券商。除此之外,我们也逐步完成了投资者动态、估值清算、融资征信等多个重要清算类业务的并轨投产。其中,OceanBase 的多租户架构、语法兼容能力、SQL 优化器能力是能够支撑上述场景的关键。

虽然 OceanBase 属于分布式数据库,但却能够走不同的技术路线。一类是“平迁”路线,即依靠数据库自身的数据分布、高压缩比以及 SQL 引擎,将 Oracle 的数据平移到一个大规格租户,达到只换数据库不重构业务的目的;另一类则是“拆分”或“重构”,将不同的小规格租户作为承载不同分片的对象,并将其 primary_zone 分布在不同物理节点,高效利用集群各节点算力。

对于投资者动态、融资征信等系统,安信证券选择了“平迁”路线,这类系统的数据处理逻辑往往融合在数据库的过程语言中(如存储过程、匿名块、程序包等),并且不可避免地存在大事务、复杂查询。此类系统通常不具备完全重构的条件,因此其迁移需要重点关注对象(包括表、分区语法、存储过程等)兼容性,以及复杂 SQL 的性能,这两点是决定新数据库是否可用的关键因素。

在此类场景中,DBA 团队需要全程参与,熟悉数据库厂商提供的迁移工具,把控整体迁移流程,并且在灰度阶段追踪慢 SQL 情况。对于执行计划不稳定的 SQL,根据数据变化情况,应该人工介入绑定执行计划,或提前收集统计信息,为优化器提供更准确的依据。

 

Image

 

当单个租户出现容量或性能瓶颈后,通过增加租户 unit,该租户的部分数据将转移到新的硬件节点,实现数据库平滑扩容。同时,数据从“集中”变为“分布”,部分 SQL 将从单节点访问变为跨节点访问,延迟自然会增大。因此,对于关键高频清算SQL,可采用分区结合表组的技术,将不同表中有相同数据的分区,放置于同一个节点,尽可能达到“数据跨机存,SQL 本地跑”的效果。

 

Image

 

对于 TA 等复杂清算系统,当前主流开发商的新一代 TA 选择“分而治之”的处理方式,这也是大数据量批处理的典型优化方式。在此类场景中,根据跑批特性梳理拆分的用户,可将若干个不在同一时间点跑批的用户放在同一个租户中,提升整体跑批效率。当 TA 整体数据量较大时,可以适当地进行分片;当单个租户出现瓶颈后,通过集群内扩容可将租户迁移到新硬件,然后进行租户规格扩容,满足业务增长需求。

同时,拆分后难免需要解决“汇聚”的问题, 对于数据量大的系统,汇聚库中的大表可以选择合适字段进行分区,避免租户中出现超大表拖慢集群合并时间的情况。

 

Image

 

创新成效显著,未来更可期

 

安信证券此次以 TA 为代表的清算跑批业务顺利完成试点验证,同时也完成了行业内首次大事务 OLAP 场景的落地验证,为证券行业形成了一套可参考的标准方案。新一代 TA 业务上线 OceanBase 后,跑批清算时间由 2 小时降低为 1 小时,TA 系统的清算时间缩短为原先的 50%,对上下游业务系统而言,登记过户相关的整体运营效率得到显著提升。

OceanBase 原生分布式数据库内核天然支持多租户,对于有多个租户的集群,可以让不同租户的主副本位于不同主机,从而充分利用集群中不同主机的资源,这对安信证券初期需要预先创建多套数据库资源的业务而言,得以大幅节约运维成本。此外,OceanBase 良好的兼容性最终让业务在不重构的前提下,快速完成国产化替换,安信证券也将迁移改造成本控制在了一定的范围内。

当前,原生分布式数据库经过充分验证,已经能够在适合的场景承载关键核心业务系统,但其部分行为与传统集中式数据库仍有区别,在某些场景中需要注意其使用方式。以 OceanBase 3.X 版本为例,其多数管理动作仍集中在集群层面,如异地的主备切换、DDL 的处理等。好消息是,此类管理动作在 OceanBase 4.X 版本也将下沉到租户, 届时,集群内的不同租户将可以按照业务的时间安排,各自进行机房切换演练,在规划集群时有了更大的灵活度;对于 DDL 在分布式架构下的一些问题,也将从根本上得到优化。

随着各业务线对数据库资源需求的持续增加,DBaaS 未来应该与流程工单系统相结合,业务方走工单申请数据库资源,将必要的信息带入工单(如数据量、架构、规格等),由 DBA 团队审批后,DBaaS 平台能够快速完成数据库资源的创建并返回连接串等必要信息。当前, OCP(OceanBase Control Platform,运维管理工具)已经开放了丰富的 API 接口,在安信证券已经被上层运维管理 DBaaS 平台纳管,并实现了监控告警的统一。

未来,安信证券也将把租户的创建、回收、扩容等能力融入到 IT 服务工单系统,进一步提升数据库管理效率。


http://www.ppmy.cn/news/886994.html

相关文章

通达信口袋支点选股公式,选出口袋支点形态

口袋支点(Pivot Point)出自《像欧奈尔信徒一样交易》,根据书中介绍,口袋支点的内在含义是在“口袋”中买入,这是股票尚处于基部阶段时,出现的不明显买入信号。 根据书中描述,简单画一张口袋支点形态图更容易理解。&am…

通达信MACD和KDJ组合指标公式,MACD和KDJ怎么配合使用

MACD指标属于趋势指标,KDJ指标属于震荡指标,MACD和KDJ配合使用会擦出怎样的火花? 一、平替版KDJ底背离 之前介绍过平替版MACD底背离,平替版KDJ底背离写法类似,总的来说写法相对简单,不费脑子,效…

js中for-in 和for-of

for in 和 for of 的区别 1、循环数组 区别一:for in 和 for of 都可以循环数组,for in 输出的是数组的index下标,而for of 输出的是数组的每一项的值。for of和forEach一样,是直接得到值。 const arr [1,2,3,4]// for ... in for (const…

N字霸气多空博弈大师能量潮拐点战法通达信 主图/副图/选股指标

N字霸气黄金线主图战法 通达信主图指标 贴图 无未来 无加密 https://www.cfchi.com/formula/zhutuzhibiao/6194.html 一款非常优秀的N字霸气多空博弈能量潮 主图 /副图/ 选股通达信的趋势指标公式多空博弈能量潮 .构成的基本原理是根据潮涨潮落的原理构思的。每次向前的浪潮…

总结:WEB流量劫持

一、背景 在整理WEB鉴权与登陆等技术的时候,会涉及到安全,而鉴权登陆不安全有个很大的可能就是流量被劫持了。 本篇文章主要是想弄明白黑客是怎么劫持的。 二、WEB流量劫持是如何做到的? WEB流量劫持是指黑客将受害者的网页请求重定向到攻…

AWS 助理级架构师460道题库带答案

文章目录 1.哪种工具最适合组合以前彼此独立的AWS账户的绑定?2.一家公司已在Amazon EC2实例上部署了多个关系数据库,每个月,数据库软件供应商都会发布N个需要应用于数据库的新安全补丁,应用安全补丁的最有效方式是什么?分值5分3.哪种AWS服务可用于私下存储和管理源代码的版…

洛谷P5709 【深基2.习6】Apples Prologue / 苹果和虫子(C语言)

题目描述 八尾勇喜欢吃苹果。她现在有 m(m ≤ \le ≤ 100)个苹果,吃完一个苹果需要花费 t(0 ≤ \le ≤ t ≤ \le ≤ 100)分钟,吃完一个后立刻开始吃下一个。现在时间过去了 s(s ≤ \le ≤ 10000)分钟,请问她还有几个完整的苹果&#xff1f…

MUI在iPhone6P上闪退

6P这个机型本身定位比较尴尬,身边基本没人用,找不到真机测试,郁闷的闪退。 各种苦逼,各种找人找机器,当时还弄了个真机测试群,结果就3个人在里面,正好有个朋友新近了一批二手苹果, …