文/农信银资金清算中心有限责任公司 刘玉 新形势下数据资产成为农村中小金融机构重要资产党的十九大报告提出,围绕“产业兴旺、生态宜居、乡风文明、治理有效、生活富裕”二十字实施乡村振兴战略的总要求。“十四五”时期,三农工作重心已转向全面推进乡村振兴,加快中国特色农业农村现代化进程。2023年6月发布《关于金融支持全面推进乡村振兴 加快建设农业强国的指导意见》(以下简称《指导意见》)指出:“将推动健全多层次、广覆盖、可持续的现代农村金融服务体系,引导更多金融资源配置到乡村振兴重点领域和薄弱环节,为全面推进乡村振兴、加快建设农业强国提供更强有力的金融支撑”。 随着农村金融服务体系的逐步完善,农村中小金融机构得到了快速发展,重点体现为其客户数量和业务交易量的快速增加。如何有效利用好存量数据,使存量数据更好地支持业务发展,成为金融机构科技工作者的重要工作。数据资产已经成为农村中小金融机构的重要资产。大数据平台的建立,可以有效将存量数据用“活”,在反映企业发展状况、支持精准营销、防范金融风险等领域提供支持。作为大数据平台的数据源,存量数据的提供需要将各个平台的数据进行汇总传输。本课题以MySQL数据库为例,研究设计了异构数据同步软件平台,可将结构化数据库的数据转换为key-value存储的数据,为大数据平台提供数据源,为用户不同需求场景提供支持。 课题研究助力农村中小金融机构提升金融科技水平1. 变时——新形势下农村中小金融机构加快数字化转型。响应国家相关政策要求,“建立大数据服务体系,构建数据服务平台和服务接口,提升数据服务的易用性和便捷性,扩大数据服务的用户覆盖面”。中国银行业信息科技从上世纪70年代至今,经历了从手工处理的“信息孤岛”时代到互联互通的数字化、信息化、智能化时代发展历程。农村中小金融机构立足区域特点,不断提升服务理念,客户数量和交易数量得到了较快发展,随之而来的是数据存储量的快速增加。农村中小金融机构立足自身特点,加快数字化转型,建立大数据服务体系,通过大数据技术,更好地指引业务发展。同时,大数据平台的建立,可以设计更加复杂的风险模型,开发更加复杂的算法,更好地帮助金融机构和客户防范金融风险,助力金融业快速健康发展。 2. 变识——异构数据同步软件应用需求广泛。随着数据存储量的快速增加,需要将存量的数据用“活”。由于传统的银行信息系统数据库多采用关系型数据库,而大数据平台多采用key-value形式存储数据。如何将农村中小金融机构分散的系统,例如核心系统、理财系统、支付系统中的数据,通过抽取、转换、传输到大数据平台,是信息科技工作者的工作重点,具体体现为异构数据同步软件的应用需求快速增加。本课题以MySQL数据库为例,通过解析MySQL数据库的事务日志,可以使同步软件的源端和目标端解耦。同步软件的目标端数据库类型不依赖于源端的数据库类型。可以实现关系型数据库A到关系型数据库B的同步,以及关系型数据库到KAFKA消息队列的同步,实现异构数据库数据同步需求。同时,数据同步软件支持中间机部署模式,可以有效减少数据同步软件对于源端数据库的压力,满足用户多样的应用需求。 3. 变实——金融科技提升需要更好的异构数据同步软件。本课题研究的异构数据同步软件涉及功能需求和性能需求两部分。其中功能需求包含全量数据同步、全量断点续传、增量数据同步、增量断点续传,覆盖常用的字段类型,满足DML(数据操作语言)同步和DDL(数据库定义语言)同步。数据同步软件功能的齐全,可以满足客户多样的数据同步和数据分析需求,增加客户对于软件的满意度,更好地为大数据平台数据分析赋能。性能的提高需要同步软件源端日志的并发分析、目标端数据的并发入库,需要支持有主键表和无主键表的快速入库操作。随着农村中小金融机构的业务发展,数据量得到快速增加,尤其部分主要数据表在季度结息、年度决算等特殊时点,会产生大量数据操作,异构数据库同步软件必须满足高性能同步需求,才能实时为大数据平台提供数据源,以实现海量数据的快速分析能力。 MySQL数据库异构同步软件设计特点1. 用户“友好”,软件操作简易。本课题以MySQL数据库为例,研究设计的异构数据同步软件平台,操作简单,可快速完成软件部署。本异构数据同步软件平台支持一键安装部署,同步软件源端和目标端都有安装脚本,可以实现软件的一键安装,完成基础目录和运行脚本的创建。异构数据同步软件所有的配置都在配置文件中,修改配置文件即可完成软件的配置,每项配置都配套有详细说明,方便使用者快速理解参数用途。同时异构数据同步软件支持部分参数的动态修改,比如发现同步队列中的某张表需要修复时,只需要调整配置文件即可生效,不需要停启同步队列,减少修复产生的影响。本套异构数据同步软件配套监控软件平台,软件运行中的重要日志都会实时传输到监控平台,并进行分析展示。软件使用者只需要关注监控平台,即可实时了解同步软件运行状态。 2. 性能“友好”,软件同步性能高。如何实现大数据量的快速同步,是本套异构数据同步软件研究设计的重点。数据同步软件分为源端部分和目标端部分。数据同步软件源端包括日志抽取和日志分析两部分,需要实现日志抽取和日志分析的并发操作。日志抽取部分通过MySQL数据库提供的mysqlbinlog接口,实时从MySQL数据库抽取事务日志。源端部分通过日志的并发分析,提高了源端的数据分析效率。分析完成的事务日志数据,通过加解密、压缩、解压缩等操作,传输到目标端。目标端通过数据的并发入库提升数据写入效率。目标端程序首先将数据按特定格式写入内存,调用MySQL数据库的专用接口,并发写入到目标端数据库中。通过软件性能的不断提升优化,可以支持大数据量的数据传输需求,以实现银行季度结息、年度决算等特殊操作时点的数据同步需求。 3. 环境“友好”,软件部署灵活。MySQL异构数据同步软件采用解析源端事务日志的方式,软件设计分为三层,分为基础层、数据层、应用层。软件分为源端模块和目标端模块,其中源端模块分为日志处理模块和日志发送模块,目标端模块分为数据接收模块和数据装载模块。MySQL异构数据同步软件源端模块和目标端模块支持在不同服务器中独立部署,源端模块负责读取事务日志,解析日志内容并发送到目标端。目标端模块负责接收数据,将数据写入到目标端数据库。同时,MySQL异构数据同步软件支持源端模块部署在中间机上,在源端生产服务器资源较少的情况下,可以有效减少同步软件对于生产服务器的资源占用。MySQL异构数据同步软件支持“一对一”“一对多”“多对一”多种部署方式,“一对一”为传统的点对点数据同步(图1),“一对多”可实现数据快速分发(图2),“多对一”可实现不同数据源的数据汇总(图3),满足用户不同的软件部署需求。
4. 比对“友好”,配套数据比对程序。MySQL异构数据同步软件配套数据比对软件,随着农村中小金融机构交易量的增加、数据存储量不断增长,如何满足灵活的数据比对需求,满足大数据量表的快速比对需求,是数据比对软件设计的重点。本套数据比对软件以基础层、数据层、应用层三层架构设计为基础,不断提升数据比对效率,增强了数据比对的精准性,提升了数据验证的便捷性。MySQL异构数据同步软件支持多种数据比对需求,包括单表全字段比对、多表全字段比对、全库全字段比对、主键比对、过滤字段比对、条数比对等多种功能,同时通过软件的多线程设计,可满足大数据量表的数据比对需求。数据比对软件支持断点续传功能,最大限度减少程序意外中断的影响。数据比对软件可人性化展示比对结果,方便使用者快速定位到不一致的数据,提高数据校验效率。 数据同步软件实现模块1. 日志处理模块。MySQL异构数据同步软件日志处理模块包括日志抽取和日志解析两部分。MySQL异构数据同步软件通过MySQL数据库提供的mysqlbinlog接口,读取数据库事务日志,并将事务日志写入预先申请的内存中,直到申请的内存已满后停止抽取,待内存释放后,继续进行事务日志的抽取。日志解析部分负责完成日志内容的解析功能,日志分为日志头和用户操作日志两部分,日志解析部分首先从表字典中读取表的字段类型信息,根据字段类型获取数据内容信息。通过对事务日志内容的解析,只分析在配置文件中配置的同步表,过滤掉不用的日志内容,完成数据的打包,进一步减少数据同步软件对于带宽的影响。同时,MySQL异构数据同步软件日志处理模块支持断点续传功能,程序会将处理完成的日志编号实时记录在源端登记簿中,待程序中断重启后,可按照上次的中断点继续进行分析处理。 2. 日志发送模块。MySQL异构数据同步软件日志发送模块完成数据的压缩、加密、传输功能。日志处理模块将事务日志的日志内容处理完成后,按照特定格式进行存储,并打包为数据文件。MySQL异构数据同步软件首先将数据文件进行压缩,由于数据同步软件可以应用于异地灾备、数据迁移、数据汇总等多种场景,支持异地、同城、同机房等多种部署方式,如果数据同步软件为异地方式部署,将占用很多的带宽资源。而数据同步软件仅为异地数据中心众多应用的一种,对带宽的大量占用将影响其他应用数据的传输,所以数据同步软件的带宽占用量需要尽量降低。MySQL异构数据同步软件首先在日志分析部分,将不需要的日志内容排除,只保留需要的日志内容,再通过日志发送模块对数据文件进行压缩,最大限度减少带宽占用。 3. 数据接收模块。MySQL异构数据同步软件数据接收模块完成数据的接收、解密、解压缩功能。数据接收模块通过Socket通信协议与源端进行连接。数据接收模块接收到数据文件后,将数据文件写入已申请的内存中,进行数据文件的解密和解压缩操作。数据接收模块可根据目标端的不同类型,将数据按照特定格式进行转换。例如目标端为关系型数据库时,需要按照关系型数据库表的字段进行数据排列,再由数据装载模块完成数据库的入库操作。如果目标端格式为key-value格式,需要根据格式特点,对源端数据库中的数据进行转换排序。通过对源数据key-value格式的转换,再将数据通过KAFKA消息队列传输,为大数据平台提供数据源。同时,通过MySQL异构数据同步软件提供的“多对一”部署模式,可以将不同数据源的数据汇总到大数据平台, 实现传统数据库到大数据平台的汇总分析需求。 4. 数据装载模块。MySQL异构数据同步软件数据装载模块实现将内存中的数据文件,通过MySQL数据库提供的特定接口,将源端DML(数据操作语言)和DDL(数据库定义语言)等变化写入到目标端数据库中。数据装载模块支持根据特定需求的数据过滤、数据加工、数据转换,配套的同步软件监控程序可实时展示同步软件运行状态。由于源端应用多采用并发设计,部分数据表在季度结息、年度决算等特殊时点,会产生大量的变化。为提高目标端日志装载效率,满足系统相关RPO的指标需求,软件通过多线程并发设计,可以实现大数据量的快速写入。同时,目标端装载模块支持断点重启功能。每装载完一个数据文件,都会实时在目标端登记簿中进行记录,如果目标端程序发生异常中断,程序重启后会首先到登记簿中找到记录的数据文件号,根据数据文件号继续装载数据。 (此文刊发于《金融电子化》2025年2月上半月刊) |