数据聚合方法、装置及计算设备与流程

文档序号:30582723发布日期:2022-06-29 13:19阅读:119来源:国知局
数据聚合方法、装置及计算设备与流程

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.图1示出了根据本发明一个实施例的数据聚合方法的流程图;
40.图2示出了根据本发明另一个实施例的数据聚合方法的流程图;
41.图3示出了根据本发明另一个实施例的数据聚合方法的应用环境示意图;
42.图4示出了根据本发明一个实施例的数据聚合装置的结构示意图;
43.图5示出了根据本发明一个实施例的一种计算设备的结构示意图。
具体实施方式
44.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
45.随着行业应用系统的规模迅速扩大,行业应用所产生的数据呈爆炸性增长,一般通过将各个数据源传递至云端的数据中心,云端的数据中心再对各个下游数据源的数据进行数据的转换存储、备份及聚合统计,以供后续的查询及展示使用。然而,由于本技术的发明人发现,在现有技术中对于数据的聚合处理中,由于数据源中的数据更新是通过消息传递的,云端的数据中心根据消息来确定触发获取数据并进行相应的业务数据处理和计算。然而对于分布式架构下的消息发送机制,其是无法保证时序性的,因此由于消息的乱序性影响,导致云端的数据中心需要无法实时进行聚合计算,而是通过根据消息先获取数据之后进行全量存储,再设定一定的周期来对之前全量存储的数据进行聚合计算,这导致在数据中心无法实时对数据进行聚合计算,导致效率较低;并且由于消息的乱序性影响,在进行聚合计算时需要根据业务代码去处理消息的乱序性问题,增加了处理流程所需要的时间,并且由于是全量数据处理,导致对数据算力的要求较高,容易导致数据系统的稳定性及准确性降低。
46.基于此,本发明实施例提供一种数据聚合方法及装置,通过在接收到业务数据更新消息时,实时获取目标业务对应的实时业务数据,并从用于存储全量业务数据一级数据表中获取原始业务数据,并根据实时业务数据及原始业务数据实时生成该目标业务对应的对应的聚合消息,进一步根据聚合消息进行增量聚合计算,得到目标业务对应的增量数据,最后根据增量数据对二级数据表进行增量数据更新,实时将增量更新后的业务数据存储在
二级数据表中,并将实时业务数据存储在一级数据表中,实现了在接收到业务数据更新消息时即可对实时业务数据进行增量聚合计算。并且由于实时生成目标业务对应的聚合消息,根据聚合消息中的第一关键数据及第二关键数据进行增量计算,从而使得不需要依赖于消息的时序,提高了数据聚合的准确性及系统稳定性。
47.图1示出了根据本发明一个实施例的数据聚合方法的流程图,该数据聚合方法应用于计算设备中,可以包括各种形式的设备,如服务器或服务器集群、分布式计算设备、台式电脑、笔记本电脑、平板电脑、智能手机、个人电脑等,例如可以是分布式集群设备的数据中心,本发明实施例不做具体限制。如图1所示,该方法包括如下步骤:
48.步骤101,响应于业务数据更新消息,从目标业务数据库中查询获取实时业务数据,并从一级数据表中获取原始业务数据。
49.本发明实施例中,业务数据更新消息指的是用于通知业务侧的业务数据发生更新的消息,该业务数据变更消息中携带有目标业务信息。如对于订单业务,可以是在商家业务平台产生了新的订单或订单数据发生变化的消息,该消息中所携带的目标业务信息包括订单id、时间等信息。
50.其中,在接收到该业务数据更新消息后,响应于该业务数据更新消息,根据目标业务信息,实时从相应业务侧的目标业务数据库中查询获取最新的实时业务数据,该目标业务数据库为业务侧对应的数据库。同时,根据所述目标业务信息,在一级数据表中获取所述原始业务数据。其中,该一级数据表用于存储接收到的全量业务数据,例如可以是数据中心自身用于存储各个业务侧的全量业务数据的大宽表。
51.其中,对于分布式架构的数据中心,其可以同时接收各个业务侧发送的业务数据更新消息,也即所述业务数据更新消息为多个,多个所述业务数据更新消息为多个目标对象对应的业务数据更新消息。同一个业务侧的同一目标对象也可能同时生成多个业务数据更新消息,因此需要对接收到的多个业务数据更新消息进行预处理,对于同一个目标对象的多个业务数据更新消息,一次只消费一个业务数据更新消息。本发明实施例接收所述业务数据更新消息后,当同时接收到同一所述目标对象对应的多个业务数据更新消息时,锁定所述目标对象对应的多个业务数据更新消息,对于一个所述目标对象每次消费只一个所述业务数据更新消息。具体地,对于分布式架构的数据中心,当同时接收到同一所述目标对象对应的多个业务数据更新消息时,可通过分布式锁锁定同一所述目标对象对应的多个业务数据更新消息,依次消费所述目标对象的各个所述业务数据更新消息。其中,本发明实施例的目标对象为业务侧产生实时业务数据的对象,如在线上餐饮下单场景,其目标对象可以为餐饮门店,实时业务数据为餐饮订单数据。本发明实施例根据所述业务数据更新消息获取目标业务最新的实时业务数据,由于每次获取到业务数据更新消息后,都去目标业务数据库中查询获取最新的实时业务数据,因此最新的实时业务数据的获取与业务数据更新消息的时序顺序无关,该方式无需根据业务数据更新消息的时序进行数据处理,提高了处理效率。
52.本发明实施例中,在获取了目标业务对应的实时业务数据,并从一级数据表中获取原始业务数据之后,可以将实时获取到的实时业务数据存储至一级数据表中,以更新全量存储数据。
53.步骤102:根据所述实时业务数据及所述原始业务数据进行增量聚合计算,得到目
标业务对应的增量数据。
54.本发明实施例,根据所述实时业务数据及所述原始业务数据生成聚合消息,根据所述聚合消息进行增量聚合计算,得到目标业务对应的增量数据。
55.其中,该聚合消息中包括原始业务数据中的第一关键数据及所述实时业务数据中的第二关键数据。本发明的一个实施例中,聚合消息包括消息体,该消息体中包括有原始数据模型及当前数据模型,其中,原始数据模型(orginmodel)用来存储在获取到该实时业务数据之前一级数据表中存储的业务数据的第一关键数据,也即原始业务数据。当前数据模型(currentmodel)用于存储实时获取得到的实时业务数据的第二关键数据,将所述第一关键数据存储在所述原始数据模型中,将所述第二关键数据存储在所述当前数据模型中,以形成所述聚合消息。具体地,确定目标业务(如订单业务)对应的关键字段,再根据所述关键字段从所述原始业务数据中确定第一关键数据,将所述第一关键数据存储在所述原始数据模型中,根据所述关键字段从所述实时业务数据中确定第二关键数据,将所述第二关键数据存储在所述当前数据模型中,从而最终得到聚合消息的消息体。其中,关键字段为目标业务进行增量聚合所需要的关键数据,该关键字段为预先设置的字段,本领域技术人员可依据具体场景进行相应设置,本发明实施例不做具体限制。本发明的一个实施例中,第一关键数据及第二关键数据可以为快照数据;具体地,第一关键数据为所述原始业务数据的快照数据;所述第二关键数据为所述实时业务数据的快照数据。通过使用快照数据,可以减少数据的写入量,提高增量计算的效率。
56.其中,在得到聚合消息后,根据所述聚合消息中的所述第一关键数据及所述第二关键数据进行增量聚合计算,得到目标业务对应的增量数据,也即增量数据δ=currentmodel-orginmodel。
57.步骤103:根据所述增量数据对二级数据表进行更新,并根据所述实时业务数据更新所述一级数据表。
58.其中,所述二级数据表用于存储所述业务数据对应的增量聚合数据。本发明实施例在得到增量数据后,可根据该增量数据对二级数据表中的增量聚合数据进行更新,得到更新后的增量聚合数据。同时,根据实时业务数据更新一级数据表。本发明实施例中,在业务数据更新消息为乱序时,一级数据表中原始业务数据已经在之前的业务数据更新消息的消费过程中更新过,则对应当前业务数据更新消息的消费过程中,一级数据表不更新存储该实时业务数据。
59.本发明实施例以一个餐饮订单场景为例,以目标业务为待结账金额维度进行计算时,对于一笔正常订单w,时刻1待结账金额为50元,时刻2顾客加菜,待结账金额为100元,时刻3顾客再加菜,待结账金额为200元,按照正常顺序,先数据中心先收到时刻1待结账金额对应的业务数据更新消息,再收到时刻2待结账金额对应的业务数据更新消息,最后收到时刻3待结账金额对应的业务数据更新消息。
60.在收到时刻1待结账金额对应的业务数据更新消息后,数据中心从目标数据库获取业务数据更新消息对应的实时业务数据(也即时刻1待结账金额为50元),则初始时一级数据表中由于没有该订单id对应的数据,则存储该实时业务数据w1=50,二级数据表由于之前也没有该订单id对应的数据,则也对应存储增量聚合数据w2=50。在收到时刻2待结账金额对应的业务数据更新消息后,获取对应的实时业务数据“待结账金额为100元”及一级
数据表中的原始业务数据“w1=50”,则计算增量

1=100-w1=50,则二级数据表针对订单w进行数据更新,w2=50+

1=50+50=100;同样的方式,在收到时刻3待结账金额对应的业务数据更新消息后,增量

2=200-100=100;二级表针对订单w的第二次数据更新后,计算增量w2=100+

2=100+100=200。
61.当数据中心收到的业务数据更新消息为乱序时,例如先收到时刻1待结账金额对应的业务数据更新消息,再收到时刻3待结账金额对应的业务数据更新消息,最后收到时刻2待结账金额对应的业务数据更新消息,则在收到时刻1待结账金额对应的业务数据更新消息后,数据中心从目标数据库获取该订单w对应的最新的实时业务数据(也即时刻1待结账金额为50元),则初始时一级数据表中由于没有该订单id对应的数据,则存储该实时业务数据w1=50,二级数据表由于之前也没有该订单id对应的数据,则也对应存储增量聚合数据w2=50。在收到时刻3待结账金额对应的业务数据更新消息后,查询目标数据库中最新的实时业务数据“待结账金额为200元”及一级数据表中的原始业务数据“w1=50”,则计算增量

1=200-w1=150,则二级数据表针对订单w进行数据更新,w2=50+

1=50+150=200,同时一级数据表确定该实时业务数据为最新的数据,则将“待结账金额为200元”存储在一级数据表中。同样的方式,在收到时刻2待结账金额对应的业务数据更新消息后,查询目标数据库中订单w最新的实时业务数据为“待结账金额为200元”及一级数据表中的原始业务数据“w1=200”,增量

2=200-200=0;则二级数据表针对订单w的第二次数据更新后,计算增量w2=200+

2=100+100=200。通过这样的方式,在接收到业务数据更新消息时,从目标业务数据库中实时查询最新的实时业务数据,并根据该实时业务数据与原始业务数据进行增量计算,可实现在对一级数据表中的全量的业务数据进行更新的同时,同步进行实时的增量聚合数据处理,实现了实时对增量计算。由于在处理过程中,无需根据业务数据更新消息的时序进行处理,仅根据目标业务对应的最新的实时业务数据及原始业务数据进行处理,从而使得不需要依赖于消息的时序,提高了数据聚合的准确性及系统稳定性。
62.根据本发明实施例的提供的数据聚合方法,通过在接收到业务数据更新消息时,实时获取目标业务对应的实时业务数据,并从用于存储全量业务数据一级数据表中获取原始业务数据,并根据所述实时业务数据及所述原始业务数据实时生成该目标业务对应的对应的聚合消息,进一步根据所述聚合消息中的第一关键数据及第二关键数据进行增量聚合计算,得到目标业务对应的增量数据,最后根据增量数据对二级数据表进行增量数据更新,实时将增量更新后的业务数据存储在二级数据表中,并将实时业务数据存储在一级数据表中,实现了在接收到业务数据更新消息时即可对实时业务数据进行增量聚合计算,提高了数据聚合的效率。并且,由于实时生成目标业务对应的聚合消息,根据聚合消息中的第一关键数据及第二关键数据进行增量计算,从而使得不需要依赖于消息的时序,提高了数据聚合的准确性及系统稳定性。
63.图2示出了根据本发明另一个实施例的数据聚合方法的流程图。首先对本发明实施例的应用环境进行阐述。请参考图3,图3示出了根据本发明另一个实施例的数据聚合方法的应用环境示意图。该方法应用于分布式集群的数据中心。该数据中心用于存储订单数据,包括数据供给应用、业务查询应用、数据聚合应用、一级数据表及二级数据表。其中,订单供给应用用于获取各个下游系统发送的业务数据更新消息,并发送消息给业务查询应用。业务查询应用用于查询目标业务对应的实时业务数据,数据聚合应用用于对业务数据
进行聚合处理。请结合图2和图3,本发明实施例的数据聚合方法包括以下步骤:
64.步骤201:数据供给应用获取下游系统发送的订单数据更新消息。
65.其中,下游系统通过分布式集群的下游系统将各个目标业务系统的订单数据更新的消息发送给数据中心的数据供给应用,该数据更新的消息中携带有目标订单信息,该目标订单信息包括目标订单id、对应的订单数据信息等。该下游系统为分布式集群的下游系统,例如可以是paas侧。云计算服务平台可分为三层,分别是iaas(infrastructure(基础设施)-as-a-service)、paas(platform(平台)-as-a-service)及saas(software(软件)-as-a-service)。第一层iaas即基础设施即服务,也被称为hardware-as-a-service,通过internet可以从完善的计算机基础设施获得服务,如存储和数据库。第二层paas,即平台即服务,相应的服务器平台或者开发环境作为服务进行提供,就成为了paas(platform as a service)。paas实际是指将软件研发的平台作为一种服务,以saas的模式提交给用户。因此paas也是saas模式的一种应用。第三层saas是软件即服务的简称,它是一种通过internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务。其中,数据供给应用通过添加分布式锁,保证同一个门店下之后一个消息正在被消费。
66.步骤201:数据供给应用根据该订单数据更新消息,发送消息至业务查询应用,以获取最新的实时订单数据,并从一级数据表中获取对应的原始订单数据。
67.其中,数据供给应用在接收到订单数据更新消息后,立刻发送消息至业务查询应用。业务查询应用在每一次收到该订单数据更新消息后都会去目标业务数据库中查询最新的实时业务数据。业务查询应用根据该订单数据更新消息中的目标订单id,在目标业务数据库中查询该目标订单id对应的最新的实时业务数据,并反馈给数据供给应用。
68.步骤202:数据供给应用根据获取到的实时订单数据及原始订单数据生成聚合消息,发送给数据聚合应用,并根据所述实时订单数据更新所述一级数据表。
69.本发明实施例中,数据供给应用根据获取到的实时订单数据及原始订单数据生成聚合消息的过程与上述实施例根据获取到的实时业务数据及原始业务数据生成聚合消息的过程的过程大体一致,此处不再赘述。
70.其中,根据所述实时订单数据更新所述一级数据表包括:由于消息乱序性影响,当实时订单数据与一级数据表中的原始订单数据一致时,不更新一级数据表中的原始订单数据。
71.步骤203:数据聚合应用根据聚合消息进行增量聚合计算,得到目标订单对应的增量数据。
72.本发明实施例中数据聚合应用根据聚合消息进行增量聚合计算,得到目标订单对应的增量数据的过程与上述实施例大体一致,此处不再赘述。
73.步骤204:数据聚合应用将增量数据发送至二级数据表,以使二级数据表根据该增量数据进行更新。
74.其中,数据聚合应用每次叠加增量

=currentmodel-orginmodel,将二级表当前数据进行更新累加,由于是根据增量

来进行数据更新,所以我们数据聚合的时不需要关注时序。
75.根据本发明实施例的提供的数据聚合方法,通过在接收到业务数据更新消息时,
实时获取目标业务对应的实时业务数据,并从用于存储全量业务数据一级数据表中获取原始业务数据,并根据所述实时业务数据及所述原始业务数据实时生成该目标业务对应的对应的聚合消息,进一步根据所述聚合消息中的第一关键数据及第二关键数据进行增量聚合计算,得到目标业务对应的增量数据,最后根据增量数据对二级数据表进行增量数据更新,实时将增量更新后的业务数据存储在二级数据表中,并将实时业务数据存储在一级数据表中,实现了在接收到业务数据更新消息时即可对实时业务数据进行增量聚合计算,提高了数据聚合的效率。并且,由于实时生成目标业务对应的聚合消息,根据聚合消息中的第一关键数据及第二关键数据进行增量计算,从而使得不需要依赖于消息的时序,提高了数据聚合的准确性及系统稳定性。
76.图4示出了本发明实施例提供的数据聚合装置的结构示意图。如图4所示,该装置400包括:获取模块410、增量聚合模块420和更新模块430。
77.获取模块410,用于响应于业务数据更新消息,从目标业务数据库中查询获取实时业务数据,并从一级数据表中获取原始业务数据;所述一级数据表用于存储全量的业务数据;
78.增量聚合模块420,用于根据所述实时业务数据及所述原始业务数据进行增量聚合计算,得到目标业务对应的增量数据;
79.更新模块430,用于根据所述增量数据对二级数据表进行更新,并根据所述实时业务数据更新所述一级数据表;所述二级数据表用于存储所述业务数据对应的增量聚合数据。
80.在一种可选的方式中,所述业务数据更新消息中包括目标业务信息;所述获取模块410,进一步用于:根据所述目标业务信息,在目标业务数据库中查询获取所述实时业务数据;所述目标业务数据库为业务侧对应的数据库;根据所述目标业务信息,在所述一级数据表中获取所述原始业务数据。
81.在一种可选的方式中,所述增量聚合模块420,进一步用于:根据所述实时业务数据及所述原始业务数据生成聚合消息;根据所述聚合消息进行增量聚合计算,得到目标业务对应的增量数据。
82.在一种可选的方式中,所述聚合消息中包括原始业务数据中的第一关键数据及所述实时业务数据中的第二关键数据;所述增量聚合模块420,进一步用于:根据所述聚合消息中的所述第一关键数据及所述第二关键数据进行增量聚合计算,得到目标业务对应的增量数据。
83.在一种可选的方式中,所述消息体聚合消息的消息体中包括原始数据模型及当前数据模型;所述增量聚合模块420,进一步用于:将所述第一关键数据存储在所述原始数据模型中,将所述第二关键数据存储在所述当前数据模型中,以形成所述聚合消息。
84.在一种可选的方式中,所述增量聚合模块420进一步用于:确定所述目标业务对应的关键字段;根据所述关键字段从所述原始业务数据中确定第一关键数据;根据所述关键字段从所述实时业务数据中确定第二关键数据。
85.在一种可选的方式中,第一关键数据为所述原始业务数据的快照数据;所述第二关键数据为所述实时业务数据的快照数据。
86.在一种可选的方式中,全量聚合模块,用于按照预设周期对所述一级数据表中的
全量业务数据进行全量数据聚合处理,得到全量数据聚合结果;根据所述全量数据聚合结果核对所述二级数据表中的聚合数据。
87.在一种可选的方式中,所述装置还包括:报表生成模块,用于根据二级数据表中的增量聚合数据生成数据报表;报表展示模块,用于将所述数据报表展示给用户。
88.在一种可选的方式中,所述业务数据更新消息为多个,多个所述业务数据更新消息为多个目标对象对应的业务数据更新消息;所述装置还包括:消息接收模块,用于接收所述业务数据更新消息;当同时接收到同一所述目标对象对应的多个业务数据更新消息时,锁定所述目标对象对应的多个业务数据更新消息;对于一个所述目标对象每次消费一个所述业务数据更新消息。
89.在一种可选的方式中,所述消息接收模块,还用于:当同时接收到同一所述目标对象对应的多个业务数据更新消息时,通过分布式锁锁定同一所述目标对象对应的多个业务数据更新消息,依次消费所述目标对象的各个所述业务数据更新消息。
90.本发明实施例提供的数据聚合装置400的以上各模块的描述参照方法实施例中对应的描述,在此不再赘述。
91.根据本发明实施例提供的数据聚合装置,通过在接收到业务数据更新消息时,实时获取目标业务对应的实时业务数据,并从用于存储全量业务数据一级数据表中获取原始业务数据,并根据所述实时业务数据及所述原始业务数据实时生成该目标业务对应的对应的聚合消息,进一步根据所述聚合消息中的第一关键数据及第二关键数据进行增量聚合计算,得到目标业务对应的增量数据,最后根据增量数据对二级数据表进行增量数据更新,实时将增量更新后的业务数据存储在二级数据表中,并将实时业务数据存储在一级数据表中,实现了在接收到业务数据更新消息时即可对实时业务数据进行增量聚合计算,提高了数据聚合的效率。并且,由于实时生成目标业务对应的聚合消息,根据聚合消息中的第一关键数据及第二关键数据进行增量计算,从而使得不需要依赖于消息的时序,提高了数据聚合的准确性。
92.本发明实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,可执行指令可执行上述任意方法实施例中的数据聚合方法。
93.图5示出了根据本发明实施例的一种计算设备的结构示意图,本发明实施例的具体实施例并不对计算设备的具体实现做限定。
94.如图5所示,该计算设备可以包括:处理器(processor)502、通信接口(communications interface)504、存储器(memory)506、以及通信总线508。
95.其中:
96.处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
97.通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。
98.处理器502,用于执行程序510,具体可以执行上述数据聚合方法实施例中的相关步骤。
99.具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
100.处理器502可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可
以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
101.存储器506,用于存放程序510。存储器506可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
102.程序510具体可以用于使得处理器502执行上述任意方法实施例中的数据聚合方法。程序510中各步骤的具体实现可以参见上述数据聚合方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
103.在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明实施例的内容,并且上面对特定语言所做的描述是为了披露本发明实施例的较佳实施方式。
104.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
105.类似地,应当理解,为了精简本发明实施例并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
106.本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
107.此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
108.本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的一些或者全部部件的一些或者全部功能。本发明实施例还可以实现为用于执行这里所描述的方法的一部分或者全部
的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
109.应该注意的是上述实施例对本发明实施例进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1