一种用于金融资产计算的数据组织前置的增量计算方法技术

技术编号:39723435 阅读:10 留言:0更新日期:2023-12-17 23:28
本发明专利技术提供了一种用于金融资产计算的数据组织前置的增量计算方法,基于

【技术实现步骤摘要】
一种用于金融资产计算的数据组织前置的增量计算方法


[0001][0002]本专利技术涉及数据处理领域,尤其是一种在特定领域下数据实时计算的处理方法,具体为一种用于金融资产计算的数据组织前置的增量计算方法


技术介绍

[0003][0004]随着当今大数据技术的飞速发展,金融领域需要处理的数据呈指数型增长,而这些数据具有高度变化性与不确定性,如何在海量数据中高效进行实时性分析对于行业决策和发展至关重要

[0005]当前大数据的处理模式大致分为批处理和流处理两种模式

批处理模式指的是将一定量的数据集合成一个数据批次,通过批量处理加载到下游系统,常用于对历史数据的分析;流处理模式指的是将数据作为无界集合,以流水线方式动态处理数据,常用于对市场变化数据的实时响应

[0006]然而,传统的金融资产计算方法采用批处理全量数据的方式进行计算,造成冗余数据处理,进而导致实时处理速度过慢的问题;而流处理的方式会造成数据拥塞,进而导致处理结果乱序甚至丢失的问题


技术实现思路

[0007][0008]为了克服现有技术的不足,本专利技术提供一种用于金融资产计算的数据组织前置的增量计算方法

针对目前金融资产计算方法存在实时处理速度过慢以及处理结果乱序或丢失的问题,本专利技术主要基于
Flink、Kafka

Ignite
等开源系统,构建了一种用于金融资产计算的数据组织前置的增量计算方法,其具有很高的业务价值和使用意义

金融资产计算的数据组织前置的增量计算方法,将数据组织功能和数据计算功能松耦合,使用
Flink
滚动窗口方法保证了数据组织结果顺序的正确性,并且提供秒级的可扩展的数据处理能力,从而提升实时处理速度

[0009]本专利技术解决其技术问题所采用的技术方案的具体步骤如下:
[0010]步骤1:生成相关数据,并存储在对应的系统缓存中;
[0011]步骤2:在分布式计算引擎
Flink
中,每间隔
X
秒生成一个在0‑
M
范围内随机的市场曲线序号
s、
市场曲线对象
t
和表示生成时间的时间戳
timestamp

[0012]将市场曲线序号
s
和表示生成时间的时间戳
timestamp
封装成复合市场曲线序号对象,推送到分布式消息队列系统
Kafka
中,最后顺序扫描
Ignite
的缓存
Curve
中所有的键,若某键等于市场曲线序号
s
,则将此键对应的值更新为市场曲线对象
t

[0013]步骤3:首先在
Flink
中启动滚动窗口,窗口大小设置为
T
秒,窗口与窗口之间的偏移量为0,其中
T
为大于
X
的正整数;
[0014]然后从
Kafka
中获取复合市场曲线序号对象,由于复合市场曲线序号对象间隔
X

到来一次,因此在同一滚动窗口中有一到多个复合市场曲线序号对象;每当一个窗口准备关闭时,将该窗口获取到的所有复合市场曲线序号对象中的时间戳依次与当前系统时间进行比较,如果复合市场曲线序号对象中的时间戳与当前系统时间的差值小于等于
T
秒,即认为此复合市场曲线序号对象的到来足够实时,能被后续计算,并将能被后续计算的复合市场曲线序号对象中的市场曲线序号存储在待计算曲线集合
c
中,如果复合市场曲线序号对象中的时间戳与当前系统时间的差值大于
T
秒,则不存储,其中待计算曲线集合
c
只存储当前窗口的市场曲线序号,当下一窗口开启时,待计算曲线集合
c
先清空,并获取新一批的市场曲线序号;
[0015]由于集合有无法存在重复元素的性质,因此当有多个相同的市场曲线序号需要存储在待计算曲线集合
c
时,只在待计算曲线集合
c
中存储一个市场曲线序号,避免后续短时间重复处理相同数据;
[0016]步骤4:首先从
Ignite
的缓存
RelationCurveToProperty
中获取正向映射关系结构,顺序扫描正向映射关系结构中所有的键,若某键等于待计算曲线集合
c
中的市场曲线序号,则获取此键对应的值,即正向映射对象,由于待计算曲线集合
c
有多个市场曲线序号,因此获取到的正向映射对象为多个,将正向映射对象里的金融资产序号集合合并成待计算资产集合
d
,当下一窗口开启时,待计算资产集合
d
先清空,并获取新一批的金融资产序号,由于集合有无法存在重复元素的性质,若不同正向映射对象里的金融资产序号集合有相同的金融资产序号时,在待计算资产集合
d
中只存储一个金融资产序号;
[0017]步骤5:针对待计算资产集合
d
中的每一个金融资产序号,进行数据组织;
[0018]步骤6:从
Kafka
中获取复合交易变化对象,
Flink
调用金融资产计算包对复合交易变化对象进行计算,得到交易结果对象,将交易结果对象传输到下游系统进行进一步处理

[0019]所述步骤1中,首先通过循环方式依次生成0‑
M
范围内的市场曲线序号以及市场曲线对象,其中
M
为大于0的正整数,市场曲线序号和市场曲线对象的数量均是
M+1
个,并且市场曲线序号和市场曲线对象一一对应,将每个市场曲线序号作为键,每个市场曲线对象作为值,依次将键和值存储在分布式内存数据库
Ignite
的缓存
Curve
中;
[0020]其次通过循环方式依次生成0‑
N
范围内的金融资产序号以及金融资产对象,其中
N
为大于0的正整数,金融资产序号和金融资产对象的数量均是
N+1
个,并且金融资产序号和金融资产对象一一对应,将每个金融资产序号作为键,每个金融资产对象作为值,依次将键和值存储在
Ignite
的缓存
Property
中;
[0021]接着将每个市场曲线序号和此市场曲线序号关联的金融资产序号集合封装成
HashMap
类型的正向映射对象,其中正向映射对象的数量与市场曲线序号的数量相同,即一一对应,其中的关联关系任意定义,例如市场曲线序号
a
与金融资产序号
o、p、q
有关联,那么市场曲线序号
a
的金融资产序号集合本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种用于金融资产计算的数据组织前置的增量计算方法,其特征在于包括下述步骤:步骤1:生成相关数据,并存储在对应的系统缓存中;步骤2:在分布式计算引擎
Flink
中,每间隔
X
秒生成一个在0‑
M
范围内随机的市场曲线序号
s、
市场曲线对象
t
和表示生成时间的时间戳
timestamp
;将市场曲线序号
s
和表示生成时间的时间戳
timestamp
封装成复合市场曲线序号对象,推送到分布式消息队列系统
Kafka
中,最后顺序扫描
Ignite
的缓存
Curve
中所有的键,若某键等于市场曲线序号
s
,则将此键对应的值更新为市场曲线对象
t
;步骤3:首先在
Flink
中启动滚动窗口,窗口大小设置为
T
秒,窗口与窗口之间的偏移量为0,其中
T
为大于
X
的正整数;然后从
Kafka
中获取复合市场曲线序号对象,由于复合市场曲线序号对象间隔
X
秒到来一次,因此在同一滚动窗口中有一到多个复合市场曲线序号对象;每当一个窗口准备关闭时,将该窗口获取到的所有复合市场曲线序号对象中的时间戳依次与当前系统时间进行比较,如果复合市场曲线序号对象中的时间戳与当前系统时间的差值小于等于
T
秒,即认为此复合市场曲线序号对象的到来足够实时,能被后续计算,并将能被后续计算的复合市场曲线序号对象中的市场曲线序号存储在待计算曲线集合
c
中,如果复合市场曲线序号对象中的时间戳与当前系统时间的差值大于
T
秒,则不存储,其中待计算曲线集合
c
只存储当前窗口的市场曲线序号,当下一窗口开启时,待计算曲线集合
c
先清空,并获取新一批的市场曲线序号;由于集合有无法存在重复元素的性质,因此当有多个相同的市场曲线序号需要存储在待计算曲线集合
c
时,只在待计算曲线集合
c
中存储一个市场曲线序号,避免后续短时间重复处理相同数据;步骤4:首先从
Ignite
的缓存
RelationCurveToProperty
中获取正向映射关系结构,顺序扫描正向映射关系结构中所有的键,若某键等于待计算曲线集合
c
中的市场曲线序号,则获取此键对应的值,即正向映射对象,由于待计算曲线集合
c
有多个市场曲线序号,因此获取到的正向映射对象为多个,将正向映射对象里的金融资产序号集合合并成待计算资产集合
d
,当下一窗口开启时,待计算资产集合
d
先清空,并获取新一批的金融资产序号,由于集合有无法存在重复元素的性质,若不同正向映射对象里的金融资产序号集合有相同的金融资产序号时,在待计算资产集合
d
中只存储一个金融资产序号;步骤5:针对待计算资产集合
d
中的每一个金融资产序号,进行数据组织;步骤6:从
Kafka
中获取复合交易变化对象,
Flink
调用金融资产计算包对复合交易变化对象进行计算,得到交易结果对象,将交易结果对象传输到下游系统进行进一步处理
。2.
根据权利要求1所述的用于金融资产计算的数据组织前置的增量计算方法,其特征在于:所述步骤1中,首先通过循环方式依...

【专利技术属性】
技术研发人员:孟江华姜栋琛李磊崔文辉张枨昊陈群刘海龙金轲
申请(专利权)人:西北工业大学太仓长三角研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1