一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据处理方法、装置、存储介质和电子设备与流程

2022-04-02 05:45:35 来源:中国专利 TAG:


1.本发明涉及电子信息技术领域,具体地,涉及一种数据处理方法、装置、存储介质和电子设备。


背景技术:

2.随着电子信息技术的快速发展,互联网上会产生的大量数据,并且这些数据也会频繁地发生变化。通常情况下,数据每发生一次变化,用户端一侧的数据都需要进行刷新,但是用户对于这些数据的敏感度可能并不高,也就是说用户往往不需要获知每一次数据的变化。因此,按照数据的变化频率来刷新用户端的数据,会对数据库产生较大的查询压力导致拥堵,并且浪费了网络带宽。


技术实现要素:

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.图1是根据一示例性实施例示出的一种数据处理方法的流程图;
56.图2是根据一示例性实施例示出的另一种数据处理方法的流程图;
57.图3是根据一示例性实施例示出的另一种数据处理方法的流程图;
58.图4是根据一示例性实施例示出的另一种数据处理方法的流程图;
59.图5是根据一示例性实施例示出的另一种数据处理方法的流程图;
60.图6是根据一示例性实施例示出的另一种数据处理方法的流程图;
61.图7是根据一示例性实施例示出的一种数据处理装置的框图;
62.图8是根据一示例性实施例示出的另一种数据处理装置的框图;
63.图9是根据一示例性实施例示出的另一种数据处理装置的框图;
64.图10是根据一示例性实施例示出的另一种数据处理装置的框图;
65.图11是根据一示例性实施例示出的另一种数据处理装置的框图;
66.图12是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
67.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
68.图1是根据一示例性实施例示出的一种数据处理方法的流程图,如图1所示,该方法包括:
69.步骤101,监听目标数据库,获取目标数据库中发生更新的目标数据。
70.举例来说,可以实时监听目标数据库,并在目标数据库中的任意数据发生更新时,获取目标数据库中发生更新的目标数据。其中,目标数据库可以是任一种关系型数据库,例
如mysql、oracle、sqlserver、db2等。具体的,可以通过监听工具实时监听目标数据库,在目标数据库发生变化时,监听工具可以获取目标数据库中发生更新的目标数据,并将目标数据发送给消息队列。之后可以从消息队列中获取目标数据,其中消息队列可以为kafka队列、rocketmq(英文:rocket message queue)、activemq(英文:active message queue)等。
71.步骤102,响应于在窗口队列中查找到存在与目标数据匹配的数据,更新窗口队列中的数据。
72.示例的,在获取到目标数据之后,可以在窗口队列中查找是否存在与目标数据匹配的数据,如果在窗口队列中查找到存在与目标数据匹配的数据,表示目标数据与该数据是同一种数据,那么可以更新窗口队列中的数据。具体的,可以删除窗口队列中与目标数据匹配的数据,并且保留目标数据,从而对每种数据进行筛选,使得窗口队列中存储的每种数据均为最新数据。
73.在一种实现方式中,在获取到目标数据之后,可以先将目标数据放入窗口队列,之后将目标数据与窗口队列中的其他数据依次进行比较,确定是否存在与目标数据匹配的数据。如果存在与目标数据匹配的数据,那么可以删除窗口队列中与目标数据匹配的数据,并且保留目标数据。
74.在另一种实现方式中,在获取到目标数据之后,可以先将目标数据与窗口队列中的其他数据依次进行比较,确定是否存在与目标数据匹配的数据,再进一步将目标数据放入窗口队列。如果存在与目标数据匹配的数据,那么可以删除窗口队列中与目标数据匹配的数据,并将目标数据放入窗口队列中,与目标数据匹配的数据在删除之前所在的位置。
75.需要说明的是,可以根据对应的主键是否相同来确定目标数据与窗口队列中的数据是否匹配。首先将目标数据与窗口队列中的每个数据依次进行比较,若目标数据与该数据的主键相同,那么表示目标数据该数据匹配,若目标数据与该数据的主键不相同,那么表示目标数据与该数据不匹配。也可以根据对应的指定字段来确定目标数据与窗口队列中的数据是否匹配。首先将目标数据与窗口队列中的每个数据依次进行比较,若目标数据与该数据的指定字段相同,那么表示目标数据与该数据匹配,若目标数据与该数据的指定字段不相同,那么表示目标数据与该数据不匹配。其中,指定字段可以为目标数据库中指定的一个字段,也可以为目标数据库中指定的多个字段的组合。例如:指定字段可以为电话号码字段,也可以为电话号码字段和姓名字段的组合。
76.步骤103,根据滚动时间窗口预设条件将窗口队列中更新后的数据写入数据存储区。
77.示例的,在窗口队列满足滚动时间窗口预设条件的情况下,可以将窗口队列中存储的更新后的数据写入数据存储区。其中,滚动时间窗口预设条件可以包括窗口队列内存储的数据的数量是否达到指定大小,或者窗口队列的时长是否达到指定时间。具体的,以指定大小为10、指定时间为5秒为例,当窗口队列中的数据的数量为10个时,可以确定窗口队列满足滚动时间窗口预设条件。或者,当窗口队列的时长达到5秒时,可以确定窗口队列满足滚动时间窗口预设条件。
78.其中,数据存储区可以是宽表,由于宽表可以存储较多字段,因此可以将窗口队列中的所有数据存储在一张宽表中,便于修改和查询目标数据。该宽表可以存储在服务器中,也可以存储在本地终端。用户可以在宽表中查询数据,无需访问目标数据库,从而降低了数
据库的查询压力。并且,由于宽表中存储的数据是经过窗口队列的筛选得到的最新数据,而不是目标数据库中每一次更新的所有数据,因此进一步可以节省网络带宽的消耗。
79.综上所述,本发明首先监听目标数据库,获取目标数据库中发生更新的目标数据,之后响应于在窗口队列中查找到存在与目标数据匹配的数据,更新窗口队列中的数据,最后,根据滚动时间窗口预设条件将窗口队列中存储的数据写入数据存储区。本发明根据目标数据对放入窗口队列的数据进行筛选,并将窗口队列中保留的数据写入数据存储区,能够降低数据库的查询压力,节省网络带宽的消耗。
80.图2是根据一示例性实施例示出的另一种数据处理方法的流程图,如图2所示,步骤101可以通过以下步骤来实现:
81.步骤1011,将监听工具作为目标数据库的从实例,以监听目标数据库。
82.步骤1012,通过监听工具获取目标数据库中发生更新的目标数据,将目标数据发送至消息队列。
83.步骤1013,通过数据流处理工具从消息队列中获取目标数据。
84.示例的,当目标数据库中的数据发生更新时,目标数据库的从实例可以获取目标数据库中发生更新的目标数据,从而实现数据的备份。因此,可以将监听工具伪装成目标数据库的从实例,以实时监听目标数据库中的数据变化。具体的,在目标数据库进行更新时,监听工具可以向目标数据库发送数据备份请求。其中,数据备份请求可以理解为,获取目标数据库发生更新的目标数据的请求。目标数据库在接收到数据备份请求之后,可以将发生更新的目标数据发送给监听工具,之后监听工具可以将目标数据发送给消息队列。其中,监听工具可以为canal。
85.具体的,以目标数据库为mysql、监听工具为canal、数据备份请求为dump请求、消息队列为kafka队列为例。canal可以伪装成mysql的从实例mysql slave,并模拟mysql slave的交互协议向mysql发送dump请求,mysql接收到canal发送的dump请求之后,可以将目标数据发送给canal,然后canal可以将目标数据发送给kafka队列。
86.进一步的,可以通过数据流处理工具从消息队列获取目标数据,并将目标数据放入窗口队列。其中,数据流处理工具例如可以是flink。在一种实现方式中,消息队列中每新增一个目标数据,可以立即将该目标数据发送给数据流处理工具。在另一种实现方式中,也可以按照预设的发送周期(例如2s),将消息队列中存储的目标数据发送给数据流处理工具,即异步发送。本发明对此不作具体限定。
87.图3是根据一示例性实施例示出的另一种数据处理方法的流程图,如图3所示,该方法还可以包括:
88.步骤104,获取目标数据的键值。
89.步骤105,基于目标数据的键值查找窗口队列中是否存在与目标数据匹配的数据。
90.示例的,在获取到目标数据的情况下,可以在窗口队列中查找是否存在与目标数据匹配的数据。具体的,可以将目标数据的键值与窗口队列中的数据的键值进行比较,以确定目标数据与窗口队列中的数据是否匹配。需要说明的是,键值可以为目标数据库的主键,也可以是多个指定字段的组合。如果该目标数据的键值与窗口队列中的数据的键值相同,那么可以确定该目标数据与该数据匹配。如果该目标数据的键值与窗口队列中的数据的键值不相同,那么可以确定该目标数据与该数据不匹配。
91.具体的,以窗口队列中存在a、b两个数据、键值为身份证号字段为例,目标数据中的身份证号字段与数据a的身份证号字段相同,且与数据b的身份证号字段不同,那么可以确定目标数据与数据a匹配,目标数据与数据b不匹配。以窗口队列中存在a、b、c、d四个数据、键值为姓名字段和电话号码字段的组合为例,目标数据与数据a的姓名字段相同,且电话号码字段不同,那么可以确定目标数据与数据a不匹配。目标数据与数据b的姓名字段不同,且电话号码字段相同,那么也可以确定目标数据与数据b不匹配。目标数据与数据c的姓名字段不同,且电话号码字段也不同,那么也可以确定目标数据与数据c不匹配。目标数据与数据d的姓名字段相同,且电话号码字段也相同,那么可以确定目标数据与数据d匹配。
92.图4是根据一示例性实施例示出的另一种数据处理方法的流程图,如图4所示,在步骤104之前,该方法还可以包括:
93.步骤106,将目标数据放入窗口队列。
94.相应的,步骤102的一种实现方式可以为:
95.删除窗口队列中与目标数据匹配的数据。
96.示例的,在获取到目标数据之后,可以先将目标数据放入窗口队列中,再进一步获取目标数据的键值,并查找窗口队列中是否存在与目标数据匹配的数据。如果查找到窗口队列中存在与目标数据匹配的数据,表示窗口队列中存在与目标数据为同一种数据的情况,且更新时间比目标数据早的数据(即较旧的数据),那么可以删除窗口队列中与目标数据匹配的数据,并且将目标数据保留在窗口队列中,使得窗口队列中存储的该种数据为最新数据。
97.图5是根据一示例性实施例示出的另一种数据处理方法的流程图,如图5所示,步骤102可以通过以下方式来实现:
98.步骤1021,删除窗口队列中与目标数据匹配的数据。
99.步骤1022,将目标数据放入窗口队列中与目标数据匹配的数据在删除之前所在的位置。
100.示例的,在获取到目标数据之后,可以先将目标数据与窗口队列中的数据依次进行比较。如果窗口队列中存在与目标数据匹配的数据,表示窗口队列中存在与目标数据为同一种数据的情况,且更新时间比目标数据早的数据(即较旧的数据),那么可以删除窗口队列中与目标数据匹配的数据,并将目标数据放入窗口队列中与目标数据匹配的数据在删除之前所在的位置,使得窗口队列中存储的该种数据为最新数据。例如,窗口队列中存在与目标数据匹配的数据x,且数据x存储在窗口队列中的第3个位置,那么可以删除数据x,并将目标数据放入窗口队列中的第3个位置。
101.在一种应用场景中,滚动时间窗口预设条件包括:
102.窗口队列中的数据的数量超出窗口队列的大小;或者,窗口队列的时长超过窗口队列的滑动时间。
103.示例的,滚动时间窗口预设条件可以包括窗口队列内存储的数据的数量超出(即大于)窗口队列的大小,或者窗口队列的时长超出(即大于)窗口队列的滑动时间。也就是说,如果窗口队列内存储的数据的数量大于或等于窗口队列的大小,或者窗口队列的时长大于或等于窗口队列的滑动时间,那么可以确定窗口队列满足滚动时间窗口预设条件。具体的,以窗口队列的大小为10、窗口队列的滑动时间为5秒为例,当窗口队列中的数据的数
量为11个时,可以确定窗口队列满足滚动时间窗口预设条件。或者,当窗口队列的时长超过5秒时,可以确定窗口队列满足滚动时间窗口预设条件。
104.图6是根据一示例性实施例示出的另一种数据处理方法的流程图,如图6所示,方法还包括:
105.步骤107,响应于在窗口队列中未查找到与目标数据匹配的数据,则将目标数据放入窗口队列。
106.示例的,如果在窗口队列中没有查找到与目标数据匹配的数据,表示窗口队列中不存在与目标数据是同一种数据的数据,目标数据即为该种数据对应的最新数据,那么可以将目标数据放入窗口队列,使得窗口队列中存储的该种数据为最新数据。
107.综上所述,本发明首先监听目标数据库,获取目标数据库中发生更新的目标数据。之后响应于在窗口队列中查找到存在与目标数据匹配的数据,更新窗口队列中的数据。最后,根据滚动时间窗口预设条件将窗口队列中更新后的数据写入数据存储区。本发明根据目标数据对放入窗口队列的数据进行筛选,并将窗口队列中保留的数据写入数据存储区,能够降低数据库的查询压力,节省网络带宽的消耗
108.图7是根据一示例性实施例示出的一种数据处理装置的框图,如图7所示,该装置200包括:
109.监听模块201,用于监听目标数据库,获取目标数据库中发生更新的目标数据。
110.处理模块202,用于响应于在窗口队列中查找到存在与目标数据匹配的数据,更新窗口队列中的数据。
111.存储模块203,用于根据滚动时间窗口预设条件将窗口队列中更新后的数据写入数据存储区。
112.图8是根据一示例性实施例示出的一种数据处理装置的框图,如图8所示,监听模块201包括:
113.监听子模块2011,用于将监听工具作为目标数据库的从实例,以监听目标数据库。
114.第一获取子模块2012,用于通过监听工具获取目标数据库中发生更新的目标数据,将目标数据发送至消息队列。
115.第二获取子模块2013,用于通过数据流处理工具从消息队列中获取目标数据。
116.图9是根据一示例性实施例示出的一种数据处理装置的框图,如图9所示,该装置200还包括:
117.获取模块204,用于获取目标数据的键值;
118.查找模块205,用于基于目标数据的键值查找窗口队列中是否存在与目标数据匹配的数据。
119.图10是根据一示例性实施例示出的一种数据处理装置的框图,如图10所示,该装置200还包括:
120.放入模块206,用于在获取目标数据的键值之前,将目标数据放入窗口队列。
121.处理模块202用于:
122.删除所述窗口队列中与所述目标数据匹配的数据。
123.图11是根据一示例性实施例示出的一种数据处理装置的框图,如图11所示,处理模块202包括:
124.删除子模块2021,用于删除窗口队列中与目标数据匹配的数据;
125.放入子模块2022,用于将目标数据放入窗口队列中与目标数据匹配的数据在删除之前所在的位置。
126.在一种应用场景中,滚动时间窗口预设条件包括:
127.窗口队列中的数据的数量超出窗口队列的大小;或者,窗口队列的时长超过窗口队列的滑动时间。
128.在另一种应用场景中,放入模块206还用于:
129.响应于在窗口队列中未查找到与目标数据匹配的数据,则将目标数据放入窗口队列。
130.综上所述,本发明首先监听目标数据库,获取目标数据库中发生更新的目标数据。之后响应于在窗口队列中查找到存在与目标数据匹配的数据,更新窗口队列中与目标数据匹配的数据,保留目标数据。最后,根据滚动时间窗口预设条件将窗口队列中更新后的数据写入数据存储区。本发明根据目标数据对放入窗口队列的数据进行筛选,并将窗口队列中保留的数据写入数据存储区,能够降低数据库的查询压力,节省网络带宽的消耗。
131.图12是根据一示例性实施例示出的一种电子设备300的框图。例如,电子设备300可以被提供为一服务器。参照图12,电子设备300包括处理器322,其数量可以为一个或多个,以及存储器332,用于存储可由处理器322执行的计算机程序。存储器332中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器322可以被配置为执行该计算机程序,以执行上述的数据处理方法。
132.另外,电子设备300还可以包括电源组件326和通信组件350,该电源组件326可以被配置为执行电子设备300的电源管理,该通信组件350可以被配置为实现电子设备300的通信,例如,有线或无线通信。此外,该电子设备300还可以包括输入/输出(i/o)接口358。电子设备300可以操作基于存储在存储器332的操作系统,例如windows server
tm
,mac os x
tm
,unix
tm
,linux
tm
等等。
133.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的数据处理方法的步骤。例如,该非临时性计算机可读存储介质可以为上述包括程序指令的存储器332,上述程序指令可由电子设备300的处理器322执行以完成上述的数据处理方法。
134.在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的数据处理方法的代码部分。
135.以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
136.另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
137.此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献