实时数据处理方法、装置及设备制造方法及图纸

技术编号:27843436 阅读:15 留言:0更新日期:2021-03-30 12:39
本公开实施例提供了实时数据处理方法、装置及设备,方法包括:获取任一实时数据,并确定实时数据的数据时间;根据数据时间确定实时数据所属的时间窗口,并将实时数据对应的明细数据保存至数据库中时间窗口对应的明细数据集中;若实时数据为满足预设触发条件的实时数据,则从数据库中获取时间窗口对应的明细数据集,调用窗口函数对时间窗口对应的明细数据集进行函数计算,得到计算结果数据;在数据库中保存计算结果数据;若确定窗口计算数据中的计算结果数据为执行失败,重新从数据库中获取时间窗口对应的明细数据集,并重新进行计算,得到校正后的计算结果数据。本实施例能够微批量地对实时数据的计算结果数据的校正,保证实时数据处理的准确性。数据处理的准确性。数据处理的准确性。

【技术实现步骤摘要】
实时数据处理方法、装置及设备


[0001]本公开实施例涉及金融科技(Fintech)的数据处理
,尤其涉及一种实时数据处理方法、装置及设备。

技术介绍

[0002]随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,实时数据处理技术也不例外,但由于金融行业的安全性、实时性要求,也对实时数据处理技术提出了更高的要求。
[0003]目前,现有的实时数据处理框架,主要是采用的FLINK架构,其主要处理流程为:对于每一条实时数据登记对应的水位线(watermark),在后续的数据处理过程中,通过水位线进行时序判断,并将实时数据的处理数据结果状态存储到内存或本地或引入RocksDB进行存储。
[0004]然而,专利技术人发现现有技术至少存在如下技术问题:FLINK架构中是采用FLINK封装模式对数据结果状态进行封装的,该封装模型下数据结果状态是无法修改,也是无法查询的,因此现有技术中得到的数据结果状态是固定无法变更的。而当实时数据的处理出现错误时,由于数据结果状态无法变更,会造成实时数据处理存在不准确性。

技术实现思路

[0005]本公开实施例提供一种实时数据处理方法、装置及设备,以克服现有技术中数据结果状态无法变更,造成实时数据处理存在不准确性的问题。
[0006]第一方面,本公开实施例提供一种实时数据处理方法,包括:
[0007]获取任一实时数据,并确定所述实时数据的数据时间;
[0008]根据所述数据时间确定所述实时数据所属的时间窗口,并将所述实时数据对应的明细数据保存至数据库中所述时间窗口对应的明细数据集中;
[0009]若所述实时数据为数据时间满足预设触发条件的实时数据,则从所述数据库中获取所述时间窗口对应的明细数据集,并调用窗口函数对所述时间窗口对应的明细数据集进行函数计算,得到计算结果数据;
[0010]在所述数据库中的窗口计算数据中保存所述计算结果数据;
[0011]若确定所述窗口计算数据中的计算结果数据为执行失败,则重新从所述数据库中获取所述时间窗口对应的明细数据集,并重新调用窗口函数对所述时间窗口对应的明细数据集进行计算,得到校正后的计算结果数据。
[0012]在一种可能的设计中,所述窗口计算数据包括计算结果数据表和窗口函数键值索引表,其中所述计算结果数据存储在所述计算结果数据表中;所述在所述数据库中的窗口计算数据中保存所述计算结果数据之后,还包括:接收用户端发送的状态查看请求,其中所述状态查看请求中包含窗口函数键值;根据所述窗口函数键值查询所述窗口函数键值索引表得到索引结果,并根据索引结果从所述计算结果数据表中得到对应的计算结果数据;将
所述对应的计算结果数据发送至所述用户端展示。
[0013]在一种可能的设计中,所述将所述实时数据对应的明细数据保存至数据库中所述时间窗口对应的明细数据集中,包括:将所述实时数据保存至数据库中的所述时间窗口对应的当前数据明细表中,并在所述时间窗口对应的窗口索引表中记录所述明细数据的索引信息。
[0014]在一种可能的设计中,所述将所述实时数据保存至数据库中的所述时间窗口对应的数据明细表中之后,还包括:当根据所述窗口索引表的索引信息确定所述当前数据明细表中的数据量大于设定阈值时,建立新增数据明细表作为新的的当前数据明细表;当接收到属于所述时间窗口的新的实时数据时,将所述新的实时数据对应的明细数据保存至所述新的当前数据明细表中;在所述窗口索引表中增加所述新的当前数据明细表的索引信息。
[0015]在一种可能的设计中,所述从所述数据库中获取所述时间窗口对应的明细数据集,并调用窗口函数对所述时间窗口对应的明细数据集进行计算,包括:确定所述时间窗口的起始水位线和结束水位线对应的分值区间;根据所述分值区间查询所述窗口索引表以获取目标索引信息;根据所述目标索引信息从所述数据明细表中获取对应的明细数据集;按照执行器数量对所述明细数据进行拆分,并通过Spark工作进程以调用窗口函数对所述明细数据进行分布式窗口计算。
[0016]在一种可能的设计中,若所述时间窗口的窗口时间单位大于秒级;所述将所述实时数据对应的明细数据保存至数据库中所述时间窗口对应的明细数据集中之后,还包括:每隔第一预设时间间隔对所述时间窗口对应的明细数据集进行函数计算,得到计算结果数据,并将计算结果数据存储至数据库中。
[0017]在一种可能的设计中,还包括:在预设时刻将所述时间窗口最新计算得到的计算结果数据与所述时间窗口的所有的历史计算结果数据汇总得到汇总的计算结果数据;获取所述数据库中的汇总的计算结果数据;通过调用各窗口函数对所述汇总的计算结果数据重新计算,以对汇总的计算结果数据进行校验。
[0018]在一种可能的设计中,所述根据所述数据时间确定所述实时数据所属的时间窗口之后,还包括:若所述实时数据隶匹配多个时间窗口,则将所述实时数据进行拆分,将拆分后的实时数据分别保存至多个时间窗口对应的明细数据集中。
[0019]在一种可能的设计中,所述确定所述实时数据的数据时间:若所述实时数据包含事件时间,则将所述事件时间确定为数据时间;若所述实时数据不包含事件时间,则将当前系统时间确定所述数据时间。
[0020]在一种可能的设计中,还包括:每隔第二预设时间间隔将数据库中的各时间窗口对应的明细数据集转存至外部存储库中,并清理数据库中的各时间窗口对应的明细数据。
[0021]在一种可能的设计中,还包括:每隔第三预设时间间隔获取所述外部存储库中获取目标时间窗口的所有明细数据,其中所述目标时间窗口的窗口时间单位大于日级;通过调用各窗口函数对所述所有明细数据重新计算,以对所有明细数据的计算结果进行校验,并将得到的校验结果保存至数据库中的窗口计算数据。
[0022]在一种可能的设计中,所述计算结果数据中包括计算状态信息;所述确定所述窗口计算数据中的计算结果数据为执行失败,包括:若所述计算结果数据中的计算状态信息为计算错误或计算超时,则确定所述窗口计算数据中的计算结果数据为执行失败。
[0023]第二方面,本公开实施例提供一种实时数据处理装置,包括:
[0024]获取模块,用于获取任一实时数据,并确定所述实时数据的数据时间;
[0025]第一存储模块,用于根据所述数据时间确定所述实时数据所属的时间窗口,并将所述实时数据对应的明细数据保存至数据库中所述时间窗口对应的明细数据集中;
[0026]计算模块,用于若所述实时数据为数据时间满足预设触发条件的实时数据,则从所述数据库中获取所述时间窗口对应的明细数据集,并调用窗口函数对所述时间窗口对应的明细数据集进行函数计算,得到计算结果数据;
[0027]第二存储模块,用于在所述数据库中的窗口计算数据中保存所述计算结果数据;
[0028]校正模块,用于若确定所述窗口计算数据中的计算结果数据为执行失败,则重新从所述数据库中获取所述时间窗口对应的明细数据集,并重新调用窗本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实时数据处理方法,其特征在于,包括:获取任一实时数据,并确定所述实时数据的数据时间;根据所述数据时间确定所述实时数据所属的时间窗口,并将所述实时数据对应的明细数据保存至数据库中所述时间窗口对应的明细数据集中;若所述实时数据为数据时间满足预设触发条件的实时数据,则从所述数据库中获取所述时间窗口对应的明细数据集,并调用窗口函数对所述时间窗口对应的明细数据集进行函数计算,得到计算结果数据;在所述数据库中的窗口计算数据中保存所述计算结果数据;若确定所述窗口计算数据中的计算结果数据为执行失败,则重新从所述数据库中获取所述时间窗口对应的明细数据集,并重新调用窗口函数对所述时间窗口对应的明细数据集进行计算,得到校正后的计算结果数据。2.根据权利要求1所述的方法,其特征在于,所述窗口计算数据包括计算结果数据表和窗口函数键值索引表,其中所述计算结果数据存储在所述计算结果数据表中;所述在所述数据库中的窗口计算数据中保存所述计算结果数据之后,还包括:接收用户端发送的状态查看请求,其中所述状态查看请求中包含窗口函数键值;根据所述窗口函数键值查询所述窗口函数键值索引表得到索引结果,并根据索引结果从所述计算结果数据表中得到对应的计算结果数据;将所述对应的计算结果数据发送至所述用户端展示。3.根据权利要求1所述的方法,其特征在于,所述将所述实时数据对应的明细数据保存至数据库中所述时间窗口对应的明细数据集中,包括:将所述实时数据保存至数据库中的所述时间窗口对应的当前数据明细表中,并在所述时间窗口对应的窗口索引表中记录所述明细数据的索引信息。4.根据权利要求3所述的方法,其特征在于,所述将所述实时数据保存至数据库中的所述时间窗口对应的数据明细表中之后,还包括:当根据所述窗口索引表的索引信息确定所述当前数据明细表中的数据量大于设定阈值时,建立新增数据明细表作为新的当前数据明细表;当接收到属于所述时间窗口的新的实时数据时,将所述新的实时数据对应的明细数据保存至所述新的当前数据明细表中;在所述窗口索引表中增加所述新的当前数据明细表的索引信息。5.根据权利要求3所述的方法,其特征在于,所述从所述数据库中获取所述时间窗口对应的明细数据集,并调用窗口函数对所述时间窗口对应的明细数据集进行计算,包括:确定所述时间窗口的起始水位线和结束水位线对应的分值区间;根据所述分值区间查询所述窗口索引表以获取目标索引信息;根据所述目标索引信息从所述数据明细表中获取对应的明细数据集;按照执行器数量对所述明细数据进行拆分,并通过Spark工作进程以调用窗口函数对所述明细数据进行分布式窗口计算。6.根据权利要求5所述的方法,其特征在于,若所述时间窗口的窗口时间单位大于秒级;所述将所述实时数据对应的明细数据保存至数据库中所述时间窗口对应的明细数据集中之后,还包括:
每隔第一预设时间间隔对所述时间窗口对应的明细数据集进行函数计算,得到计算结果数据,并将计算结果数据存储至数据库中。7.根据权利要求6所述的方法,其特征在于,还包括:在预设时刻将所述时间窗口最新计算得到的计算结果数据与所述时间窗口的所有的历史计算结...

【专利技术属性】
技术研发人员:王威姜黎明王大飞江旻
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:

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

1