一种数据汇总方法和装置的制作方法

文档序号:6377556阅读:153来源:国知局
专利名称:一种数据汇总方法和装置的制作方法
技术领域
本发明涉及数据分析,更具体地说,涉及一种数据汇总方法和装置。
背景技术
产品在生产、运行过程中产生的数据往往是具体的、零散的,数据汇总是指根据实际需求对具体的、零散的数据进行数据提取、分析、存储。随着计算机技术的发展,数据的汇总方法从手动汇总变为自动汇总。手动汇总是指通过人力将获取的数据进行统计分析、存储。自动汇总是指依靠智能终端及在该智能终端设定的程序步骤,将获取的数据进行统计分析、存储。
现有的数据自动汇总方法如下以实际需求为依据建立一个任务,再通过智能终端执行建立的任务。该方法的缺点如下由于实际需求通常有多个,而每一个需求需要分析汇总的数据更是多如牛毛,因此,若针对多个需求仍只建立一个任务,则在执行该任务时,由于智能终端本身的硬件条件有限,处理速度极可能变得很缓慢,且针对多个需求建立的一个任务对应的信息量通常很大,容易造成内存溢出。

发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种能够解决数据汇总数据慢和内存溢出问题的数据汇总方法和装置。本发明解决其技术问题所采用的技术方案是提出一种数据汇总方法,包括如下步骤
51、获取数据,并分类存入相应的数据文件中;
52、依据数据汇总需求生成至少一个数据汇总任务;
53、依据数据汇总任务之间的依赖关系执行每一个数据汇总任务,根据遍历数据文件得到的数据执行该数据汇总任务对应的操作,并在执行该数据汇总任务结束后释放分配的内存。一个实施例中,所述方法还包括
54、生成已执行的数据汇总任务的临时索引文件。一个实施例中,所述步骤SI具体包括
511、获取需要分析的多个数据;
512、根据数据的生成规则解析获取的数据,得到该数据的属性信息;
513、依据数据的属性信息将解析后的数据按照指定的格式分类存入相应的数据文件中。一个实施例中,所述步骤S3具体包括
531、依据数据汇总任务之间的依赖关系将生成的数据汇总任务标识为独立任务和关联任务;
532、对于每个独立任务,遍历数据文件,根据从数据文件遍历得到的数据执行该独立任务对应的操作,并在该独立任务结束后释放执行该独立任务时分配的内存;
S33、对于每个关联任务,遍历数据文件,根据从数据文件遍历到的数据以及每个关联任务中各个子任务之间的先后顺序执 行对应的操作,并在该关联任务结束后释放执行该关联任务时分配的内存。一个实施例中,所述步骤S3具体包括
531、将标识为独立任务或关联任务的多个数据汇总任务分成两个组,其中一定数量的任务分入运行组,其余任务分入等待组;
532、执行运行组中的数据汇总任务;
533、在运行组中的一个任务执行结束后,将等待组中的一个任务补充到运行组中。本发明为解决其技术问题还提出一种数据汇总装置,包括
数据处理模块,用于获取数据并分类存入相应的数据文件中;
任务生成模块,用于依据数据汇总需求生成至少一个数据汇总任务;
任务处理模块,用于依据数据汇总任务之间的依赖关系执行每一个数据汇总任务,根据遍历数据文件得到的数据执行该数据汇总任务对应的操作,并在执行该数据汇总任务结束后释放分配的内存。一个实施例中,所述数据汇总装置还包括
索引文件生成模块,用于生成已执行的数据汇总任务的临时索引文件。一个实施例中,所述数据处理模块具体包括
数据获取模块,用于获取需要分析的多个数据;
数据解析模块,用于根据数据的生成规则解析获取的数据,得到该数据的属性信息;数据组织模块,用于依据数据的属性信息将解析后的数据按照指定的格式分类存入相应的数据文件中。一个实施例中,所述任务处理模块具体包括
任务标识模块,用于依据数据汇总任务之间的依赖关系将生成的数据汇总任务标识为独立任务和关联任务;
独立任务执行模块,用于遍历数据文件,根据从数据文件遍历得到的数据执行独立任务对应的操作,并在该独立任务结束后释放执行该独立任务时分配的内存;
关联任务执行模块,用于遍历数据文件,根据从数据文件遍历到的数据以及每个关联任务中各个子任务之间的先后顺序执行对应的操作,并在该管理任务结束后释放执行该管理任务时分配的内存。一个实施例中,所述任务处理模块具体包括
分组模块,用于建立运行组和等待组,并将标识为独立任务或关联任务的多个数据汇总任务中一定数量的任务分入运行组,其余任务分入等待组;
任务执行模块,用于执行运行组中的数据汇总任务;
任务补充模块,用于在运行组中的一个任务执行结束后,将等待组中的一个任务补充到运行组中。本发明的数据汇总方法和装置,依据数据汇总的需求生成多个数据汇总任务,并依据数据汇总任务之间的依赖关系来串行或并行执行每一数据汇总任务对应的操作,执行任务结束后即释放执行该任务时分配的内存,从而加快了任务处理速度,减少内存占用,避免内存溢出。


下面将结合附图及实施例对本发明作进一步说明,附图中
图I是本发明一个实施例的数据汇总方法的流程 图2是图I中步骤110的一具体实施例的流程 图3是图I中步骤130的一具体实施例的流程 图4是图I中步骤130的另一具体实施例的流程图; 图5是本发明一个实施例的数据汇总装置的逻辑结构示意 图6是图5中数据处理模块的一具体实施例的逻辑结构示意 图7是图5中任务处理模块的一具体实施例的逻辑结构示意 图8是图5中任务处理模块的另一具体实施例的逻辑结构示意图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明提出一种数据汇总方法和装置,依据数据汇总的需求生成至少一个数据汇总任务,并依据数据汇总任务之间的依赖关系来执行每一数据汇总任务对应的操作,执行任务结束后即释放执行该任务时分配的内存,从而加快了任务处理速度,减少内存占用,避免内存溢出。图I示出了本发明一个实施例的数据汇总方法100的流程图。如图I所示,该数据汇总方法100包括
步骤110,获取数据,并分类存入相应的数据文件中。例如,对于话单数据而言,可首先从局方获取各个基站中的话单数据,依据该话单数据的属性将其分类存入多个数据文件中,以便于后续的数据汇总分析。其中,获取数据的方式可以为定时获取或实时获取,定时获取数据的优势在于能够尽快结束整个汇总操作,实时获取数据的优势在于能够及时发现新增的数据,提高汇总结果的可靠性。步骤120,依据数据汇总的需求生成至少一个数据汇总任务。具体实施例中,可以一个需求对应一个数据汇总任务。例如,以话单数据汇总为例,在需要统计某个手机号码出现的次数时,针对该需求生成一个任务;在需要统计某一范围内出现频率最高的手机号码时,针对该需求生成一个任务。一个具体实施例中,每个数据汇总任务包括该任务的ID和该任务的执行命令,其中,任务的ID用于唯一标识该任务,任务的执行命令用于描述该任务将执行的操作以及执行操作后得到的结果。步骤130,依据数据汇总任务之间的依赖关系执行每一个数据汇总任务,根据遍历步骤110中的数据文件得到的数据执行该数据汇总任务对应的操作,并在执行该数据汇总任务结束后释放执行任务时分配的内存。一个具体实施例中,根据生成的数据汇总任务在实现时是否与其它数据汇总任务存在关联,数据汇总任务可以分为独立任务和关联任务。当一个任务必须等待其它某个或某些任务结束以后才能执行时,该任务被标识为关联任务。关联任务包括多个子任务等待和单个任务等待两种情况。有的关联任务需要等待多个子任务完成之后才开始运行。例如,在ID为7的任务依赖于ID为3、4、5的任务时,ID为3、4、5的任务可以称为ID为7的任务的子任务,标识为7@ (&,3,4,5),其中,“@”表示依赖关系,“&”表示“与(&11(1)”的意思,该任务7要等待3and4and5结束以后才开始运行。当然,除了“O”符号,也可以采用其它符号表示任务之间的依赖关系。又例如,在ID为7的任务只依赖于ID为3、4、5中任一个任务时,可以标识为7@ ( I,3,4,5),其中,“I”表示“或(or)”的意思,该指令表示任务7在任务3or4or5结束后就开始运行,即任务3、4、5中只要有一个任务结束,任务7就开始运行。当一个任务独立存在,不依赖于其它任务都能执行时,该任务被标识为独立任务。一个具体实施例中,独立任务可以采用串行或并行的方式来执行。当一个关联任务和另一个关联任务没有依赖关系时,这两个关联任务可以串行或并行执行,否则,只能串行执行。例如,ID=3(已执行);ID=4i(3) ;ID=5i(3) ;ID=6@ (5),则在执行具有依赖关系的关联任务4和关联任务5时,可以采用串行或并行的方式,而在执行不具有依赖关系的关联任务5和关联任务6时,则需采用串行的方式,先执行任务5再执行任务6。步骤140,生成已执行的数据汇总任务的临时索引文件。这样,所有任务执行结束·最后汇总时,可以直接调用生成的临时索引文件,减少了内存的占用。并且,即使在程序异常退出后,本发明还可以从生成的临时索引文件中恢复已执行的任务的操作结果,保障了程序的可靠运行。一个实施例中,参见图2所示,上述步骤110具体包括
步骤111,获取需要分析的多个数据。步骤112,根据数据的生成规则解析获取的数据,得到数据的属性信息。例如,对于经过加密的话单数据,需要根据数据的加密规则等解析获取的话单数据,得到该话单数据具有的用户标识、主叫号码、被叫号码、通话时长、通话时所在的基站标识等属性信息。步骤113,依据数据的属性信息将解析后的数据按照指定的格式存入相应的数据文件中。一个具体实施例中,可将解析后具有同一属性的数据按照指定的格式存入同一数据文件中,便于后续的数据分析汇总。例如,将获取的具有同一基站标识的话单数据,按照指定的格式存入同一数据文件中,其中,第一个字段(或称第一个属性)为用户标识,第二个字段为主叫号码,第三个字段为被叫号码等等。一个实施例中,参见图3所示,上述步骤130具体包括
步骤131,依据数据汇总任务之间的依赖关系将生成的数据汇总任务标识为独立任务和关联任务。如前所述,当一个任务独立存在,不依赖于其它任务都能执行时,该任务被标识为独立任务;当一个任务必须等待其它某个或某些任务结束以后才能执行时,该任务被标识为关联任务。步骤132,对于每个标识为独立任务的任务,遍历步骤110中的数据文件,根据从数据文件遍历到的数据执行该任务对应的操作,并在独立任务结束后释放执行该独立任务时分配的内存。这样能够有效地利用内存,防止内存溢出。一个实施例中,可以采用串行或并行的方式执行每个独立任务。步骤133,对于每个标识为关联任务的任务,遍历步骤110中的数据文件,根据从数据文件遍历到的数据以及每个关联任务中各个子任务之间的先后顺序执行对应的操作,并在关联任务结束后释放执行该关联任务时分配的内存。具体实施例中,当一个关联任务和另一个关联任务没有依赖关系时,这两个关联任务可以串行或并行执行,否则,只能串行执行。若一台机器上最多只能同时并行运行一定数量(假设5个)的任务,当同时并行运行超出已知数量的任务,假设同时并行运行6个任务(超过5个)时,由于系统资源不够,将导致该机器上的所有任务的运行速度都变慢。针对这一问题,本发明提出步骤130中执行数据汇总任务的另一实施例1300。参见图4所示,该另一实施例的方法1300包括
步骤1301,将标识为独立任务或标识为关联任务的多个数据汇总任务中一定数量的任务置入运行队列,其余任务置入等待队列。具体实施例中,根据智能终端的处理能力,选择数据汇总任务中的一些任务置入运行队列,其余的置入等待队列。其中,置入运行队列的任务可以只有标识为独立任务的任务,也可以同时包括标识为独立任务的任务和标识为关联任务的任务。步骤1302,执行运行队列中的数据汇总任务。 步骤1303,在运行队列中的一个任务执行结束后,将等待队列中的一个任务补充入运行队列。本发明的上述方法将独立任务和关联任务分成两个队列,即运行队列和等待队列,运行队列中是正在运行的任务,等待队列中是正在等待的任务。只要运行队列中有一个任务结束了,就将等待队列中的一个任务补充入运行队列开始运行。以上述一台机器上最多只能同时并行运行5个任务的情况为例,ID=IOO (I,2,3,4,5) @ (6,7,8,9),其中,任务1-5为一个组表示正在运行的任务,任务6-9为一个组表示正在等待的任务。任务10为一个控制任务,用于控制任务1-9。为了保证只有5个任务同时并行运行,只要任务1-5中有一个任务结束,任务6-9中就会有一个任务补充进来。图5示出了本发明一个实施例的数据汇总装置200的逻辑结构示意图。如图5所示,该数据汇总装置200包括数据处理模块210、任务生成模块220、任务处理模块230和索引文件生成模块240。其中,数据处理模块210用于获取数据并分类存入相应的数据文件中。任务生成模块220用于依据数据汇总的需求生成至少一个数据汇总任务。任务处理模块230用于依据数据汇总任务之间的依赖关系执行每一个数据汇总任务,根据遍历数据处理模块210生成的数据文件得到的数据执行该数据汇总任务对应的操作,并在执行该数据汇总任务结束后释放执行任务时分配的内存。索引文件生成模块240用于生成已执行的数据汇总任务的临时索引文件,以便于最后汇总时可以直接调用生成的临时索引文件,减少了内存的占用。且,即使在程序异常退出后,本发明还可以从生成的临时索引文件中恢复已执行的任务的操作结果,保障了程序的可靠运行。一个实施例中,参见图6示,上述数据处理模块210具体包括数据获取模块211、数据解析模块212和数据组织模块213。其中,数据获取模块211用于获取需要分析的多个数据。数据解析模块212用于根据数据的生成规则解析获取的数据,得到该数据的属性信息。例如,对于经过加密的话单数据,数据解析模块212根据数据的加密规则等解析获取的话单数据,得到该话单数据具有的用户标识、主叫号码、被叫号码、通话时长、通话时所在的基站标识等属性信息。数据组织模块213用于依据数据的属性信息将解析后的数据按照指定的格式分类存入相应的数据文件中。一个具体实施例中,数据组织模块213将解析后具有同一属性的数据按照指定的格式存入同一数据文件中,便于后续的数据分析汇总。例如,数据组织模块213将获取的具有同一基站标识的话单数据,按照指定的格式存入同一数据文件中,其中,第一个字段(或称第一个属性)为用户标识,第二个字段为主叫号码,第三个字段为被叫号码等等。一个实施例中,参见图7所示,上述任务处理模块230具·体包括任务标识模块231、独立任务执行模块232和关联任务执行模块233。其中,任务标识模块231用于依据数据汇总任务之间的依赖关系将生成的数据汇总任务标识为独立任务和关联任务。当一个任务独立存在,不依赖于其它任务都能执行时,该任务被标识为独立任务;当一个任务必须等待其它某个或某些任务结束以后才能执行时,该任务被标识为关联任务。对于每个独立任务,独立任务执行模块232遍历数据文件,根据从数据文件遍历得到的数据执行独立任务对应的操作,并在独立任务结束后释放执行独立任务时分配的内存。一个实施例中,可以采用串行或并行的方式执行每个独立任务。对于每个关联任务,关联任务执行模块233遍历数据文件,根据从数据文件遍历到的数据以及每个关联任务中各个子任务之间的先后顺序执行对应的操作,并在关联任务结束后释放执行关联任务时分配的内存。具体实施例中,当一个关联任务和另一个关联任务没有依赖关系时,这两个关联任务可以串行或并行执行,否则,只能串行执行。若一台机器上最多只能同时并行运行一定数量(假设5个)的任务,当同时并行运行超出已知数量的任务,假设同时并行运行6个任务(超过5个)时,由于系统资源不够,将导致该机器上的所有任务的运行速度都变慢。针对这一问题,本发明提出任务处理模块的另一实施例2300。参见图8所示,该任务处理模块2300具体包括分组模块2301、任务执行模块2302和任务补充模块2303。其中,分组模块2301用于建立运行组和等待组,并将标识为独立任务或关联任务的多个数据汇总任务中一定数量的任务分入运行组,其余任务分入等待组。具体实施例中,分组模块2301根据智能终端的处理能力,选择数据汇总任务中的一些任务置入运行队列,其余的置入等待队列,其中,置入运行队列的任务可以只有标识为独立任务的任务,也可以同时包括标识为独立任务的任务和标识为关联任务的任务。任务执行模块2302用于执行运行组中的数据汇总任务。任务补充模块2303用于在运行组中的一个任务执行结束后,将等待组中的一个任务补充到运行组中。以上借助方法步骤描述了本发明的技术特征及其关系,所述方法步骤的界限范围和顺序是为了便于描述任意定义的。只要能够实现该技术特征及其关系,也可应用其它界限和顺序。任何这样的其它界限或顺序因此落入本发明的范围和精神实质。以上还借助功能模块对本发明的技术特征及其关系进行了描述。所述功能模块的界限和各功能模块的关系是为了便于描述任意定义的。只要能够实现该技术特征及其关系,也可应用其它的界限或关系。任何这样的其它界限或关系也因此落入本发明的范围和精神实质。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种数据汇总方法,其特征在于,包括如下步骤 51、获取数据,并分类存入相应的数据文件中; 52、依据数据汇总需求生成至少一个数据汇总任务; 53、依据数据汇总任务之间的依赖关系执行每一个数据汇总任务,根据遍历数据文件得到的数据执行该数据汇总任务对应的操作,并在执行该数据汇总任务结束后释放分配的内存。
2.根据权利要求I所述的数据汇总方法,其特征在于,所述方法还包括 54、生成已执行的数据汇总任务的临时索引文件。
3.根据权利要求I所述的数据汇总方法,其特征在于,所述步骤SI具体包括 511、获取需要分析的多个数据; 512、根据数据的生成规则解析获取的数据,得到该数据的属性信息; 513、依据数据的属性信息将解析后的数据按照指定的格式分类存入相应的数据文件中。
4.根据权利要求I所述的数据汇总方法,其特征在于,所述步骤S3具体包括 531、依据数据汇总任务之间的依赖关系将生成的数据汇总任务标识为独立任务和关联任务; 532、对于每个独立任务,遍历数据文件,根据从数据文件遍历得到的数据执行该独立任务对应的操作,并在该独立任务结束后释放执行该独立任务时分配的内存; 533、对于每个关联任务,遍历数据文件,根据从数据文件遍历到的数据以及每个关联任务中各个子任务之间的先后顺序执行对应的操作,并在该关联任务结束后释放执行该关联任务时分配的内存。
5.根据权利要求4所述的数据汇总方法,其特征在于,所述步骤S3具体包括 531、将标识为独立任务或标识为关联任务的多个数据汇总任务分成两个组,其中一定数量的任务分入运行组,其余任务分入等待组; 532、执行运行组中的数据汇总任务; 533、在运行组中的一个任务执行结束后,将等待组中的一个任务补充到运行组中。
6.一种数据汇总装置,其特征在于,包括 数据处理模块,用于获取数据并分类存入相应的数据文件中; 任务生成模块,用于依据数据汇总需求生成至少一个数据汇总任务; 任务处理模块,用于依据数据汇总任务之间的依赖关系执行每一个数据汇总任务,根据遍历数据文件得到的数据执行该数据汇总任务对应的操作,并在执行该数据汇总任务结束后释放分配的内存。
7.根据权利要求6所述的数据汇总装置,其特征在于,还包括 索弓I文件生成模块,用于生成已执行的数据汇总任务的临时索引文件。
8.根据权利要求6所述的数据汇总装置,其特征在于,所述数据处理模块具体包括 数据获取模块,用于获取需要分析的多个数据; 数据解析模块,用于根据数据的生成规则解析获取的数据,得到该数据的属性信息;数据组织模块,用于依据数据的属性信息将解析后的数据按照指定的格式分类存入相应的数据文件中。
9.根据权利要求6所述的数据汇总装置,其特征在于,所述任务处理模块具体包括 任务标识模块,用于依据数据汇总任务之间的依赖关系将生成的数据汇总任务标识为独立任务和关联任务; 独立任务执行模块,用于遍历数据文件,根据从数据文件遍历得到的数据执行独立任务对应的操作,并在该独立任务结束后释放执行该独立任务时分配的内存; 关联任务执行模块,用于遍历数据文件,根据从数据文件遍历到的数据以及每个关联任务中各个子任务之间的先后顺序执行对应的操作,并在该关联任务结束后释放执行该关联任务时分配的内存。
10.根据权利要求9所述的数据汇总装置,其特征在于,所述任务处理模块具体包括 分组模块,用于建立运行组和等待组,并将标识为独立任务或关联任务的多个数据汇总任务中一定数量的任务分入运行组,其余任务分入等待组; 任务执行模块,用于执行运行组中的数据汇总任务; 任务补充模块,用于在运行组中的一个任务执行结束后,将等待组中的一个任务补充到运行组中。
全文摘要
本发明提出一种数据汇总方法和装置。所述方法包括如下步骤S1、获取数据,并分类存入相应的数据文件中;S2、依据数据汇总需求生成至少一个数据汇总任务;S3、依据数据汇总任务之间的依赖关系执行每一个数据汇总任务,根据遍历数据文件得到的数据执行该数据汇总任务对应的操作,并在执行该数据汇总任务结束后释放分配的内存。本发明的数据汇总方法和装置,依据数据汇总的需求生成多个数据汇总任务,并依据数据汇总任务之间的依赖关系来串行或并行执行每一数据汇总任务对应的操作,执行任务结束后即释放执行该任务时分配的内存,从而加快了任务处理速度,减少内存占用,避免内存溢出。
文档编号G06F17/30GK102929929SQ20121035669
公开日2013年2月13日 申请日期2012年9月24日 优先权日2012年9月24日
发明者王立, 刘洋 申请人:深圳市网信联动技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1