科技助力监管效能提升

  编者按   中国期货监控中心(以下简称中国期货监控)作为期货市场数据汇聚中心,坚持以“数据让监管更加智慧”为愿景,依托科技创新,成功破解大数据、高并发场景下数据接收“卡顿”的卡…

  编者按

  中国期货监控中心(以下简称中国期货监控)作为期货市场数据汇聚中心,坚持以“数据让监管更加智慧”为愿景,依托科技创新,成功破解大数据、高并发场景下数据接收“卡顿”的卡脖子问题,大幅提升数据接收效率,有效减轻市场数据报送主体负担,相关技术指标达到行业领先水平。在此过程中,保证金数据报送系统(以下简称数据报送系统)运维团队爬坡过坎,付出了巨大努力。

  经过多年的积累,中国期货监控依托数据报送系统,把数据质量核查关口前移,将数据质量问题发现在数据正式落地使用之前,坚决防止脏数据传染到数据仓库及关联外部单位,实现了数据问题的早发现、早处置,有效保障了数据质量。

  然而,将复杂的数据校验功能前置在数据接收端,在保障数据质量及良好的数据使用体验的同时,给数据报送系统带来巨大的运算压力,接收耗时随着数据量的增长成指数型增加,运行风险持续积累。

  2019年以来,数据进入快速增长通道,数据报送系统的压力持续增加。如何实现数据“又好又快”的收集,成为数据报送系统运维团队必须面临和需要快速解决的问题。

  2019年底,我们在市场上缺乏参照物的情况下,摸石头过河,对数据报送系统整体架构和技术路线进行预研,全力推进问题解决。

  01

  摸清底数,找准问题

  老的数据报送系统已经运行了十几年,随着期货市场创新业务快速发展,数据校验模型持续丰富完善,系统各个模块勾稽关系变得更加复杂,牵一发动全身。要想解决存量的系统问题,就必须对当前系统进行全面体检,抽丝剥茧,准确找出问题原因,对症下药。

  随后,我们对近百个数据校验单元进行梳理,摸清了近两百余张表的勾稽关系。编写了Pyhton脚本对数据报送系统两千万条日志进行了全量分析,摸清了文件落地、数据装载、数据校验各环节耗时情况,列出台账,找出问题堵点。

  最终,确定从两个方面入手,一是优化数据校验环节,由于当前参与校验的临时表存在频繁读写带来的数据库“高水位”问题,严重影响数据勾稽运算时间和系统运行稳定性;二是优化sqlldr装载效率,当前采用的是间接模式装载入库,需探索采用效率更高的直接路径模式。

  02

  大胆猜测,科学论证,确定解决方案

  (一)优化数据入库逻辑隔离机制

  一是重构表结构,优化数据清理方式。我们编写约七万行建表语句代码,对近百张数据校验临时表进行重构,涉及字段近两千余个,为近两百家机构创建表分区五千余个,在数据校验完成后,对临时表的数据采用truncate方式对已完成校验的临时表分区数据进行清理,彻底解决了数据报送耗时“跳变”及数据库“高水位”问题,提升了系统运行的稳定性,节约系统资源。二是精准排雷,优化索引。我们通过减少对表索引的依赖,将临时表的索引数量由近二十个,缩减至一个,降低了系统运维的复杂度,并结合业务特点将保留的索引由全局索引调整为本地索引,提高了索引使用的精准度和安全性。

  (二)创新数据装载模式

   Sqlldr有两种数据装载模式,一种是直接路径模式,一种是间接模式。直接路径模式装载效率是间接模式的三至五倍(根据测试环境不同,效率会有差异),但老系统建设之初为何采用的是效率“较差”的间接模式?针对此问题,我们也开展了深入调研。

  根据多方了解,在行业内并无可以借鉴的直接路径模式在并发场景下的实际应用案例。同时,软件开发商及技术专家从技术原理上,给出的结论均是“在并发场景下,采用直接路径模式装载数据必然会导致锁表,如果要改成直接路径模式,必须改变业务场景,要求外联机构逐个报送数据”。

  机构数据报送在时间上具有随机性,由于间接路径模式可有效解决多并发的数据报送场景,系统建设之初数据量较小,综合考虑实际业务需要和技术可靠性原则,老系统采用间接路径模式技术路线即可满足当时的业务需求。但现在数据量已经是系统建成之初的近二十倍,而且仍然呈快速增长趋势,数据接收耗时逐年上升,迫切需要对系统性能进行提升,研究引入直接路径模式的可能性被提上了日程。

  业务场景改变不了,我们只有想办法调整技术应用场景,通过技术场景实现多机构数据逻辑隔离入库,将多机构“变”单机构,化整为零,为每个机构指定数据库区域存储数据,从逻辑原理上满足sqlldr直接路径模式应用场景。

  随后,我们查阅了各类原版英文资料,对sqlldr的使用原理进一步研究,经过与数据库技术专家先后近三十轮的方案评审,百余次的尝试验证,通过机构指定分区入库,最终实现了各机构数据入库的逻辑隔离,避免了不同机构数据在直接路径模式场景下,操作相同数据库表时导致的锁表问题。锁表问题解决后,我们继续对sqlldr相关配置参数进行调优,执行三千余个测试用例反复进行验证,确定了最终的配置参数,确保将性能发挥到最优。

  最后,通过与优化前的性能进行对比,性能实现了大幅提升。

  03

  充分准备,反复验证,成功上线

  2020年,数据保持快速增长,系统压力持续增加。我们一方面持续关注系统运行状态,在保证系统性能不严重下降的情况下,为升级准备争取更多的测试、验证时间;一方面加班加点在仿真环境反复进行压力测试和升级回退演练,制定严密的升级预案,确保零失误完成系统升级。

  2020年12月,综合评估仿真测试结果和当前系统运行情况,优化后的系统性能、功能、稳定性、安全性均已达到上线要求。为了避免可能的系统风险外溢,我们选定12月底为升级时间窗口,尽快完成系统升级工作。升级当天,近七万行建表语句、五千余个分区一次性执行成功,约两百家机构数据准确落入指定分区。本次升级,大幅缩减了数据接收耗时,数据耗时持续增长的趋势得到根本扭转,实现了系统架构、科技创新的双突破和系统性能、稳定性的双提升。

  经过观察,2021年以来,虽然数据依然呈现快速增长态势,但系统运行高效平稳,头部机构数据报送较升级前缩短了三十分钟以上,且再未出现“高水位”和耗时“跳变”问题。

  2022年9月底,去某期货公司调研时,对方结算部负责人说“近年来,结算数据量逐年加大,但向监控中心报送数据却明显加快了,给工作人员节约了很多时间。谢谢你们”。金杯、银杯不如用户的口碑,用户的认可就是对我们科技工作人员最高的褒奖。

  接下来,我们将落实《证券期货业科技发展“十四五”规划》要求,结合实际需要,瞄准关键核心技术,把握数字化创新发展方向,不断增强自主创新能力与科技监管水平,为打造一个规范、透明、开放、有活力、有韧性的资本市场贡献力量。

作者: 博易大师

为您推荐

发表回复

联系我们

联系我们

17505124150

在线咨询: QQ交谈

邮箱: kefu@boyidashi.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部