一种基于金融数据增量计算的实时指标计算方法



1.本发明涉及到特定领域下数据增量计算的实时指标计算领域,具体为一种基于金融数据增量计算的实时指标计算方法。


背景技术:



2.近年来,随着大数据技术的不断发展和落地应用,形成了巨大规模的非结构化和半结构化数据,这些数据正以指数级方式增长。为了从海量互联网金融实时大数据中迅速且高效的挖掘出价值信息,已经成为了行业内的一个挑战。面对金融领域的海量异构大数据,指标计算的实时能力有待全面提升。因此构建一种基于金融数据增量计算的实时指标计算方法具有重要的现实意义和使用价值。
3.大数据的处理系统大概可分为批处理和流处理系统两类。批处理系统表示将数据汇聚成批,通过批量的预处理之后,加载到数据仓库中,旨在方便高性能离线实时查询,流处理系统表示为一个无限增长、没有边界的动态数据集合,可以对数据进行实时预处理。
4.本发明主要基于流处理技术的大数据实时指标计算方法,使用kafka、zookeeper等开源软件,综合应用了数据库日志分析、流处理等技术。但是现有技术的大数据实时指标计算方法是多种大数据技术综合的解决方案,造成技术组件繁琐和版本不易控制,使得后期维护和使用成本增加,而且现有技术实现指标计算存在计算结果有误差和响应速度慢的问题,无法实现指标的业务配置和应用的快速部署。


技术实现要素:



5.针对现有金融领域增量计算的实时指标计算存在计算结果有误差和响应速度慢的问题,本发明提出了一种基于金融数据增量计算的实时指标计算方法,大幅度减少了指标计算的误差,并且可以提供毫秒级数据实时指标计算能力,从而实现数据指标实时计算、快速部署应用以及降低后期维护成本。其包含以下步骤:
6.步骤1):获取指标模块中,首先从金融数据集中抽取出基础元数据,根据基础元数据来确定金融领域基础指标的相关信息,再根据抽取出的基础元数据和金融领域基础指标的相关信息确定金融复合指标所需的金融领域基础指标和本金融数据集依赖的基础元数据,最后再根据金融复合指标所需的金融领域基础指标和依赖的基础元数据获取金融量化指标。
7.步骤2):数据生产模块中,首先对数据指标、数据维度及其他元数据进行定义,并执行代码审核和测试运行等最佳数据工程实践,通过一系列优化操作来有效地执行数据派生宽表,并利用算法让程序可以自动修复从而保证数据质量,再设计一个版本控制数据定义,对数据集的修改进行保存;最后根据设计原则来进一步的约束我们生产出来的数据指标,包括用户指标属性和指标算子,定义的所述指标算子包括定义指标计算时使用的数据源、指标计算逻辑、指标计算类型等。
8.步骤3):实时指标计算模块中,首先获取到对指标进行定义之后的信息,采用自主
编写的脚本程序对数据库服务器的数据进行自动采集,实现实时监听,然后利用kafka消息队列和zookeeper协调系统对日志文件进行管理,保证日志能够被按顺序处理,并增加系统的鲁棒性,最后再对数据库进行实时在线处理,直接在上一步的计算结果基础进行当前的增、删、改操作,保证系统的毫秒级的实时计算能力。
9.进一步地,所述步骤1中,获取指标模块的具体方法包括:
10.步骤1.1,从金融数据集中抽取每个金融数据的属性,根据数据类型和更新频率等属性获得相应的基础元数据,然后根据基础元数据确定金融领域基础指标使用的基础元数据列表和对应的数据规范化等相关信息;
11.步骤1.2,根据抽取出的基础元数据和金融领域基础指标的相关信息确定金融复合指标所需的金融基本指标和该金融基本指标依赖的基础元数据;
12.步骤1.3,根据相关信息中的数据转换规则和金融复合指标所需的要求对基础数据进行转换来获得金融领域基础指标值,再根据相应的算法对金融领域基础指标值进行运算并结合本次金融领域基础指标值依赖的基础元数据获得金融量化指标;
13.进一步地,所述步骤2中,数据生产模块的具体方法包括:
14.步骤2.1,本发明在一个gitlab仓库中统一定义了关键业务指标、数据维度以及其他元数据,并执行最佳数据工程实践,如代码审核、测试运行,通过最大化数据重用和中间连接结果,来有效地执行数据派生宽表,再通过一个复杂的工作处理算法,让程序可以自动修复,保证数据质量;
15.步骤2.2,设计一个版本控制数据定义,对数据集的主要更改会自动记录和备份,并且基于使用的频率来决定保留还是弃用某部分数据集;
16.步骤2.3,根据标准化、一致性、高可用性等设计原则对数据指标进行约束,标准化要求在对数据进行定义的时候保证没有歧义,一致性要求数据始终是一致的,如果当前的金融业务场景进行变化,那么数据则会自动保存更新。高可用性则要求我们定义的数据指标可以适用于绝大多数场景。
17.进一步地,所述步骤3中,实时指标计算模块的具体方法包括:
18.步骤3.1,本发明采用自主编写的脚本程序对数据库服务器自动采集数据,实时监听和获取数据库日志文件,此方式响应速度快,可满足实时获取增量数据,且对服务器的cpu和内存资源占用少,对服务器的运行影响不大;
19.步骤3.2,利用kafka消息队列对日志文件进行消息管理,消息能够持久化存储到硬盘中,数据不容易丢失。kafka可以保存消息的进度及位置,可以自行定义起始点。该模型可以缓解日志产生速度快于消费速度的压力,使消费速度合理匹配生产速度,所以加入了kafka消息系统作为数据缓冲区;
20.步骤3.3,利用zookeeper协调系统提供分布式的锁服务和为分布式的系统提供故障恢复的支持,即使遭遇kafka宕机或者动态扩容都不会影响整个集的工作运行;
21.步骤3.4,接收数据库的日志消息进行解析,自动切分日志,识别日志类型,去除回滚等不改变数据的日志,只保留对数据库造成变动效果的日志操作,然后基于日志解析的一些结果,对插入、删除、更新的操作指令所影响的数据库表信息进行解析,获取指标计算所需的全部信息,将解析结果存储保存以方便下一步的指标计算;
22.步骤3.5,根据上述步骤的日志和指令解析的结果来自适应指标的计算逻辑,筛选
出实时计算所需信息后,对指令的类型进行不同的计算,对于插入指令,直接对上次计算结果基础直接进行添加操作,对于删除操作,直接对上次计算结果进行减少操作,对于更新操作,在日志中到需要操作的数据块,对其进行添加或者删除操作,然后将得到的最新的数据记录写入数据库中。
23.本发明提供的一种基于金融数据增量计算的实时指标计算方法,优点在于实现了特定领域的增量计算的实时指标计算方法,有效地解决了在实时指标计算中存在的计算结果有误差和响应速度慢的问题,本发明方法既能大幅度减少指标计算的误差,又能提供毫秒级数据实时指标计算能力,从而实现数据指标实时计算、快速部署应用以及降低后期维护成本。
附图说明
24.图1为本发明的一种基于金融数据增量计算的实时指标计算方法模型流程图;
25.图2为本发明的所提出的模块流程图;
26.图3为本发明所提出的实时指标计算方法流程图;
具体实施方式
27.为了使本发明的目的、技术方案和技术效果更加清楚,以下结合说明书附图和本发明实施例方式,对本发明作进一步详细说明。
28.针对现有金融领域增量计算的实时指标计算存在计算结果有误差和响应速度慢的问题,本发明提出了一种基于金融数据增量计算的实时指标计算方法,如图1所示,该方法包含以下步骤:
29.步骤1):获取指标模块中,首先从金融数据集中抽取出基础元数据,根据基础元数据来确定金融领域基础指标的相关信息,再根据抽取出的基础元数据和金融领域基础指标的相关信息确定金融复合指标所需的金融领域基础指标和本金融数据集依赖的基础元数据,最后再根据金融复合指标所需的金融领域基础指标和依赖的基础元数据获取金融量化指标,具体为:
30.在步骤1.1中,从金融数据集中抽取每个金融数据的属性,根据数据类型和更新频率等属性获得相应的基础元数据,然后根据基础元数据确定金融领域基础指标使用的基础元数据列表和对应的数据规范化等相关信息;
31.在步骤1.2中,根据抽取出的基础元数据和金融领域基础指标的相关信息确定金融复合指标所需的金融基本指标和该金融基本指标依赖的基础元数据;
32.在步骤1.3中,根据相关信息中的数据转换规则和金融复合指标所需的要求对基础数据进行转换来获得金融领域基础指标值,再根据相应的算法对金融领域基础指标值进行运算并结合本次金融领域基础指标值依赖的基础元数据获得金融量化指标,具体为:
33.步骤2):数据生产模块中,首先对数据指标、数据维度及其他元数据进行定义,并执行代码审核和测试运行等最佳数据工程实践,通过一系列优化操作来有效地执行数据派生宽表,并利用算法让程序可以自动修复从而保证数据质量,再设计一个版本控制数据定义,对数据集的修改进行保存;最后根据设计原则来进一步的约束我们生产出来的数据指标,包括用户指标属性和指标算子,定义的所述指标算子包括定义指标计算时使用的数据
源、指标计算逻辑、指标计算类型等,具体为:
34.在步骤2.1中,本发明在一个gitlab仓库中统一定义了关键业务指标、数据维度以及其他元数据,并执行最佳数据工程实践,如代码审核、测试运行,通过最大化数据重用和中间连接结果,来有效地执行数据派生宽表,再通过一个复杂的工作处理算法,让程序可以自动修复,保证数据质量;
35.在步骤2.2中,设计一个版本控制数据定义,对数据集的主要更改会自动记录和备份,并且基于使用的频率来决定保留还是弃用某部分数据集;
36.在步骤2.3中,根据标准化、一致性、高可用性等设计原则对数据指标进行约束,标准化要求在对数据进行定义的时候保证没有歧义,一致性要求数据始终是一致的,如果当前的金融业务场景进行变化,那么数据则会自动保存更新。高可用性则要求我们定义的数据指标可以适用于绝大多数场景。
37.步骤3):实时指标计算模块中,首先获取到对指标进行定义之后的信息,采用自主编写的脚本程序对数据库服务器的数据进行自动采集,实现实时监听,然后利用kafka消息队列和zookeeper协调系统对日志文件进行管理,保证日志能够被按顺序处理,并增加系统的鲁棒性,最后再对数据库进行实时在线处理,直接在上一步的计算结果基础进行当前的增、删、改操作,保证系统的毫秒级的实时计算能力,具体为:
38.在步骤3.1中,本发明采用自主编写的脚本程序对数据库服务器自动采集数据,实时监听和获取数据库日志文件,此方式响应速度快,可满足实时获取增量数据,且对服务器的cpu和内存资源占用少,对服务器的运行影响不大;
39.在步骤3.2中,利用kafka消息队列对日志文件进行消息管理,消息能够持久化存储到硬盘中,数据不容易丢失。kafka可以保存消息的进度及位置,可以自行定义起始点。该模型可以缓解日志产生速度快于消费速度的压力,使消费速度合理匹配生产速度,所以加入了kafka消息系统作为数据缓冲区;
40.在步骤3.3中,利用zookeeper协调系统提供分布式的锁服务和为分布式的系统提供故障恢复的支持,即使遭遇kafka宕机或者动态扩容都不会影响整个集的工作运行;
41.在步骤3.4中,本发明日志采集使用java插件完成,采用kafka、zookeeper等开源产品和组件完成消息管理、协调管理、实时计算等工作,具体为接收数据库的日志消息进行解析,自动切分日志,识别日志类型,去除回滚等不改变数据的日志,只保留对数据库造成变动效果的日志操作,然后基于日志解析的一些结果,对插入、删除、更新的操作指令所影响的数据库表信息进行解析,获取指标计算所需的全部信息,将解析结果存储保存以方便下一步的指标计算;
42.在步骤3.5中,根据上述步骤的日志和指令解析的结果来自适应指标的计算逻辑,筛选出实时计算所需信息后,对指令的类型进行不同的计算,对于插入指令,直接对上次计算结果基础直接进行添加操作,对于删除操作,直接对上次计算结果进行减少操作,对于更新操作,在日志中到需要操作的数据块,对其进行添加或者删除操作,然后将得到的最新的数据记录写入数据库中。
43.应当理解,本发明所描述的实施例仅仅属于本发明中实施例的一部分,并不是全部实施例。上述的具体实施方式仅仅是示意性的,而不是限制性的。在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利
要求及其等同物限定。

技术特征:


1.一种基于金融数据增量计算的实时指标计算方法,其特征在于,包含以下步骤:步骤1,获取指标模块中,首先从金融数据集finset中抽取出基础元数据e,根据基础元数据e来确定金融领域基础指标i的相关信息,再根据抽取出的基础元数据e和金融领域基础指标i的相关信息确定金融复合指标所需的金融领域基础指标i和本金融数据集finset依赖的基础元数据e,最后再根据金融复合指标所需的金融领域基础指标和依赖的基础元数据获取金融量化指标q;步骤2,数据生产模块中,首先对数据指标、数据维度及其他元数据进行定义,并执行代码审核和测试运行等最佳数据工程实践,通过一系列优化操作来有效地执行数据派生宽表,并利用算法让程序可以自动修复从而保证数据质量,再设计一个版本控制数据定义,对数据集的修改进行保存;最后根据设计原则来进一步的约束我们生产出来的数据指标,包括用户指标属性和指标算子,定义的所述指标算子包括定义指标计算时使用的数据源、指标计算逻辑、指标计算类型等;步骤3,实时指标计算模块中,首先获取到对指标进行定义之后的信息,采用自主编写的脚本程序对数据库服务器的数据进行自动采集,实现实时监听,然后利用kafka消息队列和zookeeper协调系统对日志文件进行管理,保证日志能够被按顺序处理,并增加系统的鲁棒性,最后再对数据库进行实时在线处理,直接在上一步的计算结果基础进行当前的增、删、改操作,保证系统的毫秒级的实时计算能力。2.如权利要求1所述的一种基于金融数据增量计算的实时指标计算的方法,其特征在于,所述步骤1具体包括:步骤1.1,从金融数据集中抽取每个金融数据的属性,根据数据类型和更新频率等属性获得相应的基础元数据,然后根据基础元数据确定金融领域基础指标使用的基础元数据列表和对应的数据规范化等相关信息;步骤1.2,出根据抽取出的基础元数据和金融领域基础指标的相关信息确定金融复合指标所需的金融基本指标和该金融基本指标依赖的基础元数据;步骤1.3,根据相关信息中的数据转换规则和金融复合指标所需的要求对基础数据进行转换来获得金融领域基础指标值,再根据相应的算法对金融领域基础指标值进行运算并结合本次金融领域基础指标值依赖的基础元数据获得金融量化指标。3.如权利要求1所述的一种基于金融数据增量计算的实时指标计算的方法,其特征在于,所述步骤2具体包括:步骤2.1,本发明在一个gitlab仓库中统一定义了关键业务指标、数据维度以及其他元数据,并执行最佳数据工程实践,如代码审核、测试运行,通过最大化数据重用和中间连接结果,来有效地执行数据派生宽表,再通过一个复杂的工作处理算法,让程序可以自动修复,保证数据质量;步骤2.2,设计一个版本控制数据定义,对数据集的主要更改会自动记录和备份,并且基于使用的频率来决定保留还是弃用某部分数据集;步骤2.3,根据标准化、一致性、高可用性等设计原则对数据指标进行约束,标准化要求在对数据进行定义的时候保证没有歧义,一致性要求数据始终是一致的,如果当前的金融业务场景进行变化,那么数据则会自动保存更新;高可用性则要求我们定义的数据指标可以适用于绝大多数场景。
4.如权利要求1所述的一种基于金融数据增量计算的实时指标计算的方法,其特征在于,所述步骤3具体包括:步骤3.1,本发明采用自主编写的脚本程序对数据库服务器自动采集数据,实时监听和获取数据库日志文件,此方式响应速度快,可满足实时获取增量数据,且对服务器的cpu和内存资源占用少,对服务器的运行影响不大;步骤3.2,利用kafka消息队列对日志文件进行消息管理,消息能够持久化存储到硬盘中,数据不容易丢失;kafka可以保存消息的进度及位置,可以自行定义起始点;该模型可以缓解日志产生速度快于消费速度的压力,使消费速度合理匹配生产速度,所以加入了kafka消息系统作为数据缓冲区;步骤3.3,利用zookeeper协调系统提供分布式的锁服务和为分布式的系统提供故障恢复的支持,即使遭遇kafka宕机或者动态扩容都不会影响整个集的工作运行;步骤3.4,接收数据库的日志消息进行解析,自动切分日志,识别日志类型,去除回滚等不改变数据的日志,只保留对数据库造成变动效果的日志操作,然后基于日志解析的一些结果,对插入、删除、更新的操作指令所影响的数据库表信息进行解析,获取指标计算所需的全部信息,将解析结果存储保存以方便下一步的指标计算;步骤3.5,根据上述步骤的日志和指令解析的结果来自适应指标的计算逻辑,筛选出实时计算所需信息后,对指令的类型进行不同的计算,对于插入指令,直接对上次计算结果基础直接进行添加操作,对于删除操作,直接对上次计算结果进行减少操作,对于更新操作,在日志中到需要操作的数据块,对其进行添加或者删除操作,然后将得到的最新的数据记录写入数据库中。

技术总结


本发明公开了一种基于金融数据增量计算的实时指标计算方法,步骤包括:步骤1):首先从金融数据集finset中抽取出基础元数据e,根据基础元数据e来确定金融领域基础指标i的相关信息,再根据金融复合指标所需的金融领域基础指标和依赖的基础元数据获取金融量化指标q。步骤2):首先对数据指标、数据维度及其他元数据进行定义,然后设计一个版本控制数据定义,对数据集的修改进行保存。步骤3):采用自主编写的脚本程序对数据库服务器的数据进行自动采集,实现实时监听,最后再对数据库进行实时在线处理,保证系统的毫秒级的实时计算能力。本发明重点强调对于金融数据的增量计算,能够进行实时的指标计算,大幅度减少了指标计算的误差。误差。误差。


技术研发人员:

邵长城

受保护的技术使用者:

广东工业大学

技术研发日:

2022.10.08

技术公布日:

2022/12/23

本文发布于:2024-09-23 07:29:17,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/45568.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   指标   金融   基础
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议