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

news2024/11/29 1:51:52

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

来源:《金融电子化》

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

安信证券作为证券行业信息技术应用创新第二批试点单位,大力推进信息技术应用创新工作,并在关键基础设施——数据库的应用创新中,率先将原生分布式数据库 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.coloradmin.cn/o/152898.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Vue + Koa 前后端分离项目实战8】使用开源框架==>快速搭建后台管理系统 -- part8 【权限控制联调】

不要为了不值得的事和人感伤悲秋 本章主要关联章节:【Vue Koa 前后端分离项目实战3】使用开源框架>快速搭建后台管理系统 -- part3 权限控制行为日志_小白Rachel的博客-CSDN博客_koa权限管理 本章主要实现综合的系统权限管理 目录 一、权限控制说明 二…

【Linux】Linux常用指令(28个,以及热键,关机重启)

文章目录1、ls 指令2、pwd 命令3、cd 指令4、touch 指令5、mkdir 指令6、rmdir和rm 指令7、man 指令8、cp 指令9、mv 指令10、cat11、echo(输出,输入,追加重定向)12、wc13、more14、less15、head16、tail(以及管道 | )17、date18、cal19、find(which、wh…

KubeSphere使用外部ES进行日志收集(多行日志)

环境kubesphere : v3.3.1Docker:20.10.8Fluent-Bit:2.0.6-2.0.8ESKibana:7.9.3Docker日志示例{"log":"2023-01-10 11:32:50.021 - INFO --- [scheduling-1] traceId: p6spy : 1|conn-0|statement|SELECT fd_id A…

Java 泛型的介绍和使用

什么是泛型? 1.数据类型变得广泛,或者是数据类型变量化,这就是泛型.(广泛的类型). 2.有一个变量是用来存放一个数据类型,这就叫做泛型. 比如泛型T存放的是一个int 就表示为:Tint 当然T也可以是其他的数据类型,就取决我们给它数据类型. 3.泛型允许程序员在强类型程序设计语…

kafka zookeeper单机版安装部署全教程 含安装包

kafka zookeeper安装部署全教程 含安装包 大家好,我是酷酷的韩~ 一.基础软件安装 1.JDK安装部署 linux安装jdk1.8全教程(包含安装包) 二.安装包准备 1.kafka (kafka_2.12-2.8.0.tgz) https://kafka.apache.org/downloads 2.zookeeper (apache-zookeeper-3.7.…

最近爆火的电子血氧仪的基本原理

继口罩、抗原、药品之后,最近电子血氧仪的价格也开始水涨船高。从一个多月前的100多元,暴涨到了300多元。 那么,这类家用的电子血氧仪是如何工作的呢?测量数据到底准不准?今天就带大家来分析一下。 一、血氧仪工作原理 血氧仪是一种监测脉搏、血氧饱和度等指标的医疗器械…

人工智能-EM算法

目录1、EM算法2、EM算法介绍3、EM算法实例1、EM算法 EM算法:期望最大化算法。解决数据缺失情况下的参数估计问题 它是一个基础算法,是HMM等的基础 期望步:E步,最大步M步 步骤: 1,根据已经给出的观测数据,估计出模型参…

世界上第一款启用 QMK/VIA 的薄型无线机械键盘 Keychron K3 Pro 我刚刚入手

文章目录1. Keychron K3 Pro 是什么2. 键盘参数3. 打字音效测试4. 超薄5. 支持热插拔6. 薄型 Gateron 开关7. 薄型双射 PBT 键帽8. 多功能键9. 键盘部件可自定制10. 电池11. QMK 和 VIA 定制12. 产品清单13. 与 keychron k3 对比14. 与 keychron 其他系列对比14.1 为什么没有选…

Swin Transformer阅读笔记

Swin Transformer 使用了移动窗口的层级式的Vit(Hierarchical Vision Transformer using Shifted Windows) 总体来说:Swin Transformer想让Transformer像卷积神经网络一样,可以分为多个block,可以做层级式特征提取&a…

Flowable工作流——基础篇

1. 介绍 Flowable是BPMN的一个基于Java的软件实现,但是不仅仅限于BPMN,还有DMN决策表和CMMN Case管理引擎,并且有自己的用户管理,微服务API的功能,是一个服务平台。 是由开发了Acitivity6的开发人员,再次升…

nacos的使用

此篇博客是对nacos安装运行进行简单的介绍,后续博客会介绍下nacos的简单使用。nacos的安装安装可以去github上进行下载,下载地址(不建议下载最新版本,可以找比较稳定的版本)可以点解Tags查看所有历史版本我下载的是2.2…

基于 js 制作一个贪吃蛇小游戏

目录前言:项目效果展示:代码实现思路:使用方法:实现代码:总结:前言: 在工作学习之余玩一会游戏既能带来快乐,还能缓解生活压力,跟随此文一起制作一个小游戏吧。 描述&…

ESXI8.0一键安装黑群晖DSM7

🎈 作者:互联网-小啊宇 🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

如何做好项目管理

项目管理概述 什么是项目 项目 是为创造独特的产品、服务或者成果而进行的临时性工作 项目三要素:临时性、独特性、渐进明确性 什么是项目管理 项目管理通过合理运营和整合项目相关活动,以满足项目目标达成的过程 项目与日常工作的区别 项目&…

设计测试用例

⭐️前言⭐️ 这篇文章主要介绍测试用例相关的知识,一个优秀的测试人员,需要具备设计优秀测试用例的能力。 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主将持续更新学习记录收获&…

基于启发式蝙蝠算法、粒子群算法、花轮询算法和布谷鸟搜索算法的换热器PI控制器优化(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 本文采用蝙蝠算法、粒子群优化、花轮询算法和布谷鸟搜索算法,对管壳式换热器的控制系统进行了建模和计算机仿真。为…

trie树入门

trie树分为普通的trie树和01trie树两者可以实现成树,很大一部分原因是:只有26个字母和01两种状态,一个结点度数不会太大,而且字符串长度和位数不会很大,更容易存储普通trie树维护了一堆字符串集合的前缀,in…

Elastic-Job分布式任务调度(4):Elastic-Job高级

1 事件追踪 Elastic-Job-Lite在配置中提供了JobEventConfiguration,支持数据库方式配置,会在数据库中自动创建JOB_EXECUTION_LOG和JOB_STATUS_TRACE_LOG两张表以及若干索引,来记录作业的相关信息。 1.1 修改Elastic-Job配置类 在ElasticJo…

电商人必读:2022中国电商市场发展洞察报告(人群、品类、品牌、玩法).pdf(附下载链接)...

省时查报告-专业、及时、全面的行研报告库省时查方案-专业、及时、全面的营销策划方案库【免费下载】2022年12月份热门报告盘点罗振宇2023年跨年演讲PPT原稿吴晓波2022年年终秀演讲PPT原稿《底层逻辑》高清配图华为2021数字化转型:从战略到执行.pdf华为项目管理金种…

如何理解操作系统

路灯很多,希望你找到自己的月亮。 作者:阿润菜菜 目录 操作系统是什么 为什么设计操作系统 理解操作系统的作用 如何理解操作系统对软硬件管理? 操作系统为什么要对软硬件资源进行管理呢? 什么是系统调用和库函数 总结 操…