基金交易清算方法、装置、设备及计算机可读存储介质与流程

文档序号:14348133阅读:216来源:国知局
基金交易清算方法、装置、设备及计算机可读存储介质与流程

本发明涉及互联网金融技术领域,尤其涉及一种基金交易清算方法、装置、设备及计算机可读存储介质。



背景技术:

随着经济的发展与进步,人们的生活水平越来越高,越来越多的人通过货币基金的方式对自己的财产进行管理,因此,基金交易量越来越大,对基金交易平台的性能要求越来越高。

ta(transferagent)系统,即中国结算公司开放式基金登记结算系统,用于登记投资者在上海证券账户或者深圳账户内的基金份额,目前市场上的恒生ta系统和金证ta系统都是使用传统分布式系统的分表分库的技术架构去满足大数据量,但是随着业务需求的提高,架构需要不断更改来进一步分表分库以满足新的需求,目前恒生ta系统和金证ta系统的数据容量大概在百万级,无法满足大数据量的业务需求,分表分库的数据存储方式,在清算过程中需要处理完一个表的数据才能进行下一个表的数据的处理,处理时间长,业务处理效率低下。



技术实现要素:

本发明实施例提供了一种基金交易清算方法、装置、设备及计算机可读存储介质,能够有效地清算数据量巨大的基金交易。

第一方面,本发明实施例提供了一种基金交易清算方法,该方法包括:

向hadoop平台导入新增的若干基金交易数据;

根据所述若干基金交易数据的基金特性对所述若干基金交易数据进行划分,将划分后的所述若干基金交易数据分别保存在hadoop平台对应的数据分区内;

将所述数据分区内的所述基金交易数据导入spark平台的rdd分区,所述rdd分区与所述数据分区一一对应;

将所述rdd分区内的所述基金交易数据均匀分配至若干清算任务;

基于分布式计算对所述若干清算任务进行处理,以完成对所述基金交易数据的清算。

第二方面,本发明实施例还提供了一种基金交易清算装置,该装置包括用于执行上述的基金交易清算方法的单元。

第三方面,本发明实施例还提供了一种基金交易清算设备,所述设备包括存储器,以及与所述存储器相连的处理器;

所述存储器,用于存储实现基金交易清算方法的程序数据;

所述处理器,用于运行所述存储器中存储的程序数据,以执行如上述第一方面所述的方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序数据,所述一个或者一个以上程序数据可被一个或者一个以上的处理器执行,以实现上述第一方面所述的方法。

本发明实施例提供一种基金交易清算方法、装置、设备及计算机可读存储介质,该方法包括:向hadoop平台导入新增的若干基金交易数据;根据所述若干基金交易数据的基金特性对所述若干基金交易数据进行划分,将划分后的所述若干基金交易数据分别保存在hadoop平台对应的数据分区内;将所述数据分区内的所述基金交易数据导入spark平台的rdd分区,所述rdd分区与所述数据分区一一对应;将所述rdd分区内的所述基金交易数据均匀分配至若干清算任务;基于分布式计算对所述若干清算任务进行处理,以完成对所述基金交易数据的清算。本发明通过分布式存储的存储模式存储基金交易数据,利用分布式计算的计算模式清算基金交易,支持的基金交易数据量可达千万级别,数据容量大,同时可以有效地提高基金交易数据的清算效率;当数据量不断增大,不需要更改数据架构,只需要对数据进行更多的分区,增加相应的计算节点即可,因此数据层可平行扩容,同时成本与数据量是反向线性关系,数据量越大,清算设备的运维成本越低。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种基金交易清算方法的流程示意图;

图2是本发明实施例提供的一种基金交易清算方法的子流程示意图;

图3是本发明实施例提供的一种基金交易清算方法的另一子流程示意图;

图4是本发明实施例提供的一种基金交易清算方法的另一流程示意图;

图5是本发明实施例提供的一种基金交易清算方法的另一流程示意图;

图6是本发明实施例提供的一种基金交易清算装置的单元结构示意框图;

图7是本发明实施例提供的一种基金交易清算装置的子单元结构示意框图;

图8是本发明实施例提供的一种基金交易清算装置的另一子单元结构示意框图;

图9是本发明实施例提供的一种基金交易清算装置的另一子单元结构示意框图;

图10是本发明实施例提供的一种基金交易清算装置的另一单元结构示意框图;

图11是本发明实施例提供的一种基金交易清算设备的示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

也应当理解,尽管术语第一、第二等可以在此用来描述各种元素,但这些元素不应该受限于这些术语,这些术语仅用来将这些元素彼此区分开。

图1为本发明实施例提供的一种基金交易清算方法的流程示意图,如图1所示,该方法包括步骤s101~s104。

s101,向hadoop平台导入新增的若干基金交易数据。

每个基金账户提交一笔基金交易则新增一条基金交易数据,每一条新增的基金交易数据包括基金账号、账户名称、交易时间、申购或赎回份额等。这些基金交易数据以文件格式或消息队列格式通过一个总的接口导入到hadoop平台。

s102,根据所述若干基金交易数据的基金特性对所述若干基金交易数据进行划分,将划分后的所述若干基金交易数据分别保存在hadoop平台对应的数据分区内。

基金交易数据的数量庞大,需要将这些基金交易数据划分,进行分布式存储,对基金交易数据进行划分,即将所有的基金交易数据分成多个数据块,每个数据块中包含的数据量接近,一个数据块对应存储在hadoop平台的一个数据分区中。

利用哈希算法在在hadoop平台上对数据进行分布式存储,可支持和保存巨大量的数据量。

基金账号是账户的唯一标识号,因此可将基金账号作为基金特性。

如图2所示,该步骤s102包括以下子步骤:

s1021,分别对每个基金账号进行哈希处理,得到每条基金交易数据对应的哈希值,所述哈希值为一串数字。

s1022,分别将每条基金交易数据的哈希值的所有数字各自相加得到和。

s1023,将所述和除以预设数得到余数,其中,所述预设数为数据分区的总数。

s1024,将所述每条基金交易数据保存在所述余数对应的hadoop平台的数据分区内。

在hadoop平台上预先划分好一定数量(即所述预设数)用于保存数据的数据分区,通过哈希算法将基金交易数据进行哈希分区,将基金交易数据保存在hadoop平台对应的数据分区内。

例如,数据分区总数设置为48个,则余数可为0-47,那么,余数0对应的基金交易数据保存在1分区,余数1对应的金交易数据保存在2分区,以此递增,余数47对应的基金交易数据保存在48分区。在本发明实施例中,分区数字仅只是为了区别哪些基金交易数据保存在哪个数据分区,不代表数据分区具体是第几个。

在hadoop平台上利用哈希算法进行数据分区可以用来支持和保存大量数据,这种分布式存储的存储模式,支持的数据量可达千万级别,每个分区的数据可以同时被处理,因此支持高并发的业务模式。

s103,将所述数据分区内的所述基金交易数据导入spark平台的rdd分区,所述rdd分区与所述数据分区一一对应。

spark平台分布式处理数据的原理大致为:spark平台在处理数据前需要对数据进行分区(即划分出若干rdd分区),然后将rdd分区中的数据分配到设定好的任务中去处理,各个任务可并行处理,效率非常高。

本发明实施例中,spark平台的rdd分区与hadoop平台的数据分区一一对应,rdd分区对应存储hadoop平台的数据分区的基金交易数据。

spark平台的rdd分区与hadoop平台的数据分区对应设置,在对spark平台进行分区时即可相应地划分出rdd分区,不需要额外考虑rdd分区的分区思路。

s104,将所述rdd分区内的所述基金交易数据均匀分配至若干清算任务。

将基金交易数据分成若干个清算任务去处理,多个清算任务可并发进行,提高清算效率。

s105,基于分布式计算对所述若干清算任务进行处理,以完成对所述基金交易数据的清算。

spark平台连接多个计算节点,基于分布式计算,将所有基金交易数据分配到不同的计算节点进行基金交易的清算。

如图3所示,该步骤s105包括以下子步骤:

s1051,将所述若干清算任务动态均匀地分配到多个计算节点。

s1052,获取清算逻辑程序。

s1053,利用所述多个计算节点根据所述清算逻辑程序对所述若干清算任务中的基金交易数据进行清算。

根据每个计算节点剩余的未处理任务可以判断计算节点的处理速度,进而可以判断计算节点的效率,将所述若干清算任务动态均匀地分配到所述若干计算节点,指的是在处理任务的过程中,根据任务被处理的效率动态地改变计算节点的待处理任务的数量,尽可能地使每个节点在相当长的一段时间内保持均衡的待处理任务,从而极大地提高基金交易清算的效率。

在本发明实施例中,在每个计算节点处理各自最后一个任务时,还可以根据其任务被处理的效率动态地改变任务中未被处理任务的数据量,尽可能地使计算节点待处理数据的数量是均衡的,将处理速度慢的任务中的一部分数据转移到处理速度快的任务中,使得数据被处理的整体速度提升。

在本发明实施例中,如图4所示,步骤s1053中的清算流程具体包括以下子步骤:

s51,判断所述基金交易数据的基金账户是否为合法账户。

s52,若所述基金账户为合法账户,则判断所述基金交易数据是否合法。

s53,若所述基金交易数据合法,则计算所述基金账户的交易纯份额。

s54,根据所述基金交易纯份额计算所述基金账户的收益。

s55,将所述收益分配到所述基金账户。

基金账号包括新生账户和现存账户。对于新生账户,判断该新生账户是否符合开户规则,若符合,则该新生账户合法,将新生账户记入基金交易系统,若不符合,则该新生账户不合法,该账户所有的交易无效;对于现存账户,判断其是否发生过合法交易,若是,则该现存账户合法,其当前的交易有效,否则按新生账户处理。

判断基金账户为合法账户后,还需要判断其基金交易数据是否合法,基金交易数据中的申购份额或赎回份额不能为负数,否则基金交易数据不合法,该条交易无效。

同一个基金账户在同一工作日内可发起多次申购或多次赎回,因此需要对该基金账户当日合法的基金交易数据进行调整,计算其当日的交易纯份额,交易纯份额为纯申购份额或纯赎回份额,纯申购份额=当日申购份额-当日赎回份额,或纯赎回份额=当日赎回份额-当日申购份额。

不同的基金产品具有不同的收益计算算法,根据相应的收益算法计算该纯申购份额的收益,待到收益分配日时将收益分配到该基金账户即可。

一个基金账户下可能包括多个银行账户,产生的收益将会分配到该多个银行账户中,本发明采用尾差分配法,按每个银行账户申购的份额进行相应比例的收益分配,收益按申购份额分配到角后,收益中剩余的分按尾差进行分配,即按银行账户总金额中分(金额单位)的额度从高到底逐一循环均匀分配,每次分配一分,直至收益份额分配完。

对于某些基金,可以自动将定期转为活期,当申购期到了之后用户若不赎回则自动转为活期,因此,对于这类产品,基金清算流程还可以包括定期转活期的的过程,即申购到期后(收益分配也已完成),系统自动产生一条基金交易数据(定期转为活期的业务),该数据也作为新增的基金数据保存在hadoop平台对应的数据分区内,spark平台后续将清算比交易。

在其他发明实施例中,如图5所示,步骤s105之后还包括s106:将清算结束后的清算结果保存在hadoop平台的所述基金交易数据对应的数据分区。

基金交易数据和清算流程是通过内存和文件读写进行交互,每个清算阶段的处理结果写入内存或者hadoop平台中,同时下一个阶段的清算流程需要从内存或者hadoop平台中读出上一阶段的处理结果继续处理直至清算结束,最后的清算结果保存在hadoop平台的该基金交易数据对应的数据分区内。

hadoop平台的各个数据分区内的数据每天根据业务更新,一基金账户每一次的基金交易数据和对应的清算结果均保存在hadoop平台的同一个数据分区内,数据分区内的数据在原数据的基础上叠加,新增的基金交易数据和清算结果不会被覆盖,一旦发生业务错误需要业务重跑的情况,可以及时找到原来的数据进行业务重跑,因此具有容错性。

本发明实施例的基金交易清算方法,通过分布式存储的存储模式存储基金交易数据,支持的基金交易数据量可达千万级别,数据容量大;利用分布式计算的计算模式清算基金交易,同时可以有效地提高基金交易数据的清算效率;当数据量不断增大,不需要更改数据架构,只需要对数据进行更多的分区,增加相应的计算节点即可,因此数据层可平行扩容;同时成本与数据量是反向线性关系,数据量越大,清算设备的运维成本越低。

图6为本发明实施例提供的一种基金交易清算装置100的单元结构示意框图。该基金交易清算装置100包括第一导入单元101、数据分区单元102、第二导入单元103、分配单元104和清算单元105。

第一导入单元101,用于向hadoop平台导入新增的若干基金交易数据。

数据分区单元102,根据所述若干基金交易数据的基金特性对所述若干基金交易数据进行划分,将划分后的所述若干基金交易数据分别保存在hadoop平台对应的数据分区内。

第二导入单元103,用于将所述数据分区内的所述基金交易数据导入spark平台的rdd分区,所述rdd分区与所述数据分区一一对应。

分配单元104,用于将所述rdd分区内的所述基金交易数据均匀分配至若干清算任务。

清算单元105,用于基于分布式计算对所述若干清算任务进行处理,以完成对所述基金交易数据的清算。

所述基金交易数据包括基金账号,所述基金特性为所述基金账号。

如图7所示,所述数据分区单元102包括以下子单元:

哈希子单元1021,用于分别对每个基金账号进行哈希处理,得到每条基金交易数据对应的哈希值,所述哈希值为一串数字。

求和子单元1022,用于分别将每条基金交易数据的哈希值的所有数字各自相加得到和。

求余子单元1023,用于将所述和除以预设数得到余数,其中,所述预设数为数据分区的总数。

保存子单元1024,用于将所述每条基金交易数据保存在所述余数对应的hadoop平台的数据分区内。

如图8所示,所述清算单元105包括以下子单元:

分配子单元1051,用于将所述若干清算任务动态均匀地分配到多个计算节点。

获取子单元1052,用于获取清算逻辑程序。

清算子单元1053,用于利用所述多个计算节点根据所述清算逻辑程序对所述若干清算任务中的基金交易数据进行清算。

如图9所示,所述清算子单元1053包括以下子单元:

第一判断子单元51,用于判断所述基金交易数据的基金账户是否为合法账户。

第二判断子单元52,用于若所述基金账户为合法账户,则判断所述基金交易数据是否合法。

第一计算子单元53,用于若所述基金交易数据合法,则计算所述基金账户的交易纯份额。

第二计算子单元54,用于根据所述基金交易纯份额计算所述基金账户的收益。

分配子单元55,用于将所述收益分配到所述基金账户。

如图10所示,所述基金交易清算装置100还包括保存单元106,所述保存单元106用于将清算结束后的清算结果保存在hadoop平台的所述基金交易数据对应的数据分区。

基金交易清算装置100各个单元的具体描述可参考上述方法实施例,本发明实施例不做赘述。

上述基金交易清算装置100可以实现为一种计算机程序的形式,计算机程序可以在如图11所示的计算机设备上运行。

图11为本发明实施例提供的一种基金交易清算设备的示意性框图。该设备可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。

该设备为一种计算机设备200,包括通过系统总线201连接的处理器202、非易失性存储介质203、内存储器204和网络接口205。其中,该计算机设备200的非易失性存储介质203可存储操作系统2031和计算机程序2032,该计算机程序2032被执行时,可使得处理器202执行一种基金交易清算方法。该计算机设备200的处理器202用于提供计算和控制能力,支撑整个计算机设备200的运行。该内存储器204为非易失性存储介质203中的计算机程序2032的运行提供环境,该计算机程序2032被处理器202执行时,可使得处理器202执行一种基金交易清算方法。计算机设备200的网络接口205用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

处理器202运行非易失性存储介质203中的计算机程序2032,执行如下操作:

向hadoop平台导入新增的若干基金交易数据;根据所述若干基金交易数据的基金特性对所述若干基金交易数据进行划分,将划分后的所述若干基金交易数据分别保存在hadoop平台对应的数据分区内;将所述数据分区内的所述基金交易数据导入spark平台的rdd分区,所述rdd分区与所述数据分区一一对应;将所述rdd分区内的所述基金交易数据均匀分配至若干清算任务;基于分布式计算对所述若干清算任务进行处理,以完成对所述基金交易数据的清算。

所述基金交易数据包括基金账号,所述基金特性为所述基金账号。

处理器202还执行如下操作:

分别对每个基金账号进行哈希,得到每条基金交易数据对应的哈希值,所述哈希值为一串数字;分别将每条基金交易数据的哈希值的所有数字各自相加得到和;将所述和除以预设数得到余数,其中,所述预设数为数据分区的总数;将所述每条基金交易数据保存在所述余数对应的hadoop平台的数据分区内。

处理器202还执行如下操作:

rdd分区将所述若干清算任务动态均匀地分配到多个计算节点;获取清算逻辑程序;利用所述多个计算节点根据所述清算逻辑程序对所述若干清算任务中的基金交易数据进行清算。

处理器202还执行如下操作:

判断所述基金交易数据的基金账户是否为合法账户;若所述基金账户为合法账户,则判断所述基金交易数据是否合法;若所述基金交易数据合法,则计算所述基金账户的交易纯份额;根据所述基金交易纯份额计算所述基金账户的收益;将所述收益分配到所述基金账户。

处理器202还执行如下操作:

将清算结束后的清算结果保存在hadoop平台的所述基金交易数据对应的数据分区。

本领域技术人员可以理解,图11中示出的基金交易清算设备的实施例并不构成对基金交易清算设备具体构成的限定,在其他实施例中,基金交易清算设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,基金交易清算设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图11所示实施例一致,在此不再赘述。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序可被一个或者一个以上的处理器执行,以实现以下步骤:

向hadoop平台导入新增的若干基金交易数据;根据所述若干基金交易数据的基金特性对所述若干基金交易数据进行划分,将划分后的所述若干基金交易数据分别保存在hadoop平台对应的数据分区内;将所述数据分区内的所述基金交易数据导入spark平台的rdd分区,所述rdd分区与所述数据分区一一对应;将所述rdd分区内的所述基金交易数据均匀分配至若干清算任务;基于分布式计算对所述若干清算任务进行处理,以完成对所述基金交易数据的清算。

所述基金交易数据包括基金账号,所述基金特性为所述基金账号。

还实现以下步骤:

分别对每个基金账号进行哈希,得到每条基金交易数据对应的哈希值,所述哈希值为一串数字;分别将每条基金交易数据的哈希值的所有数字各自相加得到和;将所述和除以预设数得到余数,其中,所述预设数为数据分区的总数;将所述每条基金交易数据保存在所述余数对应的hadoop平台的数据分区内。

还实现以下步骤:

rdd分区将所述若干清算任务动态均匀地分配到多个计算节点;获取清算逻辑程序;利用所述多个计算节点根据所述清算逻辑程序对所述若干清算任务中的基金交易数据进行清算。

还实现以下步骤:

判断所述基金交易数据的基金账户是否为合法账户;若所述基金账户为合法账户,则判断所述基金交易数据是否合法;若所述基金交易数据合法,则计算所述基金账户的交易纯份额;根据所述基金交易纯份额计算所述基金账户的收益;将所述收益分配到所述基金账户。

还实现以下步骤:

将清算结束后的清算结果保存在hadoop平台的所述基金交易数据对应的数据分区。

所述计算机可读存储介质可以是前述设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1