数据收敛方法和数据收敛装置与流程

文档序号:29933097发布日期:2022-05-07 13:09阅读:455来源:国知局
数据收敛方法和数据收敛装置与流程

1.本技术涉及数据处理领域,特别涉及一种数据收敛方法和数据收敛装置。


背景技术:

2.各个行业的公司和企业都有数据收敛的需求,例如采购、库存、生产、销售、财务等。业务量越大需要处理的数据越多,也越复杂。数据收敛既要求准确、高效的计算,也要考虑投入成本。
3.目前常用的一种数据收敛方法通过关系型数据库分组查询来实现。具体地,应用服务器向数据库服务器发送结构化查询语言(structured query language,sql),该sql查询语句用于请求数据库服务器查询数据库中指定收敛维度的数据收敛结果;数据库服务器接收到来自应用服务器的sql查询语句之后,利用sql中的分组(group by)功能进行分组汇总来实现简单的数据收敛,并向应用服务器发送查询结果。这种数据收敛方法中,由于数据库服务器依据sql语句一次性执行完数据收敛计算后才将数据收敛结果返回给应用服务器中,因此在数据量较大的情况下会占用大量系统资源,导致查询十分缓慢,进而会造成连接超时甚至造成宕机,最终导致数据收敛失败。


技术实现要素:

4.本技术提供了一种基于应用服务器的数据收敛方法和数据收敛装置,可以提高数据收敛的成功率,进一步可以提高收敛效率。
5.第一方面,本技术提供一种数据收敛方法,所述方法包括:第一应用服务器向数据库服务器发送第一查询请求消息,所述第一查询请求消息用于请求数据库中的第一数据,所述第一数据的收敛维度值为目标收敛维度值;所述第一应用服务器接收来自所述数据库服务器的第一查询结果消息,所述第一查询结果消息中包括第一数据集,所述第一数据集中包含n个所述第一数据,n为正整数;所述第一应用服务器对所述第一数据集中的所述第一数据的目标维度的值进行收敛,得到第一收敛结果。
6.本方法中,应用服务器向数据库服务器发送的查询请求仅用于请求收敛维度值为目标收敛维度值的数据,并且由应用服务器来基于查询到的数据对目标维度的值进行数据收敛。这与现有技术中应用服务器向数据库服务器发送查询请求,由数据库服务器对收敛维度值为目标收敛维度值的所有数据的目标维度的值的进行收敛,并由数据库服务器将收敛结果反馈给应用服务器相比,因为数据库服务器仅需查询到收敛维度值为目标收敛维度值的数据即可向应用服务器返回查询结果,从而可以减少数据库服务器的处理时间,进而可以避免应用服务器与数据库服务器之间因长时间无反馈而断开链接的问题,最终可以提高数据收敛的成功率。
7.结合第一方面,在第一种可能的实现方式中,所述第一应用服务器为分布式系统中的一个,所述分布式系统中包括多个应用服务器,所述多个应用服务器用于对所述数据库中收敛维度值不同的数据的目标维度的值进行收敛。
8.对数据库中收敛维度值不同的数据的目标维度的值进行收敛时,使用多个应用服务器并行对不同收敛维度值的数据的目标维度的值进行收敛,与仅使用一个应用服务器来对这些数据的目标维度的值进行收敛相比,针对相同的数据量,因为所有数据被分摊到多个应用服务器上实现数据收敛,所以可以降低总的收敛时间,进而提高收敛效率。
9.从另一个角度来说,在相同的时间内,多个应用服务器可以对更多的数据进行收敛,因此可以提高数据收敛量。
10.可以理解的是,该实现方式中所涉及的收敛维度值不同的数据可以是收敛维度相同但收敛维度值不同的数据,也可以是收敛维度和收敛维度值均不同的数据;不同数据的目标维度可以相同,也可以不同。
11.结合第一种可能的实现方式,在第二种可能的实现方式中,所述多个应用服务器中不同的应用服务器具体用于对所述数据库中关联不同分片号的数据的目标维度的值进行收敛,所述数据库中不同分片号所关联的数据的收敛维度值不同,相应地,所述第一数据关联的分片号为目标分片号。
12.该实现方式中,为数据库中的数据关联分片号,其中,关联不同分片号的数据的收敛维度值应不同,这样,不同应用服务器对不同分片号关联的数据进行收敛也就等同于对不同收敛维度值的数据进行收敛。
13.数据库中的数据关联分片号之后,每个应用服务器向数据库服务器请求数据时,可以请求关联指定分片号的数据。这样,不同应用服务器请求关联了不同分片号的数据且不同应用服务器对关联不同分片号的数据进行收敛,可以避免数据冲突。
14.结合第二种可能的实现方式,在第三种可能的实现方式中,所述数据库中,每个数据关联的分片号是根据该数据的收敛维度值的哈希值和分片号总数计算得到的。
15.该实现方式中,分片号根据哈希值和分片总数计算得到,可以均衡各个分片号对应的第一数据的数量,从而有助于均衡不同应用服务器的数据收敛量,充分合理利用各个应用服务器的资源,最终有助于提高收敛效率。
16.结合第三种可能的实现方式,在第四种可能的实现方式中,所述第一数据关联的分片号为所述第一数据的收敛维度值的哈希值对所述分片号总数取余得到的余数。通常来说,分片号总数为分布式系统中应用服务器数量的整数倍。
17.结合第二种可能的实现方式,在第五种可能的实现方式中,所述每个数据关联的分片号为所述每个数据的收敛维度值的哈希值的个位值。
18.这样可以使得分布式系统中包含的应用服务器的数量为2、5或10的情况下,可以让分布式系统中的应用服务器均衡地进行数据收敛。
19.结合第三种或第四种或第五种可能的实现方式,在第六种可能的实现方式中,所述数据库中,收敛维度值相同的数据关联的分片号相同。
20.该实现方式中,相同收敛维度值的数据关联同一个分片号,相同收敛维度值的数据可以被同一个应用服务器收敛,与相同收敛维度值的数据被不同的应用服务器收敛相比,不需要应用服务器之间的数据传输和额外的计算,因此可以提高收敛效率。
21.结合第三种或第四种或第五种或第六种可能的实现方式,在第七种可能的实现方式中,所述第一查询请求消息具体用于请求数据库中n个关联第一分片号的数据,关联所述第一分片号的数据的收敛维度值为所述目标收敛维度值;
22.相应地,所述方法还包括:所述第一应用服务器向所述数据库服务器发送第二查询请求消息,所述第二查询请求消息用于请求所述数据库中n个关联所述第一分片号的数据;所述第一应用服务器接收来自于所述数据库服务器的第二查询结果消息,所述第二查询结果消息中包括第二数据集,所述第二数据集中包含n个所述第一数据;所述第一应用服务器对所述第二数据集中的数据的所述收敛维度进行收敛,得到第二收敛结果;所述第一应用服务器对所述第一收敛结果和所述第二收敛结果进行合并,得到第三收敛结果。
23.该实现方式中,应用服务器分批请求第一数据,并分批对第一数据进行收敛,使得数据库中的数据量大于应用服务器的处理能力的情况下,仍然可以实现数据收敛,即可以实现大数据量的数据收敛。
24.结合第七种可能的实现方式,在第八种可能的实现方式中,所述数据库中关联分片号的每个数据还关联对应收敛维度值的哈希值,其中,与相同分片号关联的多个数据所关联的哈希值。
25.相应地,所述第一查询请求消息具体用于请求所述数据库中n个关联所述第一分片号且按照所关联的哈希值的大小顺序排序的所述第一数据。
26.该实现方式中,应用服务器在对数据进行分批处理的情况下,请求数据库服务器按照收敛维度值的哈希值进行排序,可以使得收敛维度值相同的数据位于同一批数据中,从而可以使得应用服务器在一个批次的处理中尽可能对相同收敛维度值的第一数据进行收敛,从而可以进一步提高数据收敛的效率。
27.结合第八种可能的实现方式,在第九种可能的实现方式中,所述方法还包括:所述第一应用服务器接收所述第一数据;所述第一应用服务器计算所述第一数据的收敛维度值的哈希值;所述第一应用服务器根据所述第一数据的收敛维度值的哈希值和分片号总数计算所述第一数据关联的分片号;所述第一应用服务器向所述数据库服务器发送数据写请求消息,所述数据写请求消息用于请求向所述数据库写入所述第一数据、所述第一数据与所述收敛维度值的哈希值的关联关系以及所述第一数据与所述分片号的关联关系。
28.第二方面,本技术提供一种数据收敛装置,该装置可以包括用于实现第一方面或其中任意一种实现方式中的方法的一个或多个功能模块,每个功能模块可以通过软件和/或硬件的方式实现。例如,该装置可以包括发送模块和处理模块。
29.第三方面,本技术提供一种数据收敛装置。该装置可以包括与存储器耦合的处理器和收发器。其中,该存储器用于存储程序代码,该处理器用于执行该存储器中的程序代码,该收发器用于与其他设备(例如数据库服务器)通信,以实现第一方面或其中任意一种实现方式中的方法。
30.可选地,该装置还可以包括该存储器。
31.第四方面,本技术提供一种芯片,包括至少一个处理器和通信接口,所述通信接口和所述至少一个处理器通过线路互联,所述至少一个处理器用于运行计算机程序或指令,以执行如第一方面或其中任意一种可能的实现方式所述的方法。
32.第五方面,本技术提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行如第一方面或其中任意一种可能的实现方式所述的方法。
33.第六方面,本技术提供一种包含指令的计算机程序产品,当该计算机程序产品在
计算机上运行时,使得计算机执行如第一方面或其中任意一种可能的实现方式所述的方法。
34.第七方面,本技术提供一种计算设备,包括至少一个处理器和通信接口,所述通信接口和所述至少一个处理器通过线路互联,所述通信接口与目标系统通信,所述至少一个处理器用于运行计算机程序或指令,以执行如第一方面或其中任意一种可能的实现方式所述的方法。
35.第八方面,本技术提供一种计算系统,包括至少一个处理器和通信接口,所述通信接口和所述至少一个处理器通过线路互联,所述通信接口与目标系统通信,所述至少一个处理器用于运行计算机程序或指令,以执行如第一方面或其中任意一种可能的实现方式所述的方法。
附图说明
36.图1为本技术的实施例的一种应用场景的示意图;
37.图2为本技术的实施例的一种数据收敛系统的示意性架构图;
38.图3为本技术的实施例的一种数据收敛方法的流程示意图;
39.图4为本技术的实施例的一种基于第一应用服务器的数据收敛方法的流程示意图;
40.图5为本技术的实施例的一种基于分布式应用服务系统的数据收敛方法的流程示意图;
41.图6为本技术提供的一种对订单数据进行数据收敛计算的流程示意图;
42.图7为本技术一个实施例的数据收敛装置的示意性结构图;
43.图8为本技术另一个实施例的数据收敛装置的示意性结构图。
具体实施方式
44.为了便于理解,首先结合对本技术的技术方案的应用场景和所适用的系统架构进行介绍。
45.图1为本技术的实施例的一种应用场景的示意图。图1所示的场景是对一组订单数据进行数据收敛的场景。该场景中,每个数据包括四个维度,分别为“订单号”、“客户”、“商品名”和“数量”。
46.作为一个示例,以“客户”列作为收敛维度,以“数量”作为目标维度,对目标维度的值进行收敛。
47.例如,对于订单号为d001、d003、d004的数据,以“客户”为收敛维度时的收敛维度值为c01;订单号为d002、d005的数据,以“客户”为收敛维度时的收敛维度值为c02。
48.对目标维度“数量”的值进行收敛时,一种示例性实现方式中,可以对订单号d001、d003、d004中“数量”维度的值进行求和计算,得到收敛维度值为“c01”的订单号的商品总数量60,该商品总数量即为一个收敛结果;对订单号d002、d005中“数量”维度的值进行求和计算,得到收敛维度值为“c02”的订单号的商品总数量40,该商品总数量为另一个收敛结果。
49.可以理解的是,图1的场景仅是一种示例,本技术的技术方案还可以应用于其它场景,只要该场景涉及对数据进行数据收敛计算即可。例如,本技术的技术方案还可以应用于
计算采购数量、库存数量和销售额等场景。又如,其中通过求和计算来实现数据收敛仅是示例,还可以通过求平均值等方式来实现数据收敛。
50.图2为本技术实施例提供的一种数据收敛系统的示意性架构图。如图2所示,本技术实施例的数据收敛系统可以包括一个或多个应用服务器201,以及数据库服务器202。
51.本实施例的数据收敛系统中的应用服务器的数量可以根据实际需要进行扩展。本实施例中的数据收敛系统包括多个应用服务器时,这多个应用服务器可以并行计算。这多个应用服务器可以称为分布式数据收敛系统。
52.应用服务器201可以是任意具有计算功能的计算设备。例如,应用服务器201可以包括tomcat、websphere application server、resin、jrun、nec webotx application server、jboss application server、weblogic等类型的应用服务器。
53.数据库服务器202是指数据库系统或者数据库管理系统中能够执行接收、存储和发送数据的服务器。数据库服务器包括一台或多台计算机。数据库服务器上部署有数据库管理系统软件,例如,数据库服务器上可以部署oracle、db2、mysql、microsoft sql server、microsoft access等数据库管理系统软件。
54.应用服务器和数据库服务器之间可以通信,例如,应用服务器和数据库服务器之间通过查询语句进行数据传输。
55.下面对本技术提出的技术方案进行介绍。需要说明的是,下面几个实施例可以单独存在,也可以相互结合,对于相同或相似的内容,在不同的实施例中不再重复说明。
56.图3为本技术的实施例的一种数据收敛方法的流程示意图。如图3所示,该方法可以包括s301、s302和s303。
57.s301,第一应用服务器向数据库服务器发送第一查询请求消息,第一查询请求消息用于请求数据库中的第一数据,第一数据的收敛维度值为目标收敛维度值。
58.第一应用服务器可以是图2所示的系统中的任意一个应用服务器201,此处的数据库服务器可以是图2所示的系统中的数据库服务器202,此处的数据库可以是数据库服务器202所管理的数据库。
59.作为一种示例,数据库为sql关系型数据库,这种场景下,第一查询请求消息可以是sql查询语句,该语句中携带查询条件,以便于数据库服务器基于该查询条件查询得到收敛维度值为目标收敛维度值的数据。例如,查询条件的一种示例可以是“收敛维度值等于目标收敛维度值”。以图1所示的场景为例,收敛维度为客户时,查询条件的一个示例为“客户名为c01”,其中,c01为目标收敛维度值。
60.第一查询请求消息还可以通过携带其他信息来请求数据库服务器查询收敛维度值为目标收敛维度值的数据,具体实现方式请参见后续内容。
61.本实施例中,收敛维度值是指数据中指定收敛维度的值,指定收敛维度为数据所包含的多个数据维度中的一个或多个数据维度,目标收敛维度值为指定的值,目标维度是指值需要进行汇总的数据维度,收敛结果是指对收敛维度值等于目标收敛维度值的数据中目标维度的值进行汇总所得的结果。
62.例如,以图1所示的场景为例,一个数据包含订单号、客户名、商品名和商品数量等数据维度时,收敛维度可以包括客户和商品名,收敛维度值的一个示例为“c01+a”,目标维度的一个示例为数量,收敛方式的示例为求和,收敛结果的示例为60。
63.数据的收敛维度、收敛维度值、目标维度可以根据用户输入的收敛需求来设置。例如,图1所示的数据的三种示例性收敛维度如下:收敛维度可以设置为“客户”;收敛维度可以设置为“商品名”;收敛维度可以设置为“客户+商品名”。
64.s302,第一应用服务器接收来自数据库服务器的第一查询结果消息,第一查询结果消息中包括第一数据集,第一数据集中包含n个第一数据,n为正整数。
65.数据库服务器接收到第一应用服务器发送的第一查询请求消息后,根据第一查询请求消息进行查询得到满足查询条件的查询结果。
66.例如,第一查询请求消息中携带查询条件“收敛维度值等于目标收敛维度值”的场景下,数据库服务器将会查询数据库中满足该查询条件的数据,并将这些数据反馈给第一应用服务器。本实施例中,将数据库服务器向第一应用服务器反馈查询结果的消息称为第一查询结果消息。
67.s303,第一应用服务器对第一数据集中的第一数据的目标维度的值进行收敛,得到第一收敛结果。
68.第一应用服务器对第一数据集中的第一数据的目标维度的值进行收敛时,可以通过多种不同的方式进行收敛。例如,第一应用服务器可以对多个第一数据的目标维度的值求和,或者对多个第一数据的目标维度的值求和再平均等等。
69.第一应用服务器对第一数据集中的第一数据的目标维度的值进行收敛的方法可以是预先根据用户输入的需求设置好的。
70.本实施例中,应用服务器向数据库服务器发送的查询请求仅用于请求收敛维度值为目标收敛维度值的数据,并且由应用服务器来基于查询到的数据对目标维度的值进行数据收敛。这与现有技术中应用服务器向数据库服务器发送查询请求,由数据库服务器对收敛维度值为目标收敛维度值的所有数据的目标维度的值的进行收敛,并由数据库服务器将收敛结果反馈给应用服务器相比,因为数据库服务器仅需查询到收敛维度值为目标收敛维度值的数据即可向应用服务器返回查询结果,从而可以减少数据库服务器的处理时间,进而可以避免应用服务器与数据库服务器之间因长时间无反馈而断开链接的问题,最终可以提高数据收敛的成功率。
71.本实施例的一些实现方式中,可以在数据写入数据库之前,基于数据的收敛维度值为数据确定分片号,并将该分片号和该数据关联起来写入数据库中。这样,在第一应用程序服务器向数据库服务器请求第一数据时,第一查询请求消息中可以携带与目标收敛维度值对应的分片号作为查询条件。为了方便描述,本技术实施例中将目标收敛维度值对应的分片号称为第一分片号。
72.数据库服务器接收到第一查询请求消息之后,查询关联的分片号为第一分片号的数据,并将这些数据作为查询结果反馈给第一应用服务器,以便于第一应用服务器对这些数据进行收敛。
73.本实施例中,基于数据的收敛维度值为数据确定分片号的计算设备可以是第一应用服务器,也可以是其他计算设备,本技术对此不作限制。
74.本实施例,基于数据的收敛维度值为数据确定分片号的实现方式有多种。例如,可以计算每个数据的收敛维度值的哈希值,然后将该哈希值对预设的分片号总数进行求余运算,所得余数组为该数据关联的分片号。又如,可以计算每个数据的收敛维度值的哈希值,
然后将该哈希值的个位上的值作为该数据关联的分片号。
75.本实施例的一些实现方式中,第一应用服务器可以向数据库服务器分批请求第一数据,以分批对第一数据的目标维度的值进行收敛。例如,第一应用服务器每次只能对两万条数据进行数据收敛时,第一应用服务器可以每次仅向数据库服务器请求两万个第一数据,对这两万个第一数据进行收敛;收敛完成后,再次向数据库服务器请求两万个第一数据并进行收敛,并将本次收敛结果和之前的收敛结果进行合并;重复请求第一数据和收敛,直到所有第一数据均完成收敛。这种实现方式,可以使得第一应用服务器可以对更大数据量的数据进行数据收敛。
76.本实施例的一些实现方式中,数据关联分片号且第一应用服务器分批进行收据收敛的情况下,还可以为数据关联数据的收敛维度值的哈希值,其中,相同收敛维度值的数据关联的哈希值相同。
77.该实现方式中,第一应用服务器向数据库服务器请求指定数量的第一数据时,可以请求数据库服务器查询到分片号为第一分片号的数据之后,按照这些数据关联的哈希值的大小顺序对这些数据进行排序。数据库服务器可以向第一应用服务器反馈按照哈希值大小排序后的前n个第一数据,n是为一批数据设置的数据量。第一应用服务器接收到按照哈希值大小排序的n个第一数据之后,按照顺序进行数据收敛。
78.这种实现方式可以使得具有相同收敛维度值的数据排列在一起,从而使得具有相同收敛维度值的数据为同一批数据,进而可以使得第一应用程序可以尽量在一次数据收敛过程中对具有相同收敛维度值的数据进行收敛,而减少不同批次的收敛结果的合并,最终可以提高收敛效率。
79.本实施例的一些实现方式中,在保存收敛结果时,第一应用服务器可以设定缓冲区,缓存区满了或收敛结束时,第一应用服务器才批量将收敛结果写入数据库。这样可以减少数据库操作,从而提高数据库的查询效率,进而可以提高第一应用服务器从数据库服务器请求数据的效率,最终可以提高数据收敛效率。
80.本实施例的一些实现方式,第一应用服务器可以划分一块内存空间作为缓存区,并以收敛维度值为键值,以收敛结果的摘要信息为缓存元素,其中,摘要信息至少包含为每个收敛结果进行编号所得的结果编号。
81.因为相同收敛维度值的数据需要收敛在一起,即同一行结果编号的数据。缓存空间的主要作用是判断当前处理数据是新增,还是累加到已有的数据中。
82.在执行完一次数据收敛计算,得到一个收敛结果之后,需要先将该收敛结果存入缓存区中。将该收敛结果存入缓存区之前,需要判断当前缓存区中是否有与该收敛结果具有相同收敛维度值的结果数据,如果没有,则该收敛结果为新增结果数据,缓存区执行“插入”操作;如果有,则将该收敛结果累加到缓存区中与该收敛结果具有相同收敛维度值的结果数据中,缓存区执行“更新”操作。
83.本技术的一个实施例中,可以包含上述各个实现方式中的各个操作,下面结合图4进行介绍。请参见图4,本实施例的方法可以包括准备阶段、处理阶段和清理阶段。其中,准备阶段可以包括s401-s405,,处理阶段可以包括s406-s412,清理阶段可以包括s413-s414。
84.s401,第一应用服务器接收新数据。
85.第一应用服务器接收新数据,新数据表示第一应用服务器未接收过的数据。在第
一应用服务器接收新数据之后,可以根据实际数据收敛需求设置新数据的收敛维度。一个新数据可以对应一个或对个收敛维度,每个收敛维度可以包括一个或多个数据维度。
86.收敛维度的设置方法可以参考s301,此处不再赘述。
87.s402,按收敛维度计算哈希值和分片号。
88.第一应用服务器可以根据设定的新数据的收敛维度计算新数据的收敛维度值、哈希值和分片号。
89.基于新数据的收敛维度值计算新数据的分片号的实现方式有多种。例如,可以计算每个新数据的收敛维度值对应的哈希值,然后将该哈希值对预设的分片号总数进行求余运算,所得余数为该新数据关联的分片号。又如,可以计算每个新数据的收敛维度值对应的哈希值,然后将该哈希值的最后一位上的值作为该数据关联的分片号。
90.在一些实现方式中,可以在为新数据额外新增三个字段,这单个字段分别为:哈希值、分片号和结果编号。结果编号这个维度的值在进行数据收敛前可以为空,在该数据进行收据收敛之后结果编号这个维度的值可以是收敛结果对应的唯一标识。
91.s403,将新数据存入数据库服务器中。
92.第一应用服务器将前述新数据和在s402中计算得到的收敛维度值、哈希值、分片号和结果编号发送给数据库服务器,请求数据库服务存入数据库。
93.作为一个示例,第一应用服务器可以将新数据以表1所示的形式存入数据库服务器中。
94.表1数据的存储形式
95.订单号客户号商品名颜色数量收敛维度哈希值分片号d001c01a白色10c01a12588635953
96.s404,启动数据收敛任务,将数据进行分片划分。
97.当第一应用服务器启动数据收敛任务后,第一应用服务器根据收敛维度值查询该数据收敛任务所需要的数据,第一应用服务器中的任务调度器负责把分片号分配给第一应用服务器中的一个或多个收敛处理程序,该收敛处理程序根据分配到的分片号去数据库服务器查询具有相同分片号的数据。
98.第一应用服务器中有多个收敛程序时,不同的收敛处理程序可以进行并行计算。因为不同的收敛处理程序请求以及处理的数据所关联的分片号不同,因此不会发生数据读取和写入冲突。
99.第一应用服务器的任务调度器可以是第一应用服务器自身,也可以是能够与第一应用服务器通信的其他计算设备。
100.s405,把存量汇总数据预加载到缓存区。
101.存量汇总数据表示因为周期累计或异常中断等情况下,已经进行过至少一次数据收敛计算的带有结果编号和结果信息的数据。
102.第一应用服务器将具有与该次数据收敛计算所需的收敛维度值相同的存量汇总数据预加载到缓存区。
103.s406,查询未处理数据。
104.未处理数据表示未经过数据收敛计算的数据。第一应用服务器以分片号和按数据所对应的哈希值的大小进行排序为条件,分批次请求数据库服务器进行数据查询。例如,每
批次请求查询5000条数据。
105.s407,判断是否有未处理数据。若是,则执行s408;若否,则执行s412;
106.s408,按照配置的收敛维度进行数据收敛计算。
107.第一应用服务器中的多个收敛处理程序对以分片号为依据分配到本程序中的数据进行数据收敛计算,第一应用服务器中的多个收敛处理程序可以并行计算。
108.可选的,第一应用服务器可以向数据库服务器分批请求第一数据,以分批对第一数据的目标维度的值进行收敛。例如,第一应用服务器每次只能对两万条数据进行数据收敛时,第一应用服务器可以每次仅向数据库服务器请求两万个第一数据,对这两万个第一数据进行收敛;收敛完成后,再次向数据库服务器请求两万个第一数据并进行收敛,并将本次收敛结果和之前的收敛结果进行合并;重复请求第一数据进行收敛,直到所有第一数据均完成收敛,得到第一收敛结果。
109.可选的,第一应用服务器向数据库服务器请求指定数量的第一数据时,可以请求数据库服务器查询到分片号为第一分片号的数据之后,按照这些数据关联的哈希值的大小顺序对这些数据进行排序。数据库服务器可以向第一应用服务器反馈按照哈希值大小排序后的前n个第一数据,n为一批数据设置的数据量。第一应用服务器接收到按照哈希值大小排序的n个第一数据之后,按照顺序进行数据收敛,得到第一收敛结果。
110.例如,数据库服务器可以向第一应用服务器反馈按照哈希值大小排序后的前200个第一数据。第一应用服务器接收到按照哈希值大小排序的200个第一数据之后,按照顺序进行数据收敛,得到第一收敛结果。
111.可选的,第一应用服务器中的每个数据处理程序查询本程序的缓存区中是否有相同收敛维度的存量汇总数据,如果有,就将具有相同收敛维度的存量汇总数据与未处理数据一起进行数据收敛计算。
112.s409,将第一收敛结果存入缓冲区和缓存区。
113.第一应用服务器中的每个数据处理程序将得到的第一收敛结果分别存放在本程序中的缓冲区和缓存区中。将第一收敛结果存放在缓存区中时,需要记录该数据的处理进度。例如,把已处理的数据标记为已处理。
114.缓存区和缓冲区的内存大小可以根据实际需要进行设置,例如,将缓存区设置为可以保存200条数据,将缓冲区设置为可以保存500条数据。
115.s410,判断缓冲区内存是否已满。若是,则执行s411;若否,则执行s406。
116.s411,将第一收敛结果写入数据库服务器。
117.当缓冲区的内存已满,第一应用服务器将缓冲区中的所有数据存入数据库服务器中。或者,也可以向用户输出第一收敛结果,例如,通过显示装置显示第一收敛结果。
118.s412,保存缓冲区中的数据。
119.当第一应用服务器中没有未处理数据时,第一应用服务器将缓冲区中的所有数据存入数据库服务器中。
120.s413,清理缓冲区。
121.将第一应用服务器将缓冲区中的所有数据存入数据库服务器中后,清空缓冲区。本次数据收敛计算结束。
122.本技术的一个实施例中,可以将多个应用服务器进行并行连接,构成一个分布式
系统。例如,图2中的应用服务器201为多个时,这多个应用服务器构成分布式系统。
123.分布式系统中的多个应用服务器可以并行对数据库中的数据进行数据收敛。第一应用服务器为这多个应用服务器中的任意一个,这多个应用服务器的行为与第一应用服务器的相似,不同之处在于,这多个应用服务器可以用于对收敛维度值不同的数据进行数据收敛。
124.由多台应用服务器组成分布式系统,该分布式系统中的应用服务器并行进行数据收敛,与仅使用一个应用服务器来对这些数据的目标维度的值进行收敛相比,针对相同的数据量,因为所有数据被分摊到多个应用服务器上实现数据收敛,所以可以降低总的收敛时间,进而提高收敛效率。
125.从另一个角度来说,在相同的时间内,多个应用服务器可以对更多的数据进行收敛,因此可以提高数据收敛量。
126.本实施例中,又多个应用服务器来并行执行数据收敛时,不同应用服务器向数据库服务器请求的数据的收敛维度值可以不同,相应地,不同应用服务器可以对不同收敛维度值的数据进行收敛。这样可以避免数据冲突,以及可以提高收敛效率和提高收敛能力。
127.本实施例的一些实现方式中,不同应用服务器向数据库服务器请求不同分片号关联的数据,相应地,不同应用服务器可以对不同分片号关联的数据进行数据收敛。因为不同分片号关联的数据对应不同收敛维度值,所以,该实现方式的本质还是不同应用服务器对不同收敛维度值的数据进行数据收敛,因而可以提高收敛效率和提高收敛能力。
128.在一些实现方式中,同一个应用服务器可以请求多个分片号关联的数据,相应地,同一个应用服务器可以对多个分片号关联的数据进行数据收敛。
129.可以理解的是,该实现方式中不同应用服务器所涉及的收敛维度值不同的数据可以是收敛维度相同但收敛维度值不同的数据,也可以是收敛维度和收敛维度值均不同的数据;不同数据的目标维度可以相同,也可以不同。
130.本技术的一个实施例中,第一应用服务器中可以并行执行多个线程,不同的线程可以用于对收敛维度值不同的数据进行收敛。这些实现方式中的多线程对收敛维度值不同的数据进行收敛的实现方式,与前述内容中的多个应用程序服务器对收敛维度值不同的数据进行收敛的实现方式相似,此处不再赘述,只需将多个应用程序服务器替换为多个线程即可。
131.本技术的一个实施例中,可以通过多个应用服务器来实现数据收敛,且这多个应用服务器中至少一个应用服务器上可以通过并行的多个线程来实现数据收敛。下面结合图5进行介绍。如图5所示,该实施例的方法可以包括s501至s508。
132.s501,设置收敛维度。
133.作为一种示例,用户可以根据实际需要在应用服务器中设置收敛维度。例如,可以将设置好的收敛维度记录在收敛维度配置表中。收敛维度配置表最终可以存储在数据库服务器中,也可以存储在应用服务器中。
134.s502,根据收敛维度计算哈希值和分片号。
135.作为一种示例,应用服务器的分片计算器根据设置的收敛维度计算每个数据的哈希值和分片号。例如,经过分片计算器计算后得到0、1、2、3、4、5、6、7、8、9这10个分片号。应用服务器的分片计算器可以是应用服务器自身,也可以称为应用服务器的任务调度器。
136.计算分片号的方法可以参考s402,此处不再赘述。
137.s503,将分片号分配给各个应用服务器。
138.作为一种示例,应用服务系统中的任务调度器将分片号分配给系统中的各个应用服务器,系统中的应用服务器可以根据需要进行扩展。系统中的多台应用服务器中至少有一台应用服务器上可以通过并行的多个线程来实现数据收敛。
139.例如,应用服务系统将分片号0、1、2、9分配给应用服务器1,将分片号3、4、5分配给应用服务器2,将分片号6、7、8分配给应用服务器3。其中,应用服务器1有分了4个处理线程,每个分片号对应一个处理线程,这4个线程可以并行计算。
140.s504,根据分配到的分片号查找具有相同分片号的数据。
141.作为一种示例,任意一个应用服务器或任意一个应用服务器中的任意一个处理线程可以根据分配到的分片号查询与本应用服务器或本处理线程具有相同分片号的数据。
142.例如,如图5所示,假设数据1的分片号为3,数据2的分片号为0,则应用服务器2将查询到数据1,应用服务器1中的分片0将查询到数据2。
143.s505,将汇总表中具有相同收敛维度值的结果数据预加载到缓存区中。
144.作为一种示例,应用服务器的任务调度器将汇总表中的结果数据预加载到与该结果数据具有相同数据收敛维度值的数据所在的应用服务器或处理线程的缓存区中。
145.例如,结果数据1与应用服务器3中的数据具有相同的收敛维度值,应用服务器将结果数据1预加载到应用服务器3的缓存区中。
146.又如,结果数据2与应用服务器1中的分片9中的数据具有相同的收敛维度值,应用服务器将结果数据2预加载到分片9中的缓存区中。
147.s506,根据收敛维度值进行数据收敛计算
148.作为一种示例,应用服务器和/或应用服务器中的处理线程根据收敛维度值对应用服务器和/或应用服务器中的处理线程中的数据进行数据收敛计算。
149.具体的数据收敛计算方法可以参考s408中的计算方法,此处不再赘述。
150.s507,将第一收敛结果分别放入缓冲区和缓存区。
151.作为一种示例,应用服务器和/或应用服务器中的处理线程将得到的第一收敛结果分别放入缓冲区和缓存区中。
152.s508,将缓冲区中的所有第一收敛结果存入汇总表中。
153.作为一种示例,当缓冲区已满后,应用服务器将缓冲区中的所有第一收敛结果存入汇总表中,汇总表位于数据库服务器中。
154.图6为本技术提供的一种对订单数据进行数据收敛计算的流程示意图。下面结合图6,以订单数据处理过程为例,对本技术提供的数据收敛计算的实现方式进行介绍。图6所示的方法可以包括s601至s607。
155.s601,接收新订单数据。
156.例如,图5中所示的多个应用服务器接收新订单数据。该新订单数据的一种示例如表2所示。
157.表2
158.订单号客户号商品名颜色数量d001c01a白色10
d002c01b黑色20d003c02c白色20d004c03a黑色10d005c01a黑色20d006c02c白色40d007c03d白色60d008c03b黑色30d009c02b黑色100d010c01c白色100
159.表2所示的新订单数据中包括订单号、客户号、商品名、颜色和数量这5个数据维度。
160.s602,确定应用服务器的数量和分片总数。
161.应用服务器的数量和每台应用服务器中的分片总数可以根据实际需要进行扩展,多台应用服务器可以并行计算。每台应用服务器中也可以包含多个线程,这多个线程也可以并行计算。
162.例如,应用服务器的数量可以为2,分片总数可以设置为4,这种情况下,每台应用服务器中可以划分2个片区,即每台应用服务器可以对两个分片号对应的数据进行收敛。
163.s603,设置收敛维度和目标维度。
164.每个数据的收敛维度和目标维度可以根据实际数据收敛需要进行设置。例如,针对订单号为d001、d002、d005和d010的数据,收敛维度设置为“客户号+商品名”;针对订单号为d003、d006和d009的数据,收敛维度设置为“客户号+颜色”;针对订到号为d004、d007和d008的数据,收敛维度设置为“客户号”;目标维度均设置为“数量”,收敛方式为求和。
165.表3
166.收敛维度目标维度收敛方式客户号+商品名数量求和客户号+颜色数量求和客户号数量求和
167.s604,根据收敛维度计算新订单数据中每个数据的收敛维度值、哈希值和分片号。
168.根据表2中的新订单数据和表3中设置的收敛维度,可以得到每个数据的收敛维度值;再利用哈希算法,根据每个数据的收敛维度值,可以得到每个数据的哈希值;然后根据每个数据的哈希值和分片总数,可以计算每个数据的分片号。作为一种示例,哈希算法可以为循环冗余校验(cyclic redundancy check,crc32)算法。作为一种示例,可以采用哈希值与分片总数进行取余计算的方法计算每个数据的分片号。采用上述方法得到的每个订单数据的收敛维度值、哈希值和分片号的示例如表4所示。
169.表4
170.订单号客户号商品名颜色数量收敛维度哈希值分片号d001c01a白色10c01a12588635953d002c01b黑色20c01b35233408811d003c02c白色20c02白色39546564600
d004c03a黑色10c0339769695822d005c01a黑色20c01a12588635953d006c02c白色40c02白色39546564600d007c03d白色60c0339769695822d008c03b黑色30c0339769695822d009c02b黑色100c02黑色21532695982d010c01c白色100c01c27686898633
171.又如,将分片总数设置为10,将每个数据的哈希值的最后一位作为该数据的分片号时,每个订单数据的收敛维度值、哈希值和分片号的另一示例如表5所示。
172.表5
173.订单号客户号商品名颜色数量收敛维度哈希值分片号d001c01a白色10c01a12588635955d002c01b黑色20c01b35233408811d003c02c白色20c02白色39546564600d004c03a黑色10c0339769695822d005c01a黑色20c01a12588635955d006c02c白色40c02白色39546564600d007c03d白色60c0339769695822d008c03b黑色30c0339769695822d009c02b黑色100c02黑色21532695988d010c01c白色100c01c27686898633
174.添加收敛维度值、哈希值和分片号之后的新订单数据可以以表4或表5的形式请求数据库服务器存储到数据库中。
175.s605,根据分片号进行分片划分。
176.以表4为例,其中的所有订单数据总共关联了4个分片号,分别为0、1、2和3。可以将这4个分片号平均分配给2个应用服务器,其中,一台应用服务器分配到2个分片号,一个分片号对应一个处理线程,这4个处理线程可以并行计算。
177.例如,应用服务器1分配到0和1两个分片号,应用服务器2分配到2和3两个分片号,0、1、2、和3这4个分片号分别对应4个处理线程,分片号0和1对应的处理线程位于应用服务器1中,分片号2和3对应的处理线程位于应用服务器2中。
178.s606,将数据按照分片号分配到对应片区。
179.例如,应用服务器接收到来自数据库服务器的新订单数据之后,可以根据新订单数据中每个数据的分片号,将新订单数据中的数据分配到具有相同分片号的处理线程中。例如,以图5所示的应用服务器1为例,订单号为d008的数据的分片号为2,则应用服务器1可以将该数据分配给应用服务器1中对应分片号2的处理线程。
180.s607,根据设置的收敛维度进行数据收敛计算。
181.为了方便介绍,假设新订单数据中的所有数据都被分配在分片号为0的处理线程中进行数据收敛计算。
182.例如,应用服务器可以请求数据库服务器根据新订单数据中的每个数据的哈希值
的大小进行降序排列。排列结果的一种示例如表6所示。
183.表6
184.订单号客户号商品名颜色数量哈希值分片号d004c03a黑色1039769695820d007c03d白色6039769695820d008c03b黑色3039769695820d003c02c白色2039546564600d006c02c白色4039546564600d002c01b黑色2035233408810d010c01c白色10027686898630d009c02b黑色10021532695980d001c01a白色1012588635950d005c01a黑色2012588635950
185.应用服务器可以分批接收根据哈希值排序后的新订单数据,并依次对每个批次中的数据进行数据收敛计算。
186.例如,将表5中的按照哈希值进行降序排列后的10条数据进行分批,一共分为5个批次,每个批次中有2条数据。第一批次中的2条数据具有相同的哈希值,将这2条数据进行数据收敛计算,得到结果数据r01。将结果数据r01分别存入缓冲区和缓存区中。
187.进行第二批次的数据收敛计算时,将缓存区中的结果数据r01与第二批次中的2条数据一起进行数据收敛计算,得到结果数据r01和r02,将结果数据r01和r02分别存入缓冲区和缓存区。依次对以下批次进行上述操作,直到所有数据计算完毕,得到数据收敛结果。
188.可以根据实际需要设置缓冲区的内存大小。例如,将缓冲区的内存设置为2条数据。
189.s608,将数据收敛结果存入数据库服务器中。
190.可选地,当缓冲区中的数据收敛结果数量达到缓冲区的内存上限时,将缓冲区中的数据收敛结果存入数据库服务器中,并清空缓冲区。
191.可选地,当新订单数据中的所有数据计算完毕后,将缓冲区中的所有结果数据存入数据库服务器中,并清空缓冲区。
192.在该种实现方式中,具有相同收敛维度值的数据被分配到同一片区中,与将所有待收敛数据随机分配到各个片区中的分配方式相比,提高了收敛效率;将分配到同一片区中的数据按照哈希值进行排序,可以将具有相同哈希值的数据相邻排列,减少了数据的查找时间,提高了计算效率;将分配到同一片区中的数据再进行分批计算,可以实现大数据量的数据收敛。
193.图7和图8为本技术的实施例提供的装置的结构示意图。这些装置可以用于实现上述任意一个实施例中的方法,因此也能实现上述任意一个实施例所具备的有益效果。图7或图8所示的装置可以是应用服务器,也可以是能够应用于应用服务器中的芯片。
194.图7为本技术一个实施例的数据收敛装置的示意性结构图。如图7所示,装置700可以包括发送模块701、接收模块702和收敛模块703。发送模块701也可以称为发送单元701,接收模块702也可以称为接收单元702,收敛模块703也可以称为收敛单元703。
195.在一种实现方式中,装置700可以用于实现上述图3所示的方法。例如,发送模块701用于实现s301,接收模块702用于实现s302,收敛模块703用于实现s303。
196.在另一种实现方式中,装置700还可以包括处理模块。该实现方式中的装置700可以用于实现上述图4所示的方法。例如,发送模块701用于实现s403和s411,接收模块702用于实现s405,收敛模块703可以用于实现s408,处理模块可以用于实现s401-s402、s404、s406-s407、s409-s410和s412-s413。
197.在又一种实现方式中,装置700还可以包括处理模块。该实现方式中的装置700可以用于实现上述图5所示的方法。例如,发送模块701用于实现s508,接收模块702用于实现s505,收敛模块703用于实现s506,处理模块可以用于实现s501-s503和s507。
198.在再一种实现方式中,装置700还可以包括处理模块。该实现方式中的装置700可以用于实现上述图6所示的方法。例如,发送模块701用于实现s608,接收模块702用于实现s601,收敛模块703用于实现s607,处理模块可以用于实现s602-s606。
199.本技术实施例的一些实现方式中,接收模块和发送模块可以通过收发器或通信接口来实现,收敛模块和处理模块可以通过处理器来实现。
200.图8为本技术另一个实施例的数据收敛装置的示意性结构图。图8所示的装置800可以用于执行前述任意一个实施例所述的方法。
201.如图8所示,本实施例的装置800包括:存储器801、处理器802、通信接口803以及总线804。其中,存储器801、处理器802、通信接口803通过总线804实现彼此之间的通信连接。
202.存储器801可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器1101可以存储程序,当存储器801中存储的程序被处理器802执行时,处理器802可以用于执行图4、图5或图6所示的方法的各个步骤。
203.处理器802可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),或者一个或多个集成电路,用于执行相关程序,以实现本技术方法实施例的推理车道的方法或训练车道推理模型的方法。
204.处理器802还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术各个实施例的方法的各个步骤可以通过处理器802中的硬件的集成逻辑电路或者软件形式的指令完成。
205.上述处理器802还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
206.结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器802读取存储器801中的信息,结合其硬件完成本技术实施例中各个方法所需执行的功能,例如,可以执行图3、图4、图5或图6所示实
施例的各个步骤/功能。
207.通信接口803可以使用但不限于收发器一类的收发装置,来实现装置800与其他设备或通信网络之间的通信。
208.总线804可以包括在装置800各个部件(例如,存储器801、处理器802、通信接口803)之间传送信息的通路。
209.应理解,本技术实施例所示的装置800可以是电子设备,或者,也可以是配置于电子设备中的芯片。
210.应理解,本技术实施例中的处理器可以为中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
211.还应理解,本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,ram)可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
212.上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘。
213.应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,其中a,b可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
214.本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
215.应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
216.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
217.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
218.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
219.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
220.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
221.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
222.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1