文丨中信证券股份有限公司信息技术中心 王哲 赵梓荣 岳丰 舒光斌 方兴

监管报送是证券公司重要的运营管理活动,也是相关法律法规下企业应尽的义务。随着我国证券业监管体系的不断完善,监管机构对报送数据的要求也日益严格,证券公司必须确保向各类监管机构及时、准确报送各种信息。本文以元数据血缘图谱技术研究及运用为例,探讨提升面向监管报送数据治理质量的新方法。

一、监管报送数据治理难点及对策

由于证券公司的业务类型众多且专业程度高,以及各类监管报送任务数据需求复杂多样,使得传统报送数据生产模式呈现各业务线单独开发数据报表支持报送的特征。但此种模式存在两方面的问题:一是报送数据分散在不同IT系统中,难以统一管理,当上游数据发生变化时,定位并通知全部受影响报送任务很困难;二是不同报送任务可能使用相同指标,但不同系统的指标计算逻辑可能不统一,且多个系统重复计算也存在资源浪费问题。为解决上述问题,证券公司需要优化监管报送数据的生产过程,以提升数据质量。

证监会于2019年实施的《证券基金经营机构信息技术管理办法》,对证券基金机构数据治理工作提出具体要求,即应建立全面、科学、有效的数据治理组织架构以及数据全生命周期管理机制,确保数据统一管理、持续可控和安全存储,切实履行数据安全及数据质量管理职责,不断提升数据使用价值。为满足监管报送数据治理要求,中信证券股份有限公司(以下简称“中信证券”)研发了集中对外报送数仓系统(如图1所示),将各种业务对外报送数据集中在报送数仓计算和存储,降低报送数据管理复杂度;对各种报送指标采用统一计算方法,确保不同报送任务依赖指标口径一致。集中对外报送数仓不仅可支撑日常监管报送,也可持续推动形成本公司内高可信数据。此外,中信证券还在报送数仓中设计实现了分层数据模型:贴源层数据表同步报送所需各业务系统的原始数据表;中间层数据表计算报送常用的数据实体和统计指标;报送层数据表针对每个具体报送任务开发,主要基于中间层数据表计算报送输出的结果字段。

图1 中信证券集中对外报送数仓系统架构

然而,集中对外报送数仓和分层数据模型的建设,虽然解决了报送数据分散、指标计算逻辑不统一等问题,但也导致了数仓内数据元素规模巨大、关系复杂,数据管理须依赖强有力的数据表达和分析手段,为此,中信证券开展元数据血缘管理子系统项目研发工作,意在解决这一难题。

二、元数据血缘分析与知识图谱技术

中信证券元数据血缘管理子系统项目采用元数据(Meta Data)及血缘分析(Provenance)方法支持报送数仓数据管理。元数据简单来说就是“描述数据的数据”,报送数仓系统关注的元数据类型主要包括数据表、表字段、数据指标等,此外也包括计算报送数据的存储过程、计算中产生的临时表及其字段等,各种元数据之间存在直接或间接依赖关系。元数据血缘分析除维护直接依赖关系外,还需要通过各种查询推理,计算元数据之间的各种间接依赖关系,主要包括溯源分析、影响分析、路径分析等,分别对应报送工作的具体需求场景。例如,溯源分析可用于追溯报送层异常数据指标的来源全链路,及时定位并修复数据问题,维持数据指标的准确性;影响分析能快速排查出底层数据来源的变动对上层各类报送数据指标的影响,协助评估修改底层数据表、字段结构的影响。

在技术实现方面,针对血缘分析的数据处理需求,关系数据库常用的计算模式与之差别较大,难以有效支持,必须找到适合的数据模型和技术框架。各种血缘分析问题的本质是表达和查询元数据之间的关系,因此非常适合采用图(Graph)数据模型,即将元数据视为节点(Node),将直接血缘关系视为边(Edge),血缘多跳分析可以利用各种图计算技术实现。知识图谱(Knowledge Graph)是一种面向图数据的强大理论和技术框架,是由带属性实体经过关系链接而形成的网状知识库,通过知识三元组(实体-关系-实体)形式存储知识,其中的实体(Entity)和关系(Relation)分别对应图模型的节点和边。近年来,知识图谱理论取得很大进展,是人工智能最热门研究方向之一。在工程化层面,知识图谱的存储、查询、计算工具软件也日趋完善,如Neo4j、JanusGraph、ArangoDB、TigerGraph、SparkGraphX等。总之,知识图谱具有强大、灵活的图数据查询和计算能力,能够有效支持各种血缘分析问题,因此元数据血缘管理子系统项目选择知识图谱作为核心技术研发了元数据血缘管理子系统(见图1右侧),其子系统包括元数据获取、血缘图谱构建、血缘查询与展示等模块,满足元数据的影响分析、溯源分析、路径分析等应用需求。

三、报送数据血缘图谱的构建

中信证券集中对外报送数仓系统支撑本公司各类业务线的数据生产,目前已有数百套报表使用该系统计算,最终投产报表数量可达到2000套左右。除报送数据表外,该系统还保存了全部表结构信息和存储过程代码。这些系统数据是建设数据血缘图谱的关键输入。设计并实现数据血缘图谱构建(如图2所示)需要以下四个步骤。

图2 报送数据血缘图谱的构建步骤示意

步骤1:提取数据库表结构和存储过程代码

从报送数仓系统的信息表中提取全部Schema名称、数据表名称、字段名称和类型,数据表和字段将作为血缘图谱中的节点。生产报表的存储过程代码也可以从数仓其他系统信息表中获取,存储过程中的SQL代码段作为计算血缘图谱中关系的数据来源。

步骤2:解析每个存储过程血缘

这一步骤是血缘构建的关键操作,对每个存储过程提取其中的SQL代码段,基于成熟的SQL解析工具包,把源代码中蕴含的逻辑关系显式转化为血缘图谱中字段节点之间的血缘关系,并区分影响类型,如select投影、where从句、join从句、having从句等。为确保SQL解析的准确性,在集中对外报送数仓系统开发阶段设计了存储过程的开发样式模板,每个存储过程都具有相同的代码风格;另外,增加代码预处理的环节,过滤每个存储过程中注释、运行状态写入log日志等操作,避免这些附加内容干扰SQL解析工具效果。

步骤3:血缘关系人工审核修订

尽管对存储过程进行各种预处理,但由于SQL代码表达方式多样,解析血缘关系仍有可能存在和代码逻辑并不完全等价的问题。系统提供了人工确认并修改血缘关系的功能,使用户可通过表单和图形化方式,审核、修改血缘结果(增加、删除、重置血缘关系,如图2中红色节点和边)。由于人工审核、修改血缘需要不小的人力开销,这一步骤可以只针对血缘关系准确性要求较高的关键存储过程进行。

步骤4:融合生成报送数据血缘图谱

集中对外报送数仓系统中的全部数据表是通过几百个存储过程计算得到的。每个最终报送的报表,除依赖直接计算它的存储过程外,还依赖若干上游存储过程准备中间层的结果表。每个存储过程解析的血缘关系,是报送数仓整体血缘关系的一个局部子图,需要将这些子图融合起来。通过研发血缘融合的计算方法,挖掘各个存储过程血缘关系的公用节点(如图2中深色节点a、b、c、d),将血缘子图在这些节点处拼接对齐,可得到整体的报送数据血缘图谱。

基于集中对外报送数仓系统的元数据血缘管理子系统项目在实际落地过程中构建了报送血缘图谱,包含21种实体,总数目约为52万;包含28种关系,总数目超过150万。

四、报送血缘图谱的应用

使用开源图数据库存储构建的报送数据血缘图谱,图谱数据支持每日定时和临时触发两种更新模式。基于Python轻量级Web开发框架Flask、封装图数据库查询语言和其他数据处理操作,开发报送数据血缘常用查询功能API供前端调用,包括单节点影响分析和溯源分析、节点对之间路径分析、多个节点全部影响/溯源节点集的批量查询等,以满足实际监管报送的数据需求。另外,使用各种前端技术和算法策略,对各种图查询结果提供美观、易理解的图形呈现。以下介绍几个典型应用。

1.元数据影响分析

需求场景:集中对外报送数仓系统上游数据,由各交易类业务系统数据表推送而来。当业务系统升级改造后,某些数据表中字段的类型、取值规则等可能发生变化,故需要全面查询升级将影响哪些报送数据表,以修改相关存储过程代码逻辑。

传统人工分析必须遍历全部报送存储过程,逐个判断变更是否影响相关报送,非常耗时耗力;而且由于数据影响的多层传递,容易丢失某些数据间接影响,造成某些报表代码逻辑未更新的隐患。基于报送血缘图谱的影响分析功能,则可以快速、全面地查询到上游业务表字段在报送数仓系统中影响的多层表字段子图;另外,还可以基于字段间血缘关系类型(select投影、where从句、join从句、having从句等),灵活过滤结果得到包含特定关系类型集合的影响子图(如图3所示)。

图3 字段级影响分析示例

2.元数据溯源分析

需求场景:在集中对外报送数仓系统计算结果报表的审核、确认、提交等环节中,如果发现报表数据呈现不合理结果,需要快速、准确地定位上游问题根源并进行修改。

溯源分析是影响分析的逆向过程。基于报送血缘图谱的溯源分析功能,可以直接查询到所关心报表(或字段)是由哪些上游关联数据表(或字段)影响的,利用知识图谱可视化算法,将层次化的溯源结果,在网页上直观展示出来,方便用户理解分析。元数据血缘关系边上还记录所归属的存储过程,当用户探究某个存储过程作用时,将溯源子图上对应边进行加粗显示,帮助用户更加直观地进行理解。溯源分析快速、全面定位报送数据的源头及层次脉络,帮助技术人员高效率解决问题。

五、总结与展望

证券公司监管报送工作涉及各个业务系统数据,为此,中信证券通过建设集中对外报送数仓系统,降低报送数据处理的复杂度,并确保报送指标的一致性。鉴于集中对外报送数仓系统内元数据血缘关系复杂,中信证券利用知识图谱技术构建元数据血缘图谱,能够有效的存储、查询、计算报送元数据及其血缘关系。中信证券还研发针对不同粒度元数据的影响分析、溯源分析等图查询和分析功能,并对计算结果提供可视化展示,探索了系统之间血缘影响的分析方法。中信证券研发的元数据血缘管理子系统是知识图谱在监管报送数据管理中的创新实践,是报送数仓数据治理框架的重要组成部分。

未来,中信证券将基于元数据血缘管理子系统,探索更多元数据及血缘关系管理的应用场景,例如,将不同粒度下的数据血缘数据有机融合提供更加灵活多样的血缘查询能力;探索建设多个关联系统的血缘图谱,提供跨系统数据血缘分析能力。建设涵盖证券公司数百个业务系统数据血缘的统一知识图谱,发挥元数据的重要价值,推进公司数据治理和数字化转型是中信证券建设本项目的最终愿景。

本文拟刊于《中国金融电脑》杂志

声明:本文来自FCC30+,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。