您当前的位置:  联盟动态 / 精选案例
【今日案例】兴业银行:监管数据分析检核平台——基于分布式集群的检核引擎
时间:2023-04-11 16:25:10

2021年12月,中国人民银行印发《金融科技发展规划(2022—2025年)》,提出健全金融科技治理体系、充分释放数据要素潜能、打造新型数字基础设施等重点任务。北京金融科技产业联盟开设“今日案例”专栏,以《规划》为牵引,通过优秀案例展示产业各方在实践中取得的成果,促进机构互学互鉴。

关键字:分布式、大数据、跨平台

为高效推进全行EAST数据质量分析工作,协助提升本行EAST数据的完整性、规范性、准确性及一致性,降低监管风险,兴业银行团队基于最新CDP大数据平台自主研发了分布式数据检核引擎。

全栈自主设计研发的分布式数据检核引擎,采用独创的检核语言书写业务逻辑,突破了同业以SQL表达计算的传统形式。与传统SQL相比,表达同样的逻辑开发测试工作量缩减为SQL的十分之一,语言更易理解、易使用。在运行效率方面,检核引擎使用自研聚合算法将同源内无关上下文的所有逻辑进行统筹计算,只用一次IO实现任意多项检核,且保证了所有检核项结果的独立和完整,显著提高了资源利用率及计算效率。根据初步测试,与同业广泛采用的传统SQL方法相比,在同等算力及工作任务负载下,计算引擎效率提高了12倍以上。

此引擎及配套检核语言是业内最早提出并完成生产部署的通用数据检核类产品,不依赖特定数据来源、结构及存储架构,因此可对接多种数据存储后端,具有广泛的适用性,已具备对外科技输出的能力。

本案例技术亮点突出,包含如下几个方面:

▶ 一是解耦检核要素。为了更好地解决数据检核领域的问题,首先将检核过程进一步拆解为数据源、检核逻辑、检核输出三要素。基于编程语言设计及编译技术,开发专用于检核逻辑描述的检核语言;让SQL只承担数据源的定义职责;检核输出交由运行时实现。如此一来,一个数据源只需定义一次,基于同一个数据源,可给出任意多条检核规则的定义,在执行检核逻辑前,不必考虑任何与检核输出相关的问题。开发、测试、部署及维护环节均得到了不同程度的精简,大大提升了开发效率。

▶ 二是自研数据源SQL解析器。自研SQL解析器对数据源定义进行合法性检查及相关分析。分析结果形成数据源知识,为后续模块提供元数据支持。

▶ 三是自研检核语言DSL。包括(1)中文编程:为了使语言更加容易理解,扩大使用群体,提升易用性,引入了中文及一些符合中文使用习惯的语法糖。语法层面,花费大量的时间设计和尝试,使中文写法与普通写法优势互补,显著降低语言使用门槛。(2)在线实时编译反馈:用户在使用检核语言描述检核规则时,可实时对规则语法进行检查,后台编译器从算法层面确保规则正确性与可计算性,节省开发、测试成本。(3)编译期强类型:检核语言的编译器实现了一个强类型系统,不仅在编译期可以保证基于类型的计算安全,还可以完成一些基于规则的类型转换,在安全的前提下提升语言的易用性。(4)联合编译:在检核语言的语义分析阶段,编译器接收上述SQL解析器提供的数据源知识,对检核逻辑进行全面的检查、分析。(5)编译过程及结果:检核规则依次通过词法、语法、语义、优化及逻辑生成等模块进行分析计算,最终生成与具体计算平台及数据库产品无关的逻辑表示(IR),用于后续提交检核逻辑引擎进行计算。最终逻辑表示是检核规则经编译优化得到的一种带类型信息的结构化数据,拥有计算所需的所有信息,与具体的数据库产品无关,可作为通用接口与具体的检核引擎、框架或平台适配。

▶ 四是自研检核引擎。计算核心:计算核心是一个面向基本算子的解释器,为了提高并发度,解释器基于独立的线程池,根据算子组合的代数结构,将可并发的部分进行拆解,分别交由不同的线程执行。

此外,解释器内置一套执行信息收集的单元(Metrics Unit),负责收集计算过程中的信息,反馈给其他单元进行运行时优化。

在规模化的数据检核计算场景中,通常一个数据源需要完成数十乃至成百上千条检核规则的计算,计算核心通过设计实现了一种聚合算法,将所有同源检核规则合并计算,只需数据源的一次IO,即可完成任意多项检核规则的计算,且保持每条规则计算结果的独立性,做到了“合而不同”。

本案例成效显著:

▶ 一是大大提升了检核的可拓展性。由于聚和算法的存在,检核规则数量的上升对于检核时长的消耗提升并不显著。经测试,检核规则数量增长了20倍,检核引擎总体消耗时长增长约80%,可拓展性良好。

▶ 二是实现存算分离。当检核数据存储能力与检核计算能力的需求不一致时,传统基于同一数据库部署的存算混合架构将面临两难。横向拓展满足算力,但是浪费存储,或保持适度存储,但算力长期得不到满足。单机数据库则面临更加艰难的局面,单台服务器完全无法支撑日益增长的数据检核算力需求。检核引擎创造了独立部署的计算环境,实现了存算分离,即使单机数据库也可根据工作负载拓展算力,满足业务需求。

▶ 三是检核体系共享,节约研发资源。当检核计算需要实现复杂逻辑时,必须依赖数据存储产品进行二次开发。同一套逻辑,每个产品需要开发各自的实现,如果要求彼此计算结果一致,还须开展逻辑一致性测试,浪费大量开发测试资源。检核引擎配合检核语言,屏蔽后端数据库产品差异,提供完全一致的编译期、运行期环境,同一套检核环境,可同时对接多个完全异构的数据存储产品,最大化复用、共享检核体系,节省各类资源。

监管数据分析检核平台——基于分布式集群的检核引擎1.jpg

图1:自研数据源解析器

监管数据分析检核平台——基于分布式集群的检核引擎2.jpg

图2:检核编译页面实例

监管数据分析检核平台——基于分布式集群的检核引擎3.jpg

图3:检核语言编译过程

监管数据分析检核平台——基于分布式集群的检核引擎4.jpg

图4:检核引擎


本文来源:兴业银行股份有限公司、兴业数字金融服务(上海)股份有限公司

投稿邮箱:News@bfia.org.cn

© 2017 北京金融科技产业联盟 版权所有

京ICP备17008480号 本网站支持IPV6访问

京公网安备11010202007377号

联盟公众号
联盟资讯号