头图

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

来源:《金融电子化》

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

安信证券作为证券行业信息技术应用创新第二批试点单位,大力推进信息技术应用创新工作,并在关键基础设施——数据库的应用创新中,率先将原生分布式数据库 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 服务工单系统,进一步提升数据库管理效率。


OceanBase技术站
22 声望122 粉丝

海量记录,笔笔算数