数据处理方法、装置及计算机程序产品与流程

文档序号:28918274发布日期:2022-02-16 12:04阅读:62来源:国知局
数据处理方法、装置及计算机程序产品与流程

1.本公开实施例涉及数据处理技术领域,具体涉及一种数据处理方法、装置及计算机程序产品。


背景技术:

2.随着计算技术的发展,flink等分布式流式计算系统的应用越来越广泛。对于分布式流式计算系统,通常使用具有一定时长和滑动步长的滑动窗口对于检测事件进行聚合指标的计算,但现有技术中上述滑动窗口的计算方式存在以下缺点:由于滑动窗口存在重叠和交叉,同一个事件可能会落入不同的滑动窗口中,并参与对应窗口的聚合指标计算,这不仅会导致聚合指标计算的次数较多,当大量事件频繁发生时,将会消耗大量的计算资源,还会带来参与聚合指标计算的事件的冗余,进而影响最终聚合指标计算的准确性;上述频繁的窗口聚合指标计算会触发频繁的滑动窗口输出,从而导致较高的数据库更新tps(transaction per second,每秒事务数),尤其是事件流较大、时间跨度大的滑动窗口计算更是需要大量的计算资源,对数据库更新性能提出更高的要求。在大规模实时事件流的滑窗聚合指标计算中,还有可能由于资源不足而导致实时计算出现长时间延迟、甚至是出现无法得到计算结果的情况。


技术实现要素:

3.本公开实施例提供一种数据处理方法、装置及计算机程序产品。
4.第一方面,本公开实施例中提供了一种数据处理方法。
5.具体的,所述数据处理方法,包括:
6.响应于在滚动事件检测窗口内检测到事件的发生,基于所述滚动事件检测窗口内历史检测到的同类事件的历史预设特征值执行第一聚合处理,得到与该类事件对应的瞬时窗口处理结果;
7.响应于所述滚动事件检测窗口达到滚动窗口时长,将所述滚动事件检测窗口与该类事件对应的最新瞬时窗口处理结果作为与所述滚动事件检测窗口该类事件对应的窗口处理结果存储;
8.响应于接收到窗口处理结果查询命令,获取与所述窗口处理结果查询命令对应的一个或多个滚动事件检测窗口的窗口处理结果,对获取的窗口处理结果执行第二聚合处理,得到聚合处理结果。
9.结合第一方面,本公开实施例在第一方面的第一种实现方式中,还包括:
10.设置一个或多个滚动事件检测窗口,其中,不同滚动事件检测窗口的时间不重合。
11.结合第一方面和第一方面的第一种实现方式,本公开实施例在第一方面的第二种实现方式中,所述事件基于其发生时间与其中一个滚动事件检测窗口相对应。
12.结合第一方面、第一方面的上述实现方式,本公开在第一方面的第三种实现方式中,所述设置一个或多个滚动事件检测窗口,包括:
13.确定滚动事件检测窗口数量;
14.将所述预设检测时长除以滚动事件检测窗口的数量,得到滚动窗口时长;
15.将上一滚动事件检测窗口的结束时间作为下一滚动事件检测窗口的开始时间,基于所述滚动窗口时长设置下一滚动事件检测窗口。
16.结合第一方面、第一方面的上述实现方式,本公开在第一方面的第四种实现方式中,所述设置一个或多个滚动事件检测窗口,包括:
17.获取与所述第一聚合处理对应的滑动窗口时长和滑动窗口步长;
18.确定所述滑动窗口时长和滑动窗口步长的公约数,作为所述滚动事件检测窗口的滚动窗口时长;
19.将上一滚动事件检测窗口的结束时间作为下一滚动事件检测窗口的开始时间,基于所述滚动窗口时长设置下一滚动事件检测窗口。
20.结合第一方面、第一方面的上述实现方式,本公开在第一方面的第五种实现方式中,所述基于所述滚动事件检测窗口内历史检测到的同类事件的历史预设特征值执行第一聚合处理,包括:
21.获取检测到的事件的预设特征值;
22.获取所述滚动事件检测窗口内历史检测到的同类事件的历史预设特征值;
23.对于所述预设特征值和历史预设特征值执行第一聚合处理。
24.结合第一方面、第一方面的上述实现方式,本公开在第一方面的第六种实现方式中,所述窗口处理结果查询命令携带有查询开始时间、查询结束时间、事件类型和第一聚合处理类型。
25.结合第一方面、第一方面的上述实现方式,本公开在第一方面的第七种实现方式中,所述获取与所述窗口处理结果查询命令对应的一个或多个滚动事件检测窗口的窗口处理结果,对获取的窗口处理结果执行第二聚合处理,包括:
26.根据所述查询开始时间和查询结束时间确定起始滚动事件检测窗口和终止滚动事件检测窗口;
27.获取从起始滚动事件检测窗口至终止滚动事件检测窗口的、与所述事件类型和第一聚合处理类型对应的一个或多个窗口处理结果;
28.基于所述一个或多个窗口处理结果执行第二聚合处理,其中,所述第二聚合处理与所述第一聚合处理相关。
29.第二方面,本公开实施例中提供了一种数据处理装置。
30.具体的,所述数据处理装置,包括:
31.第一执行模块,被配置为响应于在滚动事件检测窗口内检测到事件的发生,基于所述滚动事件检测窗口内历史检测到的同类事件的历史预设特征值执行第一聚合处理,得到与该类事件对应的瞬时窗口处理结果;
32.存储模块,被配置为响应于所述滚动事件检测窗口达到滚动窗口时长,将所述滚动事件检测窗口与该类事件对应的最新瞬时窗口处理结果作为与所述滚动事件检测窗口该类事件对应的窗口处理结果存储;
33.第二执行模块,被配置为响应于接收到窗口处理结果查询命令,获取与所述窗口处理结果查询命令对应的一个或多个滚动事件检测窗口的窗口处理结果,对获取的窗口处
理结果执行第二聚合处理,得到聚合处理结果。
34.结合第二方面,本公开实施例在第二方面的第一种实现方式中,所述装置还可包括:
35.设置模块,被配置为设置一个或多个滚动事件检测窗口,其中,不同滚动事件检测窗口的时间不重合。
36.结合第二方面和第二方面的第一种实现方式,本公开实施例在第二方面的第二种实现方式中,所述事件基于其发生时间与其中一个滚动事件检测窗口相对应。
37.结合第二方面、第二方面的上述实现方式,本公开在第二方面的第三种实现方式中,所述设置模块可被配置为:
38.确定滚动事件检测窗口数量;
39.将所述预设检测时长除以滚动事件检测窗口的数量,得到滚动窗口时长;
40.将上一滚动事件检测窗口的结束时间作为下一滚动事件检测窗口的开始时间,基于所述滚动窗口时长设置下一滚动事件检测窗口。
41.结合第二方面、第二方面的上述实现方式,本公开在第二方面的第四种实现方式中,所述设置模块可被配置为:
42.获取与所述第一聚合处理对应的滑动窗口时长和滑动窗口步长;
43.确定所述滑动窗口时长和滑动窗口步长的公约数,作为所述滚动事件检测窗口的滚动窗口时长;
44.将上一滚动事件检测窗口的结束时间作为下一滚动事件检测窗口的开始时间,基于所述滚动窗口时长设置下一滚动事件检测窗口。
45.结合第二方面、第二方面的上述实现方式,本公开在第二方面的第五种实现方式中,所述基于所述滚动事件检测窗口内历史检测到的同类事件的历史预设特征值执行第一聚合处理的部分,被配置为:
46.获取检测到的事件的预设特征值;
47.获取所述滚动事件检测窗口内历史检测到的同类事件的历史预设特征值;
48.对于所述预设特征值和历史预设特征值执行第一聚合处理。
49.结合第二方面、第二方面的上述实现方式,本公开在第二方面的第六种实现方式中,所述窗口处理结果查询命令携带有查询开始时间、查询结束时间、事件类型和第一聚合处理类型。
50.结合第二方面、第二方面的上述实现方式,本公开在第二方面的第七种实现方式中,所述获取与所述窗口处理结果查询命令对应的一个或多个滚动事件检测窗口的窗口处理结果,对获取的窗口处理结果执行第二聚合处理的部分,可被配置为:
51.根据所述查询开始时间和查询结束时间确定起始滚动事件检测窗口和终止滚动事件检测窗口;
52.获取从起始滚动事件检测窗口至终止滚动事件检测窗口的、与所述事件类型和第一聚合处理类型对应的一个或多个窗口处理结果;
53.基于所述一个或多个窗口处理结果执行第二聚合处理,其中,所述第二聚合处理与所述第一聚合处理相关。
54.第三方面,本公开实施例提供了一种电子设备,包括存储器和处理器,所述存储器
用于存储一条或多条支持数据处理装置执行上述数据处理方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述数据处理装置还可以包括通信接口,用于数据处理装置与其他设备或通信网络通信。
55.第四方面,本公开实施例提供了一种计算机可读存储介质,用于存储数据处理装置所用的计算机指令,其包含用于执行上述数据处理方法为数据处理装置所涉及的计算机指令。
56.第五方面,本公开实施例提供了一种计算机程序产品,包括计算机程序/指令,其中,该计算机程序/指令被处理器执行时实现上述数据处理方法的方法步骤。
57.本公开实施例提供的技术方案可包括以下有益效果:
58.上述技术方案使用滚动窗口代替滑动窗口来进行事件聚合指标的计算,由于不同滚动窗口时间不重合,因此,某一事件根据其发生时间,仅与其中一个滚动窗口相对应。该技术方案能够消除参与聚合指标计算的事件的冗余,提高聚合指标计算的准确性,减少计算资源和数据库资源的使用,避免由于资源不足而导致实时计算出现长时间延迟、甚至是出现无法得到计算结果的情况,进而提高事件聚合指标的计算效率,保障事件聚合指标计算的稳定性。
59.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开实施例。
附图说明
60.结合附图,通过以下非限制性实施方式的详细描述,本公开实施例的其它特征、目的和优点将变得更加明显。在附图中:
61.图1示出根据本公开一实施方式的数据处理方法的流程图;
62.图2示出根据本公开一实施方式的数据处理装置的结构框图;
63.图3示出根据本公开一实施方式的数据处理装置的结构框图;
64.图4是适于用来实现根据本公开一实施方式的数据处理方法的计算机系统的结构示意图。
具体实施方式
65.下文中,将参考附图详细描述本公开实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
66.在本公开实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
67.另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开实施例。
68.本公开实施例提供的技术方案使用滚动窗口代替滑动窗口来进行事件聚合指标的计算,由于不同滚动窗口时间不重合,因此,某一事件根据其发生时间,仅与其中一个滚动窗口相对应。该技术方案能够消除参与聚合指标计算的事件的冗余,提高聚合指标计算
的准确性,减少计算资源和数据库资源的使用,避免由于资源不足而导致实时计算出现长时间延迟、甚至是出现无法得到计算结果的情况,进而提高事件聚合指标的计算效率,保障事件聚合指标计算的稳定性。
69.图1示出根据本公开一实施方式的数据处理方法的流程图,如图1所示,所述数据处理方法包括以下步骤s101-s103:
70.在步骤s101中,响应于在滚动事件检测窗口内检测到事件的发生,基于所述滚动事件检测窗口内历史检测到的同类事件的历史预设特征值执行第一聚合处理,得到与该类事件对应的瞬时窗口处理结果;
71.在步骤s102中,响应于所述滚动事件检测窗口达到滚动窗口时长,将所述滚动事件检测窗口与该类事件对应的最新瞬时窗口处理结果作为与所述滚动事件检测窗口该类事件对应的窗口处理结果存储;
72.在步骤s103中,响应于接收到窗口处理结果查询命令,获取与所述窗口处理结果查询命令对应的一个或多个滚动事件检测窗口的窗口处理结果,对获取的窗口处理结果执行第二聚合处理,得到聚合处理结果。
73.上文提及,随着计算技术的发展,flink等分布式流式计算系统的应用越来越广泛。对于分布式流式计算系统,通常使用具有一定时长和滑动步长的滑动窗口对于检测事件进行聚合指标的计算,但现有技术中上述滑动窗口的计算方式存在以下缺点:由于滑动窗口存在重叠和交叉,同一个事件可能会落入不同的滑动窗口中,并参与对应窗口的聚合指标计算,这不仅会导致聚合指标计算的次数较多,当大量事件频繁发生时,将会消耗大量的计算资源,还会带来参与聚合指标计算的事件的冗余,进而影响最终聚合指标计算的准确性;上述频繁的窗口聚合指标计算会触发频繁的滑动窗口输出,从而导致较高的数据库更新tps(transaction per second,每秒事务数),尤其是事件流较大、时间跨度大的滑动窗口计算更是需要大量的计算资源,对数据库更新性能提出更高的要求。在大规模实时事件流的滑窗聚合指标计算中,还有可能由于资源不足而导致实时计算出现长时间延迟、甚至是出现无法得到计算结果的情况。
74.考虑到上述问题,在该实施方式中,提出一种数据处理方法,该方法使用滚动窗口代替滑动窗口来进行事件聚合指标的计算,由于不同滚动窗口时间不重合,因此,某一事件根据其发生时间,仅与其中一个滚动窗口相对应。该技术方案能够消除参与聚合指标计算的事件的冗余,提高聚合指标计算的准确性,减少计算资源和数据库资源的使用,避免由于资源不足而导致实时计算出现长时间延迟、甚至是出现无法得到计算结果的情况,进而提高事件聚合指标的计算效率,保障事件聚合指标计算的稳定性。
75.在本公开一实施方式中,所述数据处理方法可适用于执行数据处理的计算机、计算设备、电子设备、服务器、服务器集群等等。
76.在本公开一实施方式中,所述滚动事件检测窗口指的是具有预设滚动窗口时长、用于对于发生事件进行检测的时间窗口。在该实施方式中,与滑动窗口不同,不同的滚动窗口相互独立,对应的检测时间不存在重合、重叠或交叉,而且多个顺序滚动窗口是连续的,能够覆盖一定的预设时长,即对于相邻滚动窗口来说,前一滚动窗口的窗口结束时间即为后一滚动窗口的窗口开始时间,因此,对于每一事件来说,均可基于其发生时间使其与其中一个且唯一的一个滚动窗口相对应。比如,若在预设时长t内设置n个滚动窗口,或者将具有
预设时长t的滑动窗口拆分为n个滚动窗口,则每个滚动窗口的滚动窗口时长为t/n,即n个独立的滚动窗口顺序排列,且n个滚动窗口能够完全覆盖所述预设时长t。
77.在本公开一实施方式中,所述事件指的是具有发生形态的、可被软件系统检测到事件的发生,并可对其发生时间等信息进行记录的事件对象,比如所述事件可以为某一设备发出的定位请求、数据查询请求等等。上文提及,不同的滚动窗口是相互独立的,对应的检测时间不存在重合、重叠或交叉,因此,某一事件的发生时间将仅会落入至某一滚动窗口中,而不会发生落入某两个或多个滚动窗口中的情况。
78.在本公开一实施方式中,所述滚动事件检测窗口内历史检测到的同类事件指的是从某一滚动事件检测窗口的起始时间开始至当前时间,所有历史上已经被检测到的与所述事件属于同一类型的事件,比如,若步骤s101中在滚动事件检测窗口内检测到的事件为定位请求事件,则所述滚动事件检测窗口内历史检测到的同类事件指的是从某一滚动事件检测窗口的起始时间开始至当前时间,所有历史上已经被检测到的定位请求事件。
79.在本公开一实施方式中,所述预设特征值指的是预先设置的、基于所述事件生成的、参与后续预设处理的特征值。所述预设特征值比如可以为事件的发生次数、相关数据量、所占内存量等等。所述历史预设特征值指的是所述历史检测事件对应的预设特征值。
80.在本公开一实施方式中,所述第一聚合处理指的是预先设置的、基于所述预设特征值进行的处理操作,所述第一聚合处理可以为一种也可以为多种,也就是说,可基于所述滚动事件检测窗口内历史检测事件的历史预设特征值执行某一种或某几种的聚合处理操作,相应的,可得到与所述聚合处理操作对应的一个或多个瞬时窗口处理结果。所述第一聚合处理比如可以为求和、求最大值、求最小值、求平均值、计数等处理操作。其中,所述第一聚合处理由事件的发生来触发,即一在滚动事件检测窗口内检测到事件的发生,就基于所述滚动事件检测窗口内所有检测到的事件的预设特征值执行第一聚合处理。因此,每在滚动事件检测窗口内检测到事件的发生,就会执行一次第一聚合处理,也就得到一个当前的瞬时窗口处理结果,当所述滚动事件检测窗口达到滚动窗口时长后,最后得到的一个最新的瞬时窗口处理结果即为所述滚动事件检测窗口对应的窗口处理结果。
81.在本公开一实施方式中,所述窗口处理结果查询命令指的是由用户、系统本身、或其他资源发出的用于查询某一或某几个滚动事件检测窗口的窗口处理结果的命令。为了确定待查询的滚动事件检测窗口有几个,具体是哪几个窗口,所述窗口处理结果查询命令可携带有查询开始时间和查询结束时间,为了确定待查询的事件对应的窗口处理结果,所述窗口处理结果查询命令可携带有事件类型。上文提及,所述第一聚合处理可以为一种也可以为多种,为了确定准确的窗口处理结果,所述窗口处理结果查询命令还可携带所述第一聚合处理的类型。
82.在本公开一实施方式中,所述第二聚合处理指的是预先设置的、基于所述窗口处理结果进行的、与所述第一聚合处理相关的处理操作。比如,若所述第一聚合处理为求和操作,则所述第二聚合处理既可以与所述第一聚合处理相同,亦为求和操作,也可以根据实际应用的需要,为与所述第一聚合处理不同但相应的处理操作。与所述第一聚合处理类似,所述第二聚合处理可以为求和、求最大值、求最小值、求平均值、计数等处理操作,可以为一种也可以为多种,也就是说,可基于所述窗口处理结果执行某一种或某几种的聚合处理操作,相应的,可得到与所述聚合处理操作对应的一个或多个聚合处理结果。
83.在上述实施方式中,当在滚动事件检测窗口内检测到某一事件的发生时,基于所述滚动事件检测窗口内已检测到的所有与所述事件属于同类别的事件的预设特征值执行第一聚合处理,得到与该类事件对应的当前瞬时窗口处理结果;以此类推,若又检测到某一同类事件的发生,则基于所述滚动事件检测窗口内已检测到的所有该类事件的预设特征值执行第一聚合处理,得到更新的瞬时窗口处理结果,直至所述滚动事件检测窗口达到滚动窗口时长,即所述滚动事件检测窗口结束,将此时的窗口处理结果存储下来,作为与所述滚动事件检测窗口该类事件对应的窗口处理结果;在接收到窗口处理结果查询命令后,获取与所述窗口处理结果查询命令对应的一个或多个滚动事件检测窗口的窗口处理结果,对获取的窗口处理结果执行第二聚合处理,即可得到聚合处理结果。
84.在本公开一实施方式中,所述方法还可包括以下步骤:
85.设置一个或多个滚动事件检测窗口,其中,所述滚动事件检测窗口具有滚动窗口时长,且不同滚动事件检测窗口的时间不重合。
86.在该实施方式中,在设置所述滚动事件检测窗口时,即可以根据预设检测时长确定所述滚动窗口时长,比如,可将预设检测时长设置为1分钟、5分钟,然后确定滚动窗口的数量,基于预设检测时长和滚动窗口的数量即可确定滚动窗口时长,也可将之前进行针对某一预设特征值的聚合计算时所使用的滑动窗口按照实际应用的需要拆分为一个或多个滚动窗口,比如可将一个时长为1小时、滑动步长为5分钟的滑动窗口拆分为12个时长为5分钟的滚动窗口,或者60个时长为1分钟的滚动窗口,这样对于每一事件来说,均可基于其发生时间使其与其中一个且唯一的一个滚动窗口相对应。
87.当根据预设检测时长确定所述滚动窗口时长时,所述设置一个或多个滚动事件检测窗口的步骤,可包括以下步骤:
88.确定滚动事件检测窗口数量;
89.将所述预设检测时长除以滚动事件检测窗口的数量,得到滚动窗口时长;
90.将上一滚动事件检测窗口的结束时间作为下一滚动事件检测窗口的开始时间,基于所述滚动窗口时长设置下一滚动事件检测窗口。
91.当根据滑动窗口确定所述滚动窗口时长时,所述设置一个或多个滚动事件检测窗口的步骤,可包括以下步骤:
92.获取与所述第一聚合处理对应的滑动窗口时长和滑动窗口步长;
93.确定所述滑动窗口时长和滑动窗口步长的公约数,作为所述滚动事件检测窗口的滚动窗口时长;
94.将上一滚动事件检测窗口的结束时间作为下一滚动事件检测窗口的开始时间,基于所述滚动窗口时长设置下一滚动事件检测窗口。
95.在该实施方式中,当所述滑动窗口时长和滑动窗口步长的公约数不止一个时,可根据实际应用的需要选择其中一个公约数作为所述滚动事件检测窗口的滚动窗口时长。
96.在本公开一实施方式中,所述步骤s101中基于所述滚动事件检测窗口内历史检测到的同类事件的历史预设特征值执行第一聚合处理的步骤,可包括以下步骤:
97.获取检测到的事件的预设特征值;
98.获取所述滚动事件检测窗口内历史检测到的同类事件的历史预设特征值;
99.对于所述预设特征值和历史预设特征值执行第一聚合处理。
100.在该实施方式中,在基于所述滚动事件检测窗口内历史检测到的同类事件的预设特征值执行第一聚合处理时,需要计算所述滚动事件检测窗口内所检测到的所有同类事件的预设特征值,然后再基于所计算出来的预设特征值执行所述第一聚合处理。比如,可先获取当前最近一次检测到的事件的预设特征值;然后获取所述滚动事件检测窗口内之前检测到的同类事件的预设特征值;最后就可对于获取得到的所有预设特征值执行第一聚合处理。
101.在本公开一实施方式中,所述步骤s103中获取与所述窗口处理结果查询命令对应的一个或多个滚动事件检测窗口的窗口处理结果,对获取的窗口处理结果执行第二聚合处理的步骤,可包括以下步骤:
102.根据所述查询开始时间和查询结束时间确定起始滚动事件检测窗口和终止滚动事件检测窗口;
103.获取从起始滚动事件检测窗口至终止滚动事件检测窗口的、与所述事件类型和第一聚合处理类型对应的一个或多个窗口处理结果;
104.基于所述一个或多个窗口处理结果执行第二聚合处理,其中,所述第二聚合处理与所述第一聚合处理对应。
105.上文提及,为了确定待查询的滚动事件检测窗口有几个,具体是哪几个窗口,所述窗口处理结果查询命令可携带有查询开始时间和查询结束时间,为了确定准确的窗口处理结果,所述窗口处理结果查询命令还可携带事件类型和第一聚合处理的类型。上文还提及,现有技术中针对某一预设特征值的聚合计算使用的是具有一定时长的滑动窗口,因此,在该实施方式中,可根据针对某一预设特征值的聚合计算使用的滑动窗口的时长和滑动步长来确定所述查询开始时间和查询结束时间,比如,若所述滑动窗口的时长为1小时,滑动步长为5分钟,当前时间为上午11点,则可以将查询开始时间设置为10点,将查询结束时间设置为11点,下一次的查询开始时间就可设置为10点5分,查询结束时间设置为11点5分,以此类推。
106.确定了查询开始时间和查询结束时间,即可确定起始滚动事件检测窗口和终止滚动事件检测窗口,比如,若查询开始时间为10点,查询结束时间为11点,滚动事件检测窗口的滚动窗口时长为5分钟,则起始滚动事件检测窗口为从10点至10点5分的滚动事件检测窗口,终止滚动事件检测窗口为从10点55分至11点的滚动事件检测窗口,查询滚动事件检测窗口的数量为12个。
107.然后获取从起始滚动事件检测窗口至终止滚动事件检测窗口的、与所述事件类型和第一聚合处理类型对应的多个窗口处理结果,比如,若从起始滚动事件检测窗口至终止滚动事件检测窗口共12个查询滚动事件检测窗口,但与所述事件类型和第一聚合处理类型对应的滚动事件检测窗口只有10个,则相应的窗口处理结果也只有10个。
108.最后基于所述一个或多个窗口处理结果执行第二聚合处理,其中,所述第二聚合处理与所述第一聚合处理相关。
109.下述为本公开装置实施例,可以用于执行本公开方法实施例。
110.图2示出根据本公开一实施方式的数据处理装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图2所示,所述数据处理装置包括:
111.第一执行模块201,被配置为响应于在滚动事件检测窗口内检测到事件的发生,基于所述滚动事件检测窗口内历史检测到的同类事件的历史预设特征值执行第一聚合处理,得到与该类事件对应的瞬时窗口处理结果;
112.存储模块202,被配置为响应于所述滚动事件检测窗口达到滚动窗口时长,将所述滚动事件检测窗口与该类事件对应的最新瞬时窗口处理结果作为与所述滚动事件检测窗口该类事件对应的窗口处理结果存储;
113.第二执行模块203,被配置为响应于接收到窗口处理结果查询命令,获取与所述窗口处理结果查询命令对应的一个或多个滚动事件检测窗口的窗口处理结果,对获取的窗口处理结果执行第二聚合处理,得到聚合处理结果。
114.上文提及,随着计算技术的发展,flink等分布式流式计算系统的应用越来越广泛。对于分布式流式计算系统,通常使用具有一定时长和滑动步长的滑动窗口对于检测事件进行聚合指标的计算,但现有技术中上述滑动窗口的计算方式存在以下缺点:由于滑动窗口存在重叠和交叉,同一个事件可能会落入不同的滑动窗口中,并参与对应窗口的聚合指标计算,这不仅会导致聚合指标计算的次数较多,当大量事件频繁发生时,将会消耗大量的计算资源,还会带来参与聚合指标计算的事件的冗余,进而影响最终聚合指标计算的准确性;上述频繁的窗口聚合指标计算会触发频繁的滑动窗口输出,从而导致较高的数据库更新tps(transaction per second,每秒事务数),尤其是事件流较大、时间跨度大的滑动窗口计算更是需要大量的计算资源,对数据库更新性能提出更高的要求。在大规模实时事件流的滑窗聚合指标计算中,还有可能由于资源不足而导致实时计算出现长时间延迟、甚至是出现无法得到计算结果的情况。
115.考虑到上述问题,在该实施方式中,提出一种数据处理装置,该装置使用滚动窗口代替滑动窗口来进行事件聚合指标的计算,由于不同滚动窗口时间不重合,因此,某一事件根据其发生时间,仅与其中一个滚动窗口相对应。该技术方案能够消除参与聚合指标计算的事件的冗余,提高聚合指标计算的准确性,减少计算资源和数据库资源的使用,避免由于资源不足而导致实时计算出现长时间延迟、甚至是出现无法得到计算结果的情况,进而提高事件聚合指标的计算效率,保障事件聚合指标计算的稳定性。
116.在本公开一实施方式中,所述数据处理装置可实现为执行数据处理的计算机、计算设备、电子设备、服务器、服务器集群等等。
117.在本公开一实施方式中,所述滚动事件检测窗口指的是具有预设滚动窗口时长、用于对于发生事件进行检测的时间窗口。在该实施方式中,与滑动窗口不同,不同的滚动窗口相互独立,对应的检测时间不存在重合、重叠或交叉,而且多个顺序滚动窗口是连续的,能够覆盖一定的预设时长,即对于相邻滚动窗口来说,前一滚动窗口的窗口结束时间即为后一滚动窗口的窗口开始时间,因此,对于每一事件来说,均可基于其发生时间使其与其中一个且唯一的一个滚动窗口相对应。比如,若在预设时长t内设置n个滚动窗口,或者将具有预设时长t的滑动窗口拆分为n个滚动窗口,则每个滚动窗口的滚动窗口时长为t/n,即n个独立的滚动窗口顺序排列,且n个滚动窗口能够完全覆盖所述预设时长t。
118.在本公开一实施方式中,所述事件指的是具有发生形态的、可被软件系统检测到事件的发生,并可对其发生时间等信息进行记录的事件对象,比如所述事件可以为某一设备发出的定位请求、数据查询请求等等。上文提及,不同的滚动窗口是相互独立的,对应的
检测时间不存在重合、重叠或交叉,因此,某一事件的发生时间将仅会落入至某一滚动窗口中,而不会发生落入某两个或多个滚动窗口中的情况。
119.在本公开一实施方式中,所述滚动事件检测窗口内历史检测到的同类事件指的是从某一滚动事件检测窗口的起始时间开始至当前时间,所有历史上已经被检测到的与所述事件属于同一类型的事件,比如,若第一执行模块中在滚动事件检测窗口内检测到的事件为定位请求事件,则所述滚动事件检测窗口内历史检测到的同类事件指的是从某一滚动事件检测窗口的起始时间开始至当前时间,所有历史上已经被检测到的定位请求事件。
120.在本公开一实施方式中,所述预设特征值指的是预先设置的、基于所述事件生成的、参与后续预设处理的特征值。所述预设特征值比如可以为事件的发生次数、相关数据量、所占内存量等等。所述历史预设特征值指的是所述历史检测事件对应的预设特征值。
121.在本公开一实施方式中,所述第一聚合处理指的是预先设置的、基于所述预设特征值进行的处理操作,所述第一聚合处理可以为一种也可以为多种,也就是说,可基于所述滚动事件检测窗口内历史检测事件的历史预设特征值执行某一种或某几种的聚合处理操作,相应的,可得到与所述聚合处理操作对应的一个或多个瞬时窗口处理结果。所述第一聚合处理比如可以为求和、求最大值、求最小值、求平均值、计数等处理操作。其中,所述第一聚合处理由事件的发生来触发,即一在滚动事件检测窗口内检测到事件的发生,就基于所述滚动事件检测窗口内所有检测到的事件的预设特征值执行第一聚合处理。因此,每在滚动事件检测窗口内检测到事件的发生,就会执行一次第一聚合处理,也就得到一个当前的瞬时窗口处理结果,当所述滚动事件检测窗口达到滚动窗口时长后,最后得到的一个最新的瞬时窗口处理结果即为所述滚动事件检测窗口对应的窗口处理结果。
122.在本公开一实施方式中,所述窗口处理结果查询命令指的是由用户、系统本身、或其他资源发出的用于查询某一或某几个滚动事件检测窗口的窗口处理结果的命令。为了确定待查询的滚动事件检测窗口有几个,具体是哪几个窗口,所述窗口处理结果查询命令可携带有查询开始时间和查询结束时间,为了确定待查询的事件对应的窗口处理结果,所述窗口处理结果查询命令可携带有事件类型。上文提及,所述第一聚合处理可以为一种也可以为多种,为了确定准确的窗口处理结果,所述窗口处理结果查询命令还可携带所述第一聚合处理的类型。
123.在本公开一实施方式中,所述第二聚合处理指的是预先设置的、基于所述窗口处理结果进行的、与所述第一聚合处理相关的处理操作。比如,若所述第一聚合处理为求和操作,则所述第二聚合处理既可以与所述第一聚合处理相同,亦为求和操作,也可以根据实际应用的需要,为与所述第一聚合处理不同但相应的处理操作。与所述第一聚合处理类似,所述第二聚合处理可以为求和、求最大值、求最小值、求平均值、计数等处理操作,可以为一种也可以为多种,也就是说,可基于所述窗口处理结果执行某一种或某几种的聚合处理操作,相应的,可得到与所述聚合处理操作对应的一个或多个聚合处理结果。
124.在上述实施方式中,当在滚动事件检测窗口内检测到某一事件的发生时,基于所述滚动事件检测窗口内已检测到的所有与所述事件属于同类别的事件的预设特征值执行第一聚合处理,得到与该类事件对应的当前瞬时窗口处理结果;以此类推,若又检测到某一同类事件的发生,则基于所述滚动事件检测窗口内已检测到的所有该类事件的预设特征值执行第一聚合处理,得到更新的瞬时窗口处理结果,直至所述滚动事件检测窗口达到滚动
窗口时长,即所述滚动事件检测窗口结束,将此时的窗口处理结果存储下来,作为与所述滚动事件检测窗口该类事件对应的窗口处理结果;在接收到窗口处理结果查询命令后,获取与所述窗口处理结果查询命令对应的一个或多个滚动事件检测窗口的窗口处理结果,对获取的窗口处理结果执行第二聚合处理,即可得到聚合处理结果。
125.在本公开一实施方式中,所述装置还可包括:
126.设置模块,被配置为设置一个或多个滚动事件检测窗口,其中,所述滚动事件检测窗口具有滚动窗口时长,且不同滚动事件检测窗口的时间不重合。
127.在该实施方式中,在设置所述滚动事件检测窗口时,即可以根据预设检测时长确定所述滚动窗口时长,比如,可将预设检测时长设置为1分钟、5分钟,然后确定滚动窗口的数量,基于预设检测时长和滚动窗口的数量即可确定滚动窗口时长,也可将之前进行针对某一预设特征值的聚合计算时所使用的滑动窗口按照实际应用的需要拆分为一个或多个滚动窗口,比如可将一个时长为1小时、滑动步长为5分钟的滑动窗口拆分为12个时长为5分钟的滚动窗口,或者60个时长为1分钟的滚动窗口,这样对于每一事件来说,均可基于其发生时间使其与其中一个且唯一的一个滚动窗口相对应。
128.当根据预设检测时长确定所述滚动窗口时长时,所述设置模块可被配置为:
129.确定滚动事件检测窗口数量;
130.将所述预设检测时长除以滚动事件检测窗口的数量,得到滚动窗口时长;
131.将上一滚动事件检测窗口的结束时间作为下一滚动事件检测窗口的开始时间,基于所述滚动窗口时长设置下一滚动事件检测窗口。
132.当根据滑动窗口确定所述滚动窗口时长时,所述设置模块可被配置为:
133.获取与所述第一聚合处理对应的滑动窗口时长和滑动窗口步长;
134.确定所述滑动窗口时长和滑动窗口步长的公约数,作为所述滚动事件检测窗口的滚动窗口时长;
135.将上一滚动事件检测窗口的结束时间作为下一滚动事件检测窗口的开始时间,基于所述滚动窗口时长设置下一滚动事件检测窗口。
136.在该实施方式中,当所述滑动窗口时长和滑动窗口步长的公约数不止一个时,可根据实际应用的需要选择其中一个公约数作为所述滚动事件检测窗口的滚动窗口时长。
137.在本公开一实施方式中,所述基于所述滚动事件检测窗口内历史检测到的同类事件的历史预设特征值执行第一聚合处理的部分,被配置为:
138.获取检测到的事件的预设特征值;
139.获取所述滚动事件检测窗口内历史检测到的同类事件的历史预设特征值;
140.对于所述预设特征值和历史预设特征值执行第一聚合处理。
141.在该实施方式中,在基于所述滚动事件检测窗口内历史检测到的同类事件的预设特征值执行第一聚合处理时,需要计算所述滚动事件检测窗口内所检测到的所有同类事件的预设特征值,然后再基于所计算出来的预设特征值执行所述第一聚合处理。比如,可先获取最近一次检测到的事件的预设特征值;然后获取所述滚动事件检测窗口内之前检测到的同类事件的预设特征值;最后就可对于获取得到的所有预设特征值执行第一聚合处理。
142.在本公开一实施方式中,所述获取与所述窗口处理结果查询命令对应的一个或多个滚动事件检测窗口的窗口处理结果,对获取的窗口处理结果执行第二聚合处理的部分,
可被配置为:
143.根据所述查询开始时间和查询结束时间确定起始滚动事件检测窗口和终止滚动事件检测窗口;
144.获取从起始滚动事件检测窗口至终止滚动事件检测窗口的、与所述事件类型和第一聚合处理类型对应的一个或多个窗口处理结果;
145.基于所述一个或多个窗口处理结果执行第二聚合处理,其中,所述第二聚合处理与所述第一聚合处理对应。
146.上文提及,为了确定待查询的滚动事件检测窗口有几个,具体是哪几个窗口,所述窗口处理结果查询命令可携带有查询开始时间和查询结束时间,为了确定准确的窗口处理结果,所述窗口处理结果查询命令还可携带事件类型和第一聚合处理的类型。上文还提及,现有技术中针对某一预设特征值的聚合计算使用的是具有一定时长的滑动窗口,因此,在该实施方式中,可根据针对某一预设特征值的聚合计算使用的滑动窗口的时长和滑动步长来确定所述查询开始时间和查询结束时间,比如,若所述滑动窗口的时长为1小时,滑动步长为5分钟,当前时间为上午11点,则可以将查询开始时间设置为10点,将查询结束时间设置为11点,下一次的查询开始时间就可设置为10点5分,查询结束时间设置为11点5分,以此类推。
147.确定了查询开始时间和查询结束时间,即可确定起始滚动事件检测窗口和终止滚动事件检测窗口,比如,若查询开始时间为10点,查询结束时间为11点,滚动事件检测窗口的滚动窗口时长为5分钟,则起始滚动事件检测窗口为从10点至10点5分的滚动事件检测窗口,终止滚动事件检测窗口为从10点55分至11点的滚动事件检测窗口,查询滚动事件检测窗口的数量为12个。
148.然后获取从起始滚动事件检测窗口至终止滚动事件检测窗口的、与所述事件类型和第一聚合处理类型对应的多个窗口处理结果,比如,若从起始滚动事件检测窗口至终止滚动事件检测窗口共12个查询滚动事件检测窗口,但与所述事件类型和第一聚合处理类型对应的滚动事件检测窗口只有10个,则相应的窗口处理结果也只有10个。
149.最后基于所述一个或多个窗口处理结果执行第二聚合处理,其中,所述第二聚合处理与所述第一聚合处理相关。
150.本公开还公开了一种电子设备,图3示出根据本公开一实施方式的电子设备的结构框图,如图3所示,所述电子设备300包括存储器301和处理器302;其中,
151.所述存储器301用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器302执行以实现上述方法步骤。
152.图4是适于用来实现根据本公开一实施方式的数据处理方法的计算机系统的结构示意图。
153.如图4所示,计算机系统400包括处理单元401,其可以根据存储在只读存储器(rom)402中的程序或者从存储部分408加载到随机访问存储器(ram)403中的程序而执行上述实施方式中的各种处理。在ram403中,还存储有系统400操作所需的各种程序和数据。处理单元401、rom402以及ram403通过总线404彼此相连。输入/输出(i/o)接口405也连接至总线404。
154.以下部件连接至i/o接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射
线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至i/o接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。其中,所述处理单元401可实现为cpu、gpu、tpu、fpga、npu等处理单元。
155.特别地,根据本公开的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行所述数据处理方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。
156.附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
157.描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
158.作为另一方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开实施例的方法。
159.以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1