一种金融资产交易数据处理方法、系统及可读介质
技术领域
本发明涉及金融数据处理技术领域,特别是指一种金融资产交易数据处理方法、系统及可读介质。
背景技术
近年来,银行、信托、证券、保险、基金等各类机构纷纷入局资产管理业务,并且随着相关政策的逐步出台,类似期货公司的金融机构也加入竞争,面对日益增大的金融资产规模以及庞大繁杂的交易数据,对相应的系统的数据的实时性、可靠性、全生态性、以及标准化也提出了更高的标准。
现有的资产管理系统中交易模块是基于ORACLE数据库的C/S三层框架(应用客户端、中间件、以及后台),服务于基金、保险行业的系统,主要功能包含:交易管理、指令管理、投资决策、风险控制、日终清算、资金清算、组合管理、风险监控与处置等;
现有技术存在如下问题:
1)交易系统竖井式建设、交易数据分散、实现各异;传统的交易系统采用竖井式建设,随着业务的扩大,垂直竖井式架构越来越臃肿,系统代码量日益膨胀,在同一系统上协作的开发人员越来越多。基于垂直架构的协作效率越来越低,系统故障率越来越高。不同的业务子模块,子系统之间没有直接关联,导致交易流水数据分散且业务实现各不相同,数据结构难以统一,最终形成数据孤岛现象,同时也提高了下游子系统头寸、风控、估值、清算的对接的难度,通常扩展一个业务,就要重新制定对接接口,导致业务无法快速扩展及版本迭代。
2)交易系统采用传统的数据库模型越来越难以满足海量数据及时响应处理;随着金融行业的飞速发展,量化投资者、专业投资者以及散户群体的扩大,可以预见以后的交易数据是海量的,如何能及时高效的响应处理不同交易场所、不同业务、不同系统的交易数据将是一个难点。基于大型关系型数据库(Oracle)开发的系统,往往采用主备库实现读写操作分离,提高性能,增加容灾,但是对于单表高达千万级别的数据量,IO密集的读写操作在并发大的情况下依旧存在性能瓶颈。竖井式垂直应用系统链路较长,处理复杂业务时,往往要和数据库进行多次交互,这样无形中就增加了单笔延时,继而影响到了系统的并发吞吐量,同时对于盘后交易清算数据的处理,数据迁移,数据归历史往往花费较长时间,这样也变相的增加客户的运维成本以及运维人员的时间成本。竖井式架构是基于关系型数据库,随着业务对性能有要求,这种扩展只能提升环境硬件性能,硬件性能有瓶颈且硬件性能越高,采购成本越大,这种架构无法通过集群扩展的方式增加性能。
3)交易数据具有封闭性,难以在不同的金融资产管理系统中汇集统一;传统的交易数据一般是依托本资产管理系统,往往是其中的一个模块或者是子系统,处理的数据一般是服务于本系统的,这样形成的交易数据信息的闭塞,在不同的金融资产管理系统中难以汇集统一,也由于交易数据分散导致无法统一对外提供,这样不利于金融资产交易平台的建设。
发明内容
本发明的主要目的在于克服现有技术中的上述缺陷,提出一种金融资产交易数据处理方法,针对金融领域内多源、全链路、全生态、标准化,实现高吞吐、低延迟、高性能,达到在海量数据下快速计算,积极响应,平滑扩展的目的。
本发明的技术方案:
一种金融资产交易数据处理方法,包括如下步骤:
获取金融资产交易数据;所述金融资产交易数据包括离线交易数据,日初对应在途交易数据;实时基础数据流,以及实时业务数据流;
离线交易数据以及日初对应在途交易数据,从交易系统的备库ORACLE同步数据到缓存层,再到关系型数据库中,在FLINK大数据平台缓存中构建多层数据表结构,所述多层数据表结构包括贴源层和数据细节层,将离线交易数据以及日初对应在途交易数据进行贴源层处理和数据细节层处理;对于日初对应在途交易数据,批处理日初对应在途交易数据的基础数据到REDIS缓存中;
实时基础数据流的实时变更采用CDC消息变更,通过消息中间件KAFKA至FLINK平台上的交易应用系统进行统一格式的适配、过滤、以及格式转换,并更新至REDIS缓存中;
实时业务数据流的实时变更采用CDC消息变更,通过消息中间件KAFKA至FLINK平台进行适配、消息过滤、事务聚合、业务识别以及业务标签分发,并进行业务标准转化,将业务标准转化后的接口数据根据不同业务转发到消息中间件KAFKA对应的主题下,并通过REDIS缓存中关联转化出日初对应在途交易数据的基础数据以及实时基础数据流的基础数据。
具体地,所述将离线交易数据以及日初对应在途交易数据进行贴源层处理和数据细节层处理,具体为:
贴源层处理,存放原始数据,直接加载原始日志、原始数据;
数据细节层处理,对贴源层数据进行清洗包括但不限于:去除空值、去除脏数据、去除超过极限范围的数据,维度退化,脱敏。
具体地,通过消息中间件KAFKA至FLINK平台上的交易应用系统进行适配、消息过滤、事务聚合、业务识别以及业务标签分发,并进行业务标准转化,具体为:
适配:根据创建的标准数据格式,对数据格式进行了统一的消息标准格式转换;其中关键字段包括但不限于操作类型op、事务号xid,修改前before,修改前主键before_key,用户名owner,表名name,时间戳jstime,修改后after,修改后主键after_key;
消息过滤:剔除数据,包括但不限于:操作类型和主键对应错误的数据,事务号xid为空的消息,操作类型op不满足条件的数据;
事务聚合:将事务号xid相同的数据进行聚合;且对于同一事务中,将同表同主键的单条数据的多次修改数据进行合并,保留首次和末次修改的数据在修改前before和修改后after字段内;
业务识别以及业务标签分发:对事务数据进行识别并根据具体的识别码进行标签分发到FLINK平台的侧输出流中;
业务标准转化:根据业务分类进行特定字段数据字典标准化和JSON格式化输出,所述业务分类包括但不限于交易所业务、网下业务、银行间业务、场外业务、结算类和投资端;业务下对应的操作包括但不限于:指令、委托、成交、交收;
具体地,所述事务聚合中将事务号xid相同的数据进行聚合,具体为:
在消息有效且连续的发送的情况下,当收到后一消息事务号变更,即认为前一事务数据进行收集完毕,触发队列压出数据;
当消息不是在连续高频率发送消息,即每个事务一系列消息发送之后有对应时间间隔等待的情况下,引入FLINK的定时器进行指定时间内将队列消息压出。
具体地,实时业务数据流处理中,还包括:
在FLINK大数据平台消息流转的过程中,开启轻量级的异步栅栏快照机制,保障断点恢复;
本发明实施例另一方面一种金融资产交易数据处理系统,包括如下:
数据获取单元:获取金融资产交易数据;所述金融资产交易数据包括离线交易数据,日初对应在途交易数据;实时基础数据流,以及实时业务数据流;
离线及日初数据处理单元:离线交易数据以及日初对应在途交易数据,从交易系统的备库ORACLE同步数据到缓存层,再到关系型数据库中,在FLINK大数据平台缓存中构建多层数据表结构,所述多层数据表结构包括贴源层和数据细节层,将离线交易数据以及日初对应在途交易数据进行贴源层处理和数据细节层处理;对于日初对应在途交易数据,批处理日初对应在途交易数据的基础数据到REDIS缓存中;
实时基础数据流处理单元:实时基础数据流的实时变更采用CDC消息变更,通过消息中间件KAFKA至FLINK平台的交易应用系统进行统一格式的适配、过滤、以及格式转换,并更新至REDIS缓存中;
实时业务数据流处理单元:实时业务数据流的实时变更采用CDC消息变更,通过消息中间件KAFKA至FLINK平台的交易应用系统进行适配、消息过滤、事务聚合、业务识别以及业务标签分发,并进行业务标准转化,将业务标准转化后的接口数据根据不同业务转发到消息中间件KAFKA对应的主题下,并通过REDIS缓存中关联转化出日初对应在途交易数据的基础数据以及实时基础数据流的基础数据。
具体地,所述离线及日初数据处理单元中,将离线交易数据以及日初对应在途交易数据进行贴源层处理和数据细节层处理,具体为:
贴源层处理,存放原始数据,直接加载原始日志、原始数据;
数据细节层处理,对贴源层数据进行清洗,包括但不限于:去除空值、去除脏数据、去除超过极限范围的数据,维度退化,脱敏。
具体地,所述实时基础数据流处理单元中,通过消息中间件KAFKA至FLINK平台交易应用系统进行适配、消息过滤、事务聚合、业务识别以及业务标签分发,并进行业务标准转化,具体为:
适配:根据创建的标准数据格式,对数据格式进行了统一的消息标准格式转换;其中关键字段包括但不限于操作类型op、事务号xid,修改前before,修改前主键before_key,用户名owner,表名name,时间戳jstime,修改后after,修改后主键after_key;
消息过滤:剔除数据,包括但不限于:操作类型和主键对应错误的数据,事务号xid为空的消息,操作类型op不满足条件的数据;
事务聚合:将事务号xid相同的数据进行聚合;且对于同一事务中,将同表同主键的单条数据的多次修改数据进行合并,保留首次和末次修改的数据在修改前before和修改后after字段内;
业务识别以及业务标签分发:对事务数据进行识别并根据具体的识别码进行标签分发到FLINK平台的侧输出流中;
业务标准转化:根据业务分类进行特定字段数据字典标准化和JSON格式化输出,所述业务分类包括但不限于交易所业务、网下业务、银行间业务、场外业务、结算类和投资端;业务下对应的操作包括但不限于:指令、委托、成交、交收;
具体地,所述事务聚合中将事务号xid相同的数据进行聚合,具体为:
在消息有效且连续的发送的情况下,当收到后一消息事务号变更,即认为前一事务数据进行收集完毕,触发队列压出数据;
当消息不是在连续高频率发送消息,即每个事务一系列消息发送之后有对应时间间隔等待的情况下,引入FLINK的定时器进行指定时间内将队列消息压出。
具体地,实时业务数据流处理中,还包括:
在FLINK大数据平台的消息流转的过程中,开启轻量级的异步栅栏快照机制,保障断点恢复;
本发明又一实施例提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述一种金融资产交易数据处理方法步骤。
由上述对本发明的描述可知,与现有技术相比,本发明具有如下有益效果:
1)本发明提供了一种金融资产交易数据处理方法,包括:获取金融资产交易数据;所述金融资产交易数据包括离线交易数据,日初对应在途交易数据;实时基础数据流,以及实时业务数据流;离线交易数据以及日初对应在途交易数据,从交易系统的备库ORACLE同步数据到缓存层,再到关系型数据库中,在FLINK大数据平台缓存中构建多层数据表结构,所述多层数据表结构包括贴源层和数据细节层,将离线交易数据以及日初对应在途交易数据进行贴源层处理和数据细节层处理;对于日初对应在途交易数据,批处理日初对应在途交易数据的基础数据到REDIS缓存中;实时基础数据流的实时变更采用CDC消息变更,通过消息中间件KAFKA至FLINK平台的交易应用系统进行统一格式的适配、过滤、以及格式转换,并更新至REDIS缓存中;实时业务数据流的实时变更采用CDC消息变更,通过消息中间件KAFKA至FLINK平台的交易应用系统进行适配、消息过滤、事务聚合、业务识别以及业务标签分发,并进行业务标准转化,将业务标准转化后的接口数据根据不同业务转发到消息中间件KAFKA对应的主题下,并通过REDIS缓存中关联转化出日初对应在途交易数据的基础数据以及实时基础数据流的基础数据;本发明方法针对金融领域内多源、全链路、全生态、标准化,实现高吞吐、低延迟、高性能,达到在海量数据下快速计算,积极响应,平滑扩展的目的。
2)本发明提供的方法,实时流模式、日初批模式交易数据采用了FLINK大数据流批一体框架,对交易数据进行提取,转化,加载以及存储。
3)本发明提供的方法,FLINK能够分布式运行在上千个节点上,将一个大型计算任务的流程拆解成小的计算过程,然后将任务分布到并行节点上进行处理,具有好的扩展性;
4)本发明通过基于分布式快照技术,将执行过程中的状态信息定期保存中,也可以向分布式文件系统持久化存储,如果出现异常,能够从最近的检查点中进行任务的自动恢复,以确保数据在处理过程中的一致性;此外对于集群版本的升级、停机运维等操作,可以通过保存点技术将任务执行的快照持久化下来,升级好需要重启时,可以从之前保存点恢复原有的状态,使得任务继续运行,保存点技术可以让运维人员更好的管理和运维,从而减少返工成本及丢失重要信息的风险。
附图说明
图1为本发明实施例提供的一种金融资产交易数据处理方法流程图;
图2为本发明实施例提供的金融资产业务交易数据事务一致性处理流程图;
图3为本发明实施例提供的金融资产业务交易数据业务识别规则样例图;
图4为本发明实施例提供的金融资产业务交易数据模型图;
图5为本发明实施例提供的金融资产业务明细图;
以下结合附图和具体实施例对本发明作进一步详述。
具体实施方式
本发明方法针对金融领域内多源、全链路、全生态、标准化,实现高吞吐、低延迟、高性能,达到在海量数据下快速计算,积极响应,平滑扩展的目的。
如图1为本发明实施例提供的一种金融资产交易数据处理方法流程图,包括如下步骤:
S101:获取金融资产交易数据;所述金融资产交易数据包括离线交易数据,日初对应在途交易数据;实时基础数据流,以及实时业务数据流;
本发明实施例从恒生O32、彭博等交易系统,获取交易数据;
S102:离线交易数据以及日初对应在途交易数据,从交易系统的备库ORACLE同步数据到缓存层,再到关系型数据库中,在FLINK大数据平台缓存中构建多层数据表结构,所述多层数据表结构包括贴源层和数据细节层,将离线交易数据以及日初对应在途交易数据进行贴源层处理和数据细节层处理;对于日初对应在途交易数据,批处理日初对应在途交易数据的基础数据到REDIS缓存中;
离线、日初加载资讯数据、在途未完成的业务数据:离线、日初处理是构建数据仓库模型的思想,在上游交易中,数据仓库构建了数据贴源层ODS和数据明细层DWD两层结构,ODS层也叫原始数据层,存放原始数据,直接加载原始日志、数据、数据保持原貌不做处理,DWD层,对ODS层数据进行清洗(去除空值、脏数据、超过极限范围的数据),维度退化,脱敏等功能,将处理好的数据持久化在关系型数据库或者加载到缓存中方便使用,数据分层可以达到分部处理,数据解耦的目的,方便管理数据的目的。
离线和日初在时效性不高的情景下,离线模式采用了DolphinScheduler(海豚调度平台)+HIVE+ORACLE的方式来处理海量数据,日初对于资讯数据的缓存加载采取了DolphinScheduler(海豚调度平台)+FLINK+REDIS的模式,将日间实时用到的资讯数据提前加载到缓存当中去,这里的离线交易模型和日间实时统一一致,下游也无需进行适配,大大提高了系统间的兼容性和通用性,方便下游统一清算、统一风控、统一估值、统一头寸等业务处理。
日初对应在途交易数据的批处理,如多日指令、多日执行确认数据,以及对于资讯基础数据的批处理,将业务标准化后的数据分层然后持久化到关系型数据库中,对于基础的资讯数据批处理到缓存中(REDIS),且设定缓存的过期时间。
S103:实时基础数据流的实时变更采用CDC消息变更,通过消息中间件KAFKA至FLINK平台的交易应用系统中进行统一格式的适配、过滤、以及格式转换,并更新至REDIS缓存中;
S104:实时业务数据流的实时变更采用CDC消息变更,通过消息中间件KAFKA至FLINK平台的交易应用系统中进行适配、消息过滤、事务聚合、业务识别以及业务标签分发,并进行业务标准转化,将业务标准转化后的接口数据根据不同业务转发到消息中间件KAFKA对应的主题下,并通过REDIS缓存中关联转化出日初对应在途交易数据的基础数据以及实时基础数据流的基础数据。
具体地,通过消息中间件KAFKA至FLINK平台的交易应用系统中进行适配、消息过滤、事务聚合、业务识别以及业务标签分发,并进行业务标准转化,具体为:
适配:由于市面上有很多不同的CDC工具,不同厂商提供的Kafka数据格式不一样,常见的CDC数据同步工具有I2英方、HVR、开源的Debezium。本发明对目前常见的数据格式进行了统一的消息标准转换,常见的工具对应本发明的一种适配器,形成了本发明系统标准的数据格式。
标准数据格式详见表1,本发明提供标准数据格式,对其他CDC工具格式字段进行标准化,关键字段有操作类型op、事务号xid,修改前before,修改前主键before_key,用户名owner,表名name,时间戳jstime等关键字段;从而对不同通道进来的数据可以有效的适配和兼容。
表1 CDC工具数据格式对比表
消息过滤:数据同步CDC消息中,对于来源消息的本身质量问题,本发明有严格的校验,对于不满足条件的消息,进行了日志记录,消息过滤,目前消息过滤了操作类型op不满足条件的数据,例如对数据表的创建create操作,表字段的更新,增加,删除的alter操作,整表记录删除的truncate操作进行识别和过滤。消息对于事务号XID为空的消息进行了剔除;消息的after_key和before_key对op有着对应关系,对于操作类型和主键对应错误的数据进行了过滤。对质量较差的消息进行过滤,可以提高本发明的健壮性和容错性。
事务聚合:对于某项交易业务来说,单条数据的数据变更是毫无价值的,因为单条数据能承载的信息是片面和局限的,无法通过单条数据对某一金融资产行为做出准确的判断和解读,因此本发明有对同一事务递交的数据进行有效的聚合。本发明实施例公开的金融资产业务交易数据事务一致性处理详见图2,FLINK的kafka连接器算子在单一消息进行适配、过滤之后,进入事务聚合算子进行同一事务的有效聚合,这里利用消息字段中的XID字段进行聚合,因为一开始无法判断出同一事务下有多少条消息,所以直接收集对应的消息个数达到目的,本发明采用两种触发机制来聚合事务,1.在消息有效且连续的发送的情况下,当收到后一消息事务号变更,即认为前一事务数据进行收集完毕,触发队列压出数据。2.当消息不是在连续高频率发送消息,即每个事务一系列消息发送之后有对应时间间隔等待的情况下,我们聚合器引入了FLINK的定时器装置进行指定时间内将队列消息压出的操作。两种机制保证数据尽可能的完整的聚合在同一事务内。
这里的事务聚合还进行有效的合并操作,例如同一事务内,同表同主键的单条数据多次修改的情况下,我们还对多条数据进行合并的操作,保留首次和末次修改的数据在before和after内,将多次修改的多条相同数据,在事务聚合内又进行了一次数据合并,这样减小数据量的情况下,还进行了数据质量的完善,且对下一步骤业务识别进行了一次数据整理,这样是合理且必须的,由于有特殊业务的存在,后面也引进了白名单对于特殊业务不合并的处理环节;
业务识别以及业务标签分发:在业务识别分发操作之前的数据模型处理操作是通用的,本发明的业务识别分发器,对于特定对接系统和特定业务是个性化。因此,这里的业务识别分发器采用配置插件式的开发模式进行的。本发明实施例公开的金融资产业务交易数据业务识别规则样例图处理详见图3,将一系列的识别规则匹配,定义在配置中,对于同一事务中的主表的字段进行筛选匹配,等级较高的规则level具有优先识别权利,规则可以填写多个联合还是互斥指定条件,对某一事务数据进行识别询价1、指令2、委托3、成交4、交收5以及识别更细的操作,例如201代表指令下达、301委托下达、401代表成交确认等识别码,根据具体的识别码进行标签分发到FLINK平台的侧输出流中,分流的同时也增加后续算子的并发处理能力;
业务标准转化:在业务识别分发器之后是业务标准转换器,这里是对具体业务进行标准的统一建模处理,
本发明实施例公开的金融资产业务交易数据业务标准转换模型处理详见图4,本发明将市面上常见的金融业务大致分为交易所业务、网下业务、银行间业务、场外业务、结算类、投资端等,在具体的业务下和不同的参与人下对基金产品、资产单元、投资组合多维度下,业务细节如图5所示;将对应的行为操作大致归为指令(交易所指令、网下指令、银行间指令、场外指令),委托(交易所委托、银行间委托、网下执行确认、场外执行确认),成交(交易所成交、银行间成交、网下成交确认、场外成交确认、结算类成交、手工证券调整),交收(担保交收、非担保交收),对于同一类的业务进行了特定字段进行数据字典标准化和标准化JSON输出。例如busi_type业务类型字段对不同业务进行编码,交易所现券买入01000100、银行间现券买入01000200。
具体地,实时业务数据流处理中,还包括:将标准化后的接口数据根据不同业务转发到消息中间件KAFKA对应的主题下,同时将源数据、以及输出标准数据异步落库到关系型数据库当中留痕和重跑操作,在FLINK整个消息流转的过程中,除了开启了轻量级的异步栅栏快照(Asynchronous Barrier Checkpointing)机制,为交易中心数据流引擎提供容错和恢复备份。
交易系统中还将读取到的kafka主题、分区、偏移量、时间戳等信息记录在Zookeeper中,便于当天数据的重跑和恢复。
同时,也可以通过实时监听KAFKA进行实时API服务,如在客户端或网页端获取消息进行显示。
本发明实施例另一方面一种金融资产交易数据处理系统,包括如下:
数据获取单元:获取金融资产交易数据;所述金融资产交易数据包括离线交易数据,日初对应在途交易数据;实时基础数据流,以及实时业务数据流;
离线及日初数据处理单元:离线交易数据以及日初对应在途交易数据,从交易系统的备库ORACLE同步数据到缓存层,再到关系型数据库中,在FLINK大数据平台缓存中构建多层数据表结构,所述多层数据表结构包括贴源层和数据细节层,将离线交易数据以及日初对应在途交易数据进行贴源层处理和数据细节层处理;对于日初对应在途交易数据,批处理日初对应在途交易数据的基础数据到REDIS缓存中;
实时基础数据流处理单元:实时基础数据流的实时变更采用CDC消息变更,通过消息中间件KAFKA至FLINK平台的交易应用系统中进行统一格式的适配、过滤、以及格式转换,并更新至REDIS缓存中;
实时业务数据流处理单元:实时业务数据流的实时变更采用CDC消息变更,通过消息中间件KAFKA至FLINK平台的交易应用系统中进行适配、消息过滤、事务聚合、业务识别以及业务标签分发,并进行业务标准转化,将业务标准转化后的接口数据根据不同业务转发到消息中间件KAFKA对应的主题下,并通过REDIS缓存中关联转化出日初对应在途交易数据的基础数据以及实时基础数据流的基础数据。
具体地,所述离线及日初数据处理单元中,将离线交易数据以及日初对应在途交易数据进行贴源层处理和数据细节层处理,具体为:
贴源层处理,存放原始数据,直接加载原始日志、原始数据;
数据细节层处理,对贴源层数据进行清洗,包括但不限于:去除空值、去除脏数据、去除超过极限范围的数据,维度退化,脱敏。
具体地,所述实时基础数据流处理单元中,通过消息中间件KAFKA至FLINK平台的交易应用系统中进行适配、消息过滤、事务聚合、业务识别以及业务标签分发,并进行业务标准转化,具体为:
适配:根据创建的标准数据格式,对数据格式进行了统一的消息标准格式转换;其中关键字段包括但不限于操作类型op、事务号xid,修改前before,修改前主键before_key,用户名owner,表名name,时间戳jstime,修改后after,修改后主键after_key;
消息过滤:剔除数据,包括但不限于:操作类型和主键对应错误的数据,事务号xid为空的消息,操作类型op不满足条件的数据;
事务聚合:将事务号xid相同的数据进行聚合;且对于同一事务中,将同表同主键的单条数据的多次修改数据进行合并,保留首次和末次修改的数据在修改前before和修改后after字段内;
业务识别以及业务标签分发:对事务数据进行识别并根据具体的识别码进行标签分发到FLINK平台的侧输出流中;
业务标准转化:根据业务分类进行特定字段数据字典标准化和标准化JSON输出,所述业务分类包括但不限于交易所业务、网下业务、银行间业务、场外业务、结算类和投资端;业务下对应的操作包括但不限于:指令、委托、成交、交收;
具体地,所述事务聚合中将事务号xid相同的数据进行聚合,具体为:
在消息有效且连续的发送的情况下,当收到后一消息事务号变更,即认为前一事务数据进行收集完毕,触发队列压出数据;
当消息不是在连续高频率发送消息,即每个事务一系列消息发送之后有对应时间间隔等待的情况下,引入FLINK的定时器进行指定时间内将队列消息压出。
具体地,实时业务数据流处理中,还包括:
在FLINK消息流转的过程中,开启轻量级的异步栅栏快照机制,保障断点恢复。
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明实施例提供的一种金融资产交易数据处理方法;
在具体实施过程中,该计算机程序被处理器执行时可以实现图1对应的实施例中任何实施方式。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明提供了一种金融资产交易数据处理方法,包括:获取金融资产交易数据;所述金融资产交易数据包括离线交易数据,日初对应在途交易数据;实时基础数据流,以及实时业务数据流;离线交易数据以及日初对应在途交易数据,从交易系统的备库ORACLE同步数据到缓存层,再到关系型数据库中,在FLINK大数据平台缓存中构建多层数据表结构,所述多层数据表结构包括贴源层和数据细节层,将离线交易数据以及日初对应在途交易数据进行贴源层处理和数据细节层处理;对于日初对应在途交易数据,批处理日初对应在途交易数据的基础数据到REDIS缓存中;实时基础数据流的实时变更采用CDC消息变更,通过消息中间件KAFKA至FLINK平台的交易应用系统中进行统一格式的适配、过滤、以及格式转换,并更新至REDIS缓存中;实时业务数据流的实时变更采用CDC消息变更,通过消息中间件KAFKA至FLINK平台的交易应用系统中进行适配、消息过滤、事务聚合、业务识别以及业务标签分发,并进行业务标准转化,将业务标准转化后的接口数据根据不同业务转发到消息中间件KAFKA对应的主题下,并通过REDIS缓存中关联转化出日初对应在途交易数据的基础数据以及实时基础数据流的基础数据;本发明方法针对金融领域内多源、全链路、全生态、标准化,实现高吞吐、低延迟、高性能,达到在海量数据下快速计算,积极响应,平滑扩展的目的。
本发明提供的方法,实时流模式、日初批模式交易数据采用了FLINK大数据流批一体框架,对交易数据进行提取,转化,加载以及存储。
本发明提供的方法,FLINK能够分布式运行在上千个节点上,将一个大型计算任务的流程拆解成小的计算过程,然后将任务分布到并行节点上进行处理,具有好的扩展性;
本发明通过基于分布式快照技术,将执行过程中的状态信息定期保存中,也可以向分布式文件系统持久化存储,如果出现异常,能够从最近的检查点中进行任务的自动恢复,以确保数据在处理过程中的一致性;此外对于集群版本的升级、停机运维等操作,可以通过保存点技术将任务执行的快照持久化下来,升级好需要重启时,可以从之前保存点恢复原有的状态,使得任务继续运行,保存点技术可以让运维人员更好的管理和运维,从而减少返工成本及丢失重要信息的风险。
上述仅为本发明的具体实施方式,但本发明的设计构思并不局限于此,凡利用此构思对本发明进行非实质性的改动,均属于侵犯本发明保护范围的行为。