一种数据处理方法及装置与流程

文档序号:30613539发布日期:2022-07-02 00:19阅读:88来源:国知局
一种数据处理方法及装置与流程

1.本技术涉及数据处理技术领域,尤其涉及一种数据处理方法及装置。


背景技术:

2.随着社会生活水平的提高及理财观念的普及,越来越多的人通过购买股票、基金等方式进行理财。因此,资产管理业务蓬勃发展。
3.在资产管理业务架构中,持仓中心承担持仓计算、成交推导和投组估值推导的任务,例如,持仓中心可以基于实时行情推导投资组合估值,在推导过程中,当接收到用户的推导请求时,先查询实时行情,再在单线程中根据实时行情计算投资组合估值。
4.然而,上述方法每次都需要先查询实时的行情数据,然后再进行计算,存在处理效率较低的问题。且上述计算方法存在一定的延时,可能导致计算的结果已不再适用于当前的行情,得到的计算结果对用户的参考性较低。


技术实现要素:

5.本技术实施例提供一种数据处理方法及装置,通过将实时计算的目标数据存储在数据库中,这样,在接收关于目标事件的查询请求后,可以在数据库中查询目标事件的目标数据,从而不用在接收查询请求时现查行情进行计算,有效提高处理效率,且得到的目标数据具有较高参考价值。
6.第一方面,本技术实施例提供一种数据处理方法,包括:
7.计算目标事件对应的目标数据;
8.将所述目标数据存储在数据库中,并按照预设条件更新所述目标数据;
9.接收关于所述目标事件的查询请求;
10.响应于所述查询请求,在所述数据库中查询所述目标事件的目标数据;
11.输出所述目标事件的目标数据。
12.在一种可能的实施方式中,所述计算目标事件对应的目标数据,包括:
13.订阅所述目标事件;
14.基于所述订阅,计算所述目标事件对应的目标数据。
15.在一种可能的实施方式中,所述计算目标事件对应的目标数据,包括:
16.获取所述目标事件相关的计算数据;
17.将所述计算数据设置在n个队列中;其中,n为大于或等于1的整数;
18.利用n个线程计算所述n个队列中的计算数据,得到所述目标数据。
19.在一种可能的实施方式中,每个所述队列用于设置所述计算数据中一种类型的计算数据。
20.在一种可能的实施方式中,所述n个线程均设置有线程锁。
21.在一种可能的实施方式中,所述利用n个线程计算所述n各队列中的计算数据,包括:
22.分别对所述n个线程开启线程锁;
23.在开启线程锁的所述n个线程中分别计算所述n各队列中的计算数据。
24.在一种可能的实施方式中,所述队列为内存阻塞队列。
25.在一种可能的实施方式中,所述按照预设条件更新所述目标数据,包括:
26.获取所述目标事件对应的实时计算数据,以及所述目标事件在所述数据库中的存储的历史计算数据,所述历史计算数据为计算所述目标事件在所述数据库中的当前目标数据所使用的数据;
27.在所述实时计算数据与所述历史计算数据的变化率大于或等于第一阈值的情况下,计算所述目标事件对应的目标数据,并采用新计算的目标数据更新所述数据库中原有的目标数据。
28.在一种可能的实施方式中,所述按照预设条件更新所述目标数据,包括:
29.获取所述目标事件对应的实时计算数据,以及所述目标事件在所述数据库中的所述历史计算数据,所述历史计算数据为计算所述目标事件在所述数据库中的当前目标数据所使用的数据,所述历史计算数据关联有计算时间信息;
30.在所述实时计算数据的时间信息与所述历史计算数据的计算时间信息的差值大于或等于第二阈值的情况下,计算所述目标事件对应的目标数据,并采用新计算的目标数据更新所述数据库中原有的目标数据。
31.在一种可能的实施方式中,所述数据库包括缓存数据库和关系型数据库;所述将所述目标数据存储在数据库中,包括:
32.将所述目标数据设置在所述缓存数据库和所述关系型数据库中。
33.在一种可能的实施方式中,在所述数据库中查询所述目标事件的目标数据,包括:
34.在所述缓存数据库中查询所述目标事件的目标数据。
35.在一种可能的实施方式中,在所述数据库中查询所述目标事件的目标数据,包括:
36.在所述缓存数据库达到缓存时间阈值的情况下,在所述关系型数据库中查询所述目标事件的目标数据。
37.第二方面,本技术实施例提供一种数据处理装置,包括处理模块;
38.所述处理模块,用于计算目标事件对应的目标数据;
39.所述处理模块,还用于将所述目标数据存储在数据库中,并按照预设条件更新所述目标数据;
40.所述处理模块,还用于接收关于所述目标事件的查询请求;
41.所述处理模块,还用于响应于所述查询请求,在所述数据库中查询所述目标事件的目标数据;
42.所述处理模块,还用于输出所述目标事件的目标数据。
43.在一种可能的实施方式中,所述处理模块,还用于订阅所述目标事件;
44.所述处理模块,还用于基于所述订阅,计算所述目标事件对应的目标数据。
45.在一种可能的实施方式中,该数据处理装置还可以包括获取模块,所述获取模块用于获取所述目标事件相关的计算数据;
46.所述处理模块,还用于将所述计算数据设置在n个队列中;其中,n为大于或等于1的整数;
47.所述处理模块,还用于利用n个线程计算所述n个队列中的计算数据,得到所述目标数据。
48.在一种可能的实施方式中,每个所述队列用于设置所述计算数据中一种类型的计算数据。
49.在一种可能的实施方式中,所述n个线程均设置有线程锁。
50.在一种可能的实施方式中,所述处理模块,还用于分别对所述n个线程开启线程锁;
51.所述处理模块,还用于在开启线程锁的所述n个线程中分别计算所述n各队列中的计算数据。
52.所述处理模块,还用于在一种可能的实施方式中,所述队列为内存阻塞队列。
53.在一种可能的实施方式中,所述获取模块,还用于获取所述目标事件对应的实时计算数据,以及所述目标事件在所述数据库中的存储的历史计算数据,所述历史计算数据为计算所述目标事件在所述数据库中的当前目标数据所使用的数据。
54.所述处理模块,还用于在所述实时计算数据与所述历史计算数据的变化率大于或等于第一阈值的情况下,计算所述目标事件对应的目标数据,并采用新计算的目标数据更新所述数据库中原有的目标数据。
55.在一种可能的实施方式中,所述获取模块,还用于获取所述目标事件对应的实时计算数据,以及所述目标事件在所述数据库中的所述历史计算数据,所述历史计算数据为计算所述目标事件在所述数据库中的当前目标数据所使用的数据,所述历史计算数据关联有计算时间信息;
56.所述处理模块,还用于在所述实时计算数据的时间信息与所述历史计算数据的计算时间信息的差值大于或等于第二阈值的情况下,计算所述目标事件对应的目标数据,并采用新计算的目标数据更新所述数据库中原有的目标数据。
57.在一种可能的实施方式中,所述数据库包括缓存数据库和关系型数据库,所述处理模块,还用于将所述目标数据设置在所述缓存数据库和所述关系型数据库中。
58.在一种可能的实施方式中,所述处理模块,还用于在所述缓存数据库中查询所述目标事件的目标数据。
59.在一种可能的实施方式中,所述处理模块,还用于在所述缓存数据库达到缓存时间阈值的情况下,在所述关系型数据库中查询所述目标事件的目标数据。
60.第三方面,本技术实施例提供一种电子设备,包括:存储器和处理器。存储器,用于存储程序指令;处理器,用于调用并执行所述存储器中的程序指令,执行如上任一项所述的方法。
61.第四方面,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当计算机程序被处理器执行时,实现如上任一项所述的方法。
62.本技术实施例提供一种数据处理方法及装置,通过将实时计算的目标数据存储在数据库中,将对目标事件进行计算得到的目标数据存储在数据库中,这样,在接收关于目标事件的查询请求后,可以直接在数据库中查询目标事件的目标数据,从而不用在接收查询请求时现查行情进行计算,有效提高处理效率,且得到的目标数据具有较高参考价值。
附图说明
63.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
64.图1为本技术实施例提供的一种数据处理方法的流程示意图;
65.图2为本技术实施例提供的一种目标数据的存储流程示意图;
66.图3为本技术实施例提供的一种多个用户同时请求查询的示意图;
67.图4为本技术实施例提供的一种数据处理方法的流程示意图;
68.图5为本技术实施例提供的一种多线程处理的示意图;
69.图6为本技术实施例提供的一种电子设备的结构示意图。
70.通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
71.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
72.随着社会生活水平的提高及理财观念的普及,越来越多的人通过购买股票、基金等方式进行理财。因此,资产管理业务蓬勃发展,在资产管理业务中,证券、期货、基金和/或股票等金融投资公司作为资产管理人,根据资产管理合同约定的方式、条件、要求及限制,对客户资产进行经营运作,为客户提供证券、期货、基金和/或股票等金融产品的投资管理服务。
73.在资产管理业务架构中,持仓中心承担持仓计算、成交推导和投组估值推导的任务,例如,持仓中心可以基于实时行情推导投资组合估值,在推导过程中,当接收到用户的数据查询请求后,先查询实时行情,再在单线程中根据实时行情计算投资组合估值。
74.然而,在每次接收到用户的数据查询请求后,需要先查询实时的行情数据,然后再进行计算,存在处理效率较低的问题。
75.基于上述问题,本技术实施例提供一种数据处理方法,将对目标事件进行实时计算得到的目标数据存储在数据库中,这样,在接收关于目标事件的查询请求后,可以直接在数据库中查询目标事件的目标数据,得到目标事件的目标数据,从而不用在接收查询请求时现查行情进行计算,可以提高处理效率,且得到的目标数据具有较高参考价值。
76.图1为本技术实施例提供的一种数据处理方法,如图1所示,该方法包括:
77.s101:计算目标事件对应的目标数据。本技术实施例中,目标事件可以是与交易相关的事件,例如,目标事件可以获取某商品的价格,本技术实施例对目标事件的具体类型不作具体限定。
78.本技术实施例中,目标数据可以是与目标事件相关的数据,例如目标数据可以包括商品销售额、商品的持仓数据和/或投资组合估值,本技术实施例对目标数据的具体含义不作限定。
79.示例性的,若目标事件为获取某商品的价格,相应的目标数据可以为该商品的销售额。本技术实施例中,目标事件可以是执行本技术实施例的数据处理方法的系统中预先设置的,设置的规则或方式可以依据实际应用场景确定,例如,可以基于人工经验在系统中设置目标事件;或者,可以统计与用户查询请求相关的较多的事件,作为目标事件;或者,可以将实际应用中较为重要的事件作为目标事件,本技术实施例对目标事件的具体内容和设置方式不作限定。
80.需要说明的是,系统可以自动实时计算目标事件对应的目标数据,用户可以对该过程无感知,具体的计算方式本技术实施例不作限定。
81.s102:将目标数据存储在数据库中,并按照预设条件更新所述目标数据。
82.本技术实施例中,数据库可以包括缓存数据库和关系型数据库,其中,缓存数据库可以为远程字典服务(remote dictionary server,redis)或r2m等,关系型数据库可以为mysql等。其中,redis为基于内存运行并支持持久化的非关系型内存数据库,redis内部是一个key-value存储系统。它支持存储的value类型可以包括string(字符串)、list(链表)、set(集合)和hash(哈希类型)。
83.可能的实现方式中,图2为目标数据的存储流程示意图,如图2所示,应用程序前端直接读写目标数据存储至redis中,后端匀速异步地把数据存储到mysql。可以理解为,目标数据同时存储于缓存数据库和关系型数据库中。
84.可能的实现方式中,在计算过程中,可以对计算的频率和计算的精度进行控制。因此,按照预设条件更新目标数据可以理解为,当目标事件对应的计算数据与上一次执行计算任务时对应的计算数据之间的差值较大时,可以对目标事件进行计算,将新计算的目标事件对应的目标数据更新到数据库中,或者,当目标事件对应的计算数据的时间信息与上一次执行计算任务时对应的计算数据的时间信息之间的差值较大时,可以对目标事件进行计算,将新计算的目标事件对应的目标数据更新到数据库中。
85.可以理解的是,如果目标事件对应的计算数据与上一次执行计算任务时对应的计算数据之间的差值较小,和/或,目标事件对应的计算数据的时间信息与上一次执行计算任务时对应的计算数据的时间信息之间的差值较小,则可以不更新数据库中的目标数据,这样可以减少更新目标数据的频率,节约计算资源。
86.s103:接收关于目标事件的查询请求。
87.可能的实现方式中,该查询请求可以是用户对目标事件对应的目标数据的查询请求,其中,查询请求可以是用户通过相应的操作来触发的,例如,用户在查询系统对应的控件处的单击操作或双击操作等,本技术实施例中对此不做限定。
88.s104:响应于查询请求,在数据库中查询目标事件的目标数据。
89.可能的实现方式中,可以在缓存数据库中查询所述目标事件的目标数据。
90.可能的实现方式中,将目标数据存储至缓存数据库中时,可以设置缓存时间阈值,当目标数据在缓存数据库中的缓存时间超过缓存时间阈值的情况下,可以理解为目标数据在缓存数据库中缓存失效,因此可以在关系型数据库中查询所述目标事件的目标数据。其中,缓存时间阈值可以根据用户的需求来进行设定,例如,5分钟等,本技术实施例对缓存时间阈值的具体取值不作限定。
91.可能的理解方式中,缓存数据库中的目标数据是存储在内存中的,而关系型数据
库中的目标数据是存储在硬盘中的。因此,相比在关系型数据库中查询目标数据,在缓存数据库中查询目标数据的速度更快。如图3所示,在大量用户对系统发起查询请求时,若所有的请求直接访问关系型数据库,数据库会出现连接异常的问题,在这种情况下,可以直接访问缓存数据库获取目标数据,迅速响应用户的查询请求。
92.s105:输出目标事件的目标数据。
93.可能的实现方式中,用户可以在系统对应的可视化界面中查看目标事件的目标数据,或者用户可以在系统中下载目标事件的目标数据进行查看。
94.本技术实施例中,将对目标事件进行计算得到的目标数据存储在数据库中,这样,在接收关于目标事件的查询请求后,可以在数据库中查询目标事件的目标数据,得到目标事件的目标数据,从而不用在接收查询请求时现查行情进行计算,可以提高处理效率。
95.在图1对应的实施例的基础上,一种可能的实现方式中,s101包括:
96.s401:获取目标事件相关的计算数据。
97.可能的实现方式中,图5为计算目标事件对应的目标数据的流程示意图,如图5所示,在开始计算之前,可以先订阅目标事件,基于订阅计算目标事件对应的目标数据。在订阅目标事件后,可以获取该商品的代码,根据该代码可以查找到该商品所属的商品组合。其中,该商品组合的数量可以为一个或多个。
98.可能的理解方式中,计算数据可以包括实时计算数据和历史计算数据。其中,实时计算数据可以为商品的实时价格,历史计算数据可以为上次执行计算任务时对应的商品价格。
99.以目标事件为获取某商品的价格为例,可能的实现方式中,可以将实时变化的价格存储在消息队列中,通过订阅消息队列的方式订阅目标事件,例如,目标事件可以为某证券的行情价格,根据该证券代码查找到包含该证券的投资组合。在这种情况下,目标事件相关的计算数据可以是投资组合的实时行情数据和上一次执行计算任务时的行情数据。
100.s402:将计算数据设置在n个队列中。
101.本技术实施例中,n为大于或等于1的整数,例如,n可以为5。
102.本技术实施例中,队列可以为内存阻塞队列,每个队列用于设置计算数据中一种类型的计算数据。其中,每个队列用于设置计算数据中一种类型的计算数据,可以理解为,每个队列中设置一种商品组合的计算数据。
103.可能的理解方式中,阻塞队列是一个支持两个附加操作的队列,例如,在队列为空时,获取元素的线程会等待队列变为非空,当队列满时,存储元素的线程会等待队列可用。这样,若一个线程从一个空的阻塞队列中取元素时,该线程会被阻塞直到阻塞队列中有了元素。当阻塞队列添加元素后,阻塞的线程会自动被唤醒,从而不需要再编写代码去唤醒该线程,提高了处理效率。如果队列为非阻塞队列,它不会对线程产生阻塞,在这种情况下,需额外地实现同步策略以及线程间唤醒策略,处理效率较低且浪费计算资源。
104.可能的实现方式中,如图5所示,在查找到发生目标事件对应的商品所属的商品组合后,可以分别对商品组合的代码进行哈希变换,将不同商品组合的计算数据分别设置在n个队列中。
105.示例性的,在根据证券代码查找到包含该证券的投资组合后,将投资组合对应的行情数据设置在5个队列中(队列0、队列1、队列2、队列3和队列4),若包含该证券的投资组
合有4个,例如,投资组合0、投资组合1、投资组合2和投资组合3,则将投资组合0对应的代码0进行哈希变换(0%5=0)后,得到可以将投资组合0对应的行情数据设置在队列0中。同理,可以将投资组合1对应的行情数据设置在队列1中,可以将投资组合2对应的行情数据设置在队列2中,可以将投资组合3对应的行情数据设置在队列3中。可以理解为,每个队列中设置一种投资组合对应的行情数据,这样,每个投资组合的行情数据都进入同一个处理队列,从而保证分布式计算任务的一致性。
106.s403:利用n个线程计算n个队列中的计算数据,得到目标数据。
107.本技术实施例中,n个线程均设置有线程锁。可能的理解方式中,当多个线程同时计算数据时,可能导致数据不同步或者计算出现错误,通过线程锁来给方法或者代码块加锁,当某个方法或者代码块使用线程锁时,那么在同一时刻至多仅有一个线程在执行该段代码。当有多个线程访问同一对象的加锁方法或代码块时,同一时间只有一个线程在执行,其余线程必须要等待当前线程执行完之后才能执行该代码段,可以保证计算的准确性。
108.可能的实现方式中,分别对n个线程开启线程锁,在开启线程锁的n个线程中分别计算n各队列中的计算数据,得到目标数据。
109.本技术实施例中,将计算数据设置在n个队列中,利用n个线程计算n个队列中的计算数据,得到目标数据。这样,通过多线程的处理方式,可以串行执行计算任务,且使用分布式锁来解决多个计算数据并行计算可能出现的并发和不一致问题,从而达到高吞吐、一致性和可扩展等目标。
110.在图4对应的实施例的基础上,下面对每个线程中计算队列中的计算数据,并按照预设条件更新目标数据的一种实现方式进行介绍。
111.可能的实现方式中,获取目标事件对应的实时计算数据,以及目标事件在数据库中的历史计算数据,其中,历史计算数据为计算目标事件在数据库中的当前目标数据所使用的数据。在实时计算数据与历史计算数据的变化率大于或等于第一阈值的情况下,计算目标事件对应的目标数据,并采用新计算的目标数据更新数据库中原有的目标数据。
112.可能的理解方式中,在每一次完成计算后,会将当前计算对应的当前数据存储至数据库中。因此,目标事件对应的实时计算数据可以为商品的实时价格,目标事件在数据库中的历史计算数据为上一次执行计算任务时对应的价格。
113.本技术实施例中,第一阈值可以根据用户对数据处理的精度需求来进行设定,例如,第一阈值可以为0.0001等,本技术实施例对第一阈值的具体取值不作限定。
114.示例性的,若某证券的实时价格为105.1568,上一次计算后存储在数据库中的当前价格为105.1570,且第一阈值为0.0001,可以得到实时价格和当前价格的变化率为0.0002,该变化率大于第一阈值,则计算目标事件对应的目标数据,并采用新计算的目标数据更新数据库中原有的目标数据。这样,数据库中存储的目标数据为最新得到的数据,用户可以通过查询数据库,获取具有较高参考价值的最新目标数据。
115.示例性的,若某证券的实时价格为105.1568,上一次计算后存储在数据库中的当前价格为105.1568001,且第一阈值为0.0001,可以得到实时价格和当前价格的变化率为0.000001,该变化率小于第一阈值,则不计算目标事件对应的目标数据。可以理解为,因目标事件的变化较小,所以计算得到的目标数据差异不大,因此可以不对变化较小的目标数据进行计算,在这种情况下,数据库中存储的目标数据为上一次计算后得到的目标数据。
116.本技术实施例中,在实时计算数据与历史计算数据的变化率大于或等于第一阈值的情况下,计算目标事件对应的目标数据,并采用新计算的目标数据更新数据库中原有的目标数据。这样,在实时计算数据与历史计算数据的变化率小于第一阈值的情况下,可以不计算目标事件对应的目标数据,在可接受的范围内,可以保证数据处理的精度和敏感度,从而可以节省服务器的计算资源。
117.在图4对应的实施例的基础上,下面对每个线程中计算队列中的计算数据,并按照预设条件更新目标数据的另一种实现方式进行介绍。
118.可能的实现方式中,获取目标事件对应的实时计算数据,以及目标事件在数据库中的历史计算数据,其中,历史计算数据为计算目标事件在数据库中的当前目标数据所使用的数据,历史计算数据关联有计算时间信息。在实时计算数据的时间信息与历史计算数据的计算时间信息的差值大于或等于第二阈值的情况下,计算目标事件对应的目标数据,并采用新计算的目标数据更新所述数据库中原有的目标数据。
119.可能的理解方式中,在每一次完成计算后,会将当前计算的计算时间信息存储至数据库中。因此,目标事件对应的实时计算数据可以为商品的实时价格,历史计算数据为计算目标事件在数据库中的当前目标数据所使用的数据,例如,历史计算数据可以为上一次执行计算任务时对应的价格。实时计算数据的时间信息可以为商品的价格为实时价格时对应的时间信息,历史计算数据的计算时间信息为上一次执行计算任务时对应的时间信息。
120.本技术实施例中,第二阈值可以根据用户对数据处理的频率需求来进行设定,例如,第一阈值可以为1分钟等,本技术实施例对第二阈值的具体取值不作限定。
121.示例性的,若某证券在时间10:10对应的实时价格为105.1568,上一次执行计算任务的计算时间为10:07,且第二阈值为2分钟,实时价格的时间信息与上一次执行计算任务的计算时间信息的差值为3分钟,该差值大于第二阈值,则计算目标事件对应的目标数据,并采用新计算的目标数据更新数据库中原有的目标数据。这样,数据库中存储的目标数据为最新得到的数据,用户可以通过查询数据库,获取具有较高参考价值的最新目标数据。
122.若某证券在时间8:15对应的实时价格为891.0876,上一次执行计算任务的计算时间为8:14,且第二阈值为3分钟,实时价格的时间信息与上一次执行计算任务的计算时间信息的差值为1分钟,该差值小于第二阈值,则不计算目标事件对应的目标数据。可以理解为,实时价格的时间信息与上一次执行计算任务的计算时间信息差值较小,所以在较短的时间内计算得到的目标数据的差异不大。因此当实时价格的时间信息与上一次执行计算任务的计算时间信息的差值较小时,可以不对变化较小的目标数据进行计算,在这种情况下,数据库中存储的目标数据为上一次计算后得到的目标数据。本技术实施例中,在实时计算数据的时间信息与历史计算数据的计算时间信息的差值大于或等于第二阈值的情况下,计算目标事件对应的目标数据,并采用新计算的目标数据更新数据库中原有的目标数据。这样,在实时计算数据的时间信息与历史计算数据的计算时间信息的差值小于第二阈值的情况下的情况下,可以不计算目标事件对应的目标数据。这样,在可接受的范围内,保证了对目标事件对应的目标数据的频率,节省了服务器计算资源。
123.本技术实施例还提供一种数据处理装置,包括处理模块;处理模块,用于计算目标事件对应的目标数据;
124.处理模块,还用于将目标数据存储在数据库中,并按照预设条件更新目标数据;
125.处理模块,还用于接收关于目标事件的查询请求;
126.处理模块,还用于响应于查询请求,在数据库中查询目标事件的目标数据;
127.处理模块,还用于输出目标事件的目标数据。
128.在一种可能的实施方式中,处理模块,还用于订阅目标事件;
129.处理模块,还用于基于订阅,计算目标事件对应的目标数据。
130.在一种可能的实施方式中,该数据处理装置还可以包括获取模块,获取模块用于获取目标事件相关的计算数据;
131.处理模块,还用于将计算数据设置在n个队列中;其中,n为大于或等于1的整数;
132.处理模块,还用于利用n个线程计算n个队列中的计算数据,得到目标数据。
133.在一种可能的实施方式中,每个队列用于设置计算数据中一种类型的计算数据。
134.在一种可能的实施方式中,n个线程均设置有线程锁。
135.在一种可能的实施方式中,处理模块,还用于分别对n个线程开启线程锁;
136.处理模块,还用于在开启线程锁的n个线程中分别计算n各队列中的计算数据。
137.处理模块,还用于在一种可能的实施方式中,队列为内存阻塞队列。
138.在一种可能的实施方式中,获取模块,还用于获取目标事件对应的实时计算数据,以及目标事件在数据库中的存储的历史计算数据,历史计算数据为计算目标事件在数据库中的当前目标数据所使用的数据。
139.处理模块,还用于在实时计算数据与历史计算数据的变化率大于或等于第一阈值的情况下,计算目标事件对应的目标数据。
140.在一种可能的实施方式中,获取模块,还用于获取目标事件对应的实时计算数据,以及目标事件在数据库中的历史计算数据,历史计算数据为计算目标事件在数据库中的当前目标数据所使用的数据,历史计算数据关联有计算时间信息;
141.处理模块,还用于在实时计算数据的时间信息与历史计算数据的计算时间信息的差值大于或等于第二阈值的情况下,计算目标事件对应的目标数据。
142.在一种可能的实施方式中,数据库包括缓存数据库和关系型数据库,处理模块,还用于将目标数据设置在缓存数据库和关系型数据库中。
143.在一种可能的实施方式中,处理模块,还用于在缓存数据库中查询目标事件的目标数据。
144.在一种可能的实施方式中,处理模块,还用于在缓存数据库达到缓存时间阈值的情况下,在关系型数据库中查询目标事件的目标数据。
145.根据本公开实施例的另一个方面,本公开实施例还提供了一种电子设备,图6为本技术实施例提供的电子设备的硬件结构示意图。如图6所示,本实施例提供的建表语句生成设备60包括:至少一个处理器601和存储器602。该建表语句生成设备60还包括通信部件604。其中,处理器601、存储器602以及通信部件604通过总线604连接。
146.在具体实现过程中,至少一个处理器601执行存储器802存储的计算机执行指令,使得至少一个处理器601执行如上的建表语句生成方法。
147.处理器601的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
148.在上述的图6所示的实施例中,应理解,处理器可以是中央处理单元(英文:
central processing unit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
149.存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器。
150.总线可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component interconnect,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本技术附图中的总线并不限定仅有一根总线或一种类型的总线。
151.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上的建表语句生成方法。
152.上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
153.一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(application specific integrated circuits,简称:asic)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
154.读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
155.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
156.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
157.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络
单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本公开实施例方案的目的。
158.另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
159.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
160.还应理解,在本公开各实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。
161.以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
162.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
163.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
164.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本公开实施例方案的目的。
165.另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
166.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机
存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
167.还应理解,在本公开各实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。
168.以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1