APP下载

金融大数据对账方法

2023-01-05高冬梅刘志凯

合作经济与科技 2022年8期
关键词:全量账务账单

□文/高冬梅 张 莉 刘志凯

(黑龙江财经学院财经信息工程学院 黑龙江·哈尔滨)

[提要]针对分布式金融系统由于多系统交互、异步处理、系统缺陷等问题导致的数据错误,将Al ibaba大数据处理平台和账务理论相结合,提出离线和准实时数据对账的方法。通过某金融公司的分布式贷款系统每天700万条数据,对本文提出的对账方法进行验证。结果表明:该数据对账方法能完成金融大数据的处理,及时发现数据质量问题,使金融系统资金损失达到最低。

引言

对于分布式金融支付工具系统,每日资金流入/出笔数均在几千万级别,这些系统账务的资金变动和余额是否都如实准确地反应了每笔交易业务的真实状态?是否有过资金损失事件?贷款系统中客户借款后是否会有不用还款的情况?利息、费用、额度计算是否正确?账上的钱是否正确?出于这些疑问,针对线上数据对账势在必行。

目前,研究人员对金融大数据的对账展开很多深入的研究,主要集中在金融大数据平台的设计与实现、金融风险防范、对账理论等方面。在金融大数据平台的设计与实现方面,文献应用Hadoop、Hive、Spark、MaxCompute等大数据相关技术,对商业银行小微信贷风险管理系统、银行的财务管理系统、云服务平台进行设计与实现。文献针对分布式系统需跨服务、跨资源相互合作,提出分布式事务优化方案,对事务模型进行优化或应用事务补偿机制,保证事务最终一致。在金融风险防范方面,文献提出了中小券商日终清算操作风险,对风险进行分析和评价,保障清算的最后一道防线;文献提出了银行对账风险管理优化方案,优化业务处理流程、搭建预警分析平台等。在对账理论方面,文献应用账务中账证相符、账账相符、账实相符等账务业务理论,保障原始凭证到会计报表编制正确无误;文献提出事业单位对账思路,做到余额核对、发生额核对、会计账核对。本文提出将大数据处理平台和账务理论相结合,对分布式金融系统的数据进行对账,用来防范数据质量风险,重点研究对账方法、对账实现,从数据处理及时性、数据量、发现问题的数量和维护成本等方面,对实验结果进行分析。

一、金融大数据对账方法

金融数据对账需要账证核对、账账核对、账实核对、账表核对。账证核对,“账”表示账务,“证”表示记账凭证即业务单据,是验证每一笔记账都有据可依,不多记、不漏记、不错记。账账核对,前一个“账”表示总账科目,后一个“账”表示分户账,即通常所说的账务系统中的账户。账实核对是对账务数据与实际资产的核对,对第三方支付机构来说,主要是核对内部账户系统中账户的余额是否与银行实存账户余额相等。账表核对是总账报表间的核对,主要核对总账报表中各个科目的期初借贷金额加借贷发生额是否等于借贷方余额、所有科目的借方余额是否等于贷方余额。

按照时效性,数据对账分为离线数据对账和准实时数据对账。离线数据对账分为以天为单位的全量数据对账和小时级别增量对账。在全量数据对账中,将线上昨日0点到23点59分59秒产生的数据表数据,在今日凌晨准时自动开始处理,将处理结果同步清洗到数据仓库,在大数据平台部署对账规则进行核对;在小时级别增量对账中,将每天产生的数据划分为24个分区,当前小时同步上一个小时产生的数据,部署对账规则进行核对;在准实时数据对账中,实时拦截运行中的程序代码,部署对账规则进行核对。

MaxCompute平台是阿里巴巴集团的大数据服务平台,提供数万台超大集群,能够处理EB级数据规模。同时,该平台提供数据同步、数据预处理、数据分析、任务调度和监控报警等功能。开发人员在用平台进行数据开发时,采用平台提供的IDE,编写MaxCompute SQL。Max-Compute SQL的语法和HQL语句类似,并提供了字符串函数、日期函数等。

二、金融大数据对账实现

(一)离线数据对账。首先“确定对账逻辑”,主要根据对账方法中介绍的“账证核对”“账账核对”等理论,确定业务系统需要完成哪些对账。“编写及调试脚本”“部署对账任务”“配置监控及报警”,主要利用MaxCompute平台完成,“问题数据处理”报警后人工处理问题数据。以某公司分布式贷款系统为例,账单系统同步调用某资产系统,某资产系统发送异步消息给账务系统。具体实现过程如下:首先,确定对账逻辑,梳理出该系统要对账的逻辑,由于该系统没有和银行系统交互,也不是账务系统,所以对账类型只有“账证核对”。对账关系用来阐明要与哪些系统对账——与该系统上游账单系统、下游账务系统或内生即该系统自身内部逻辑对账。对账内容主要包括发生额核对、余额核对和自身内部关键逻辑核对。以对账内容“账单系统与资产系统当日发生额核对”为例,其包含的业务语义是,客户贷款XX元,账单系统入账XX元,资产系统为客户记账XX元,客户资金账户多XX元,机构账户少XX元。通过两个系统发生额,对比账单系统入账金额是否等于资产系统客户资金账多的金额和机构账少的金额。其次,编写及调试脚本。仍以梳理的对账内容“账单系统与资产系统当日发生额对账”为例编写对账脚本。向数据仓库人员提交要从线上同步到离线数据仓库的表,完成线上数据库表到离线数据仓库的同步;利用平台完成Max-Compute SQL语句的编写,用于筛选和验证规则不一致的数据。具体逻辑是,用账单号将A表全外连接到B表,若A表的入账金额属性字段值不等于B表的客户账记账金额或机构账记账金额属性字段值,则筛选出该条记录。再次,部署对账任务。调试脚本完成后,配置任务的依赖关系、调度方式,发布到生成环境。再次,配置监控及报警。针对对账异常的数据,发送邮件、钉钉等消息通知给开发人员。最后,问题数据处理。对收到的异常通知数据,进行人工排查。如果是脚本问题误报,则修正脚本;如果是真正的对账异常,则需要排查系统哪个环节出现问题,进行系统代码或流程修复。要不断优化误报问题,避免对误报问题的默认许可,使真正的问题被误报覆盖。对误报问题的优化,从数据仓库表的产出质量、产出效率和跨天或跨小时数据的冗余拉取三方面提高。

(二)准实时数据对账。针对离线数据对账时效性不高的问题,提出了准实时数据对账。在不依赖、不修改业务系统代码和日志的前提下,实时收集业务链路的各个环节出入口的数据。在应用的输入、输出请求,如数据库层的DAO操作、返回的结果、异步发送的消息上设置监听器,监听器将收集到的结果发送到“数据收集和发送中心”,该中心再将数据发送到“对账中心”,该对账中心提供模型抽取、规则编写、规则运行和准实时对账的能力。

针对不同系统类型,首先设计了单系统对账模型,该对账模型可以针对单一系统的输入输出数据设计对账规则。假设有规则“输入请求R1”=“输出结果R2”,将规则部署在对账中心,如果存在不满足该规则的数据,则为异常数据。其次设计了多系统对账模型,在分布式环境中,完成一次业务需要多个系统协作完成,一个完整链路上的多个系统组成业务对账模型。假设有规则“系统A输入请求R1.X”=“系统B输入请求R3.Y”+“系统D输入请求D1.Z”,部署对账规则,检测业务是否满足。

三、实验结果分析

利用上述金融大数据对账方法,对线上真实海量金融数据是否符合预期给出了很好的答案,消除了本文开始提出的利息、费用、额度等是否计算错误的疑虑。虽然各个金融类系统,在线下环境都会进行严格的测试,但在线下环境无论是手工测试或自动化测试,其数据量和场景都远少于线上真实环境。大数据对账作为一种测试手段的有力补充,能够发现在线下很难发现的一些问题。针对某公司资产系统,进行了离线数据对账和准实时数据对账,对账实验结果如下:

(一)发布过程兼容性处理错误。全量和增量对账发现:由于资产系统是分布式架构,部署在生产环境多台机器上,因此发布过程分批发布,这样会出现新发布的代码调用老服务和数据,或老代码调用新发布的服务和数据的情况。因此,系统发布过程中会出现兼容性未处理好使贷款后客户账单没有形成和不用还款的问题,造成交易笔数210笔,总计损失金额3万元。经过离线对账脚本发现问题后,订正补充没有形成的账单,挽回资金损失。

(二)事务悬挂。全量对账发现:分布式事务一般分为预处理和提交两个阶段,在提交阶段,所有系统都要提交成功,如果有一个系统提交失败,则一直重试,如重试超过一天,定义为事务悬挂。此时需要人工介入排除原因,可能原因有发送的异步消息延迟导致提交失败。

(三)贷款五级分类错误。全量对账发现:依据借款人的实际还款能力,按风险等级分为正常、关注、次级、可疑和损失,后三种为不良贷款,由于代码逻辑错误,将贷款五级分类设置错误,导致贷款不能真实反映企业盈亏状况、不同分类贷款的催收和风险处理方法等出现差异。因此,需修复代码缺陷、修复线上错误数据。

(四)费用计算错误、资金账户金额错误、请求时间和数据库存储时间不一致。全量和准实时对账发现:由于系统在特殊场景、配置、计算或存储数据中出错,需要修改代码和数据。

三种大数据对账方法在处理数据的及时性、处理数据量、发如问题数量和维护成本四个方面的对比如下:

第一,及时性。全量对账,若核对报错,第二天才能发现问题数据;增量对账,在1~2个小时可以发现问题数据;准实时数据对账,需对线上数据采集和同步,发现问题在15分钟内,时间效率上最优。

第二,数据量。离线对账可以对线上一天产生的全量数据对比,实验中对某贷款系统单表一天700万条的数据进行了对账;准实时对账,数据同步存在性能瓶颈,只能开放部分集群,采样1%,不能对数据进行全量对账。

第三,发现问题数量。实验中,全量对账方法发现问题最多为5个,增量对账发现2个,准实时最少为1个。准实时对账,采集到的数据量少,所以发现问题也少;增量对账,一些余额类的对账需要对跨时间段全量数据验证,增量数据对账无法完成,导致发现的问题较少;全量对账,采集到的数据量最全,余额类的对账功能可以完成,数据偏移最少,所以发现问题最多。

第四,维护成本。分布式金融系统异步交互,数据会产生偏移、消息延时大于1小时的现象,导致增量对账误报较多,增加人工排查成本。全量数据对账,数据偏移和消息延时大大减少。准实时对账,根据系统代码维护对账脚本,受到代码变更的影响,维护量适中。

综上,本文提出的金融大数据对账方法,可以很好地发现金融领域的数据问题,对问题数据进行及时处理,避免造成资金损失,保障金融系统质量,是金融系统可靠性的重要保障。但离线数据对账和准实时对账各有优缺点,工作中需要相互结合、相互补充,这增加了开发人员的工作量、不同对账脚本维护和问题排查的成本,这是下一步工作需要解决的问题。

猜你喜欢

全量账务账单
成都市温江区全力推进医保全量数据采集试点工作
账单式小康
账单式小康
金融终端应用系统账务风险防范设计
浅谈电力企业电费账务管理工作
又至一年“账单”发布时
土壤重金属污染调查与评估的误区及其改进方法
闽南妈妈的“生娃”账单
麦秸全量还田下氮肥运筹对水稻产量及其产量构成的影响
水稻冠层光谱变化特征的土壤重金属全量反演研究