CN109298941A - 一种文件生成方法和装置 - Google Patents

一种文件生成方法和装置 Download PDF

Info

Publication number
CN109298941A
CN109298941A CN201811143367.3A CN201811143367A CN109298941A CN 109298941 A CN109298941 A CN 109298941A CN 201811143367 A CN201811143367 A CN 201811143367A CN 109298941 A CN109298941 A CN 109298941A
Authority
CN
China
Prior art keywords
subtask
general assignment
data
subfile
target data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811143367.3A
Other languages
English (en)
Inventor
刘正
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201811143367.3A priority Critical patent/CN109298941A/zh
Publication of CN109298941A publication Critical patent/CN109298941A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种文件生成方法和装置,该方法包括:获取生成文件的总任务,所述总任务用于将目标数据生成目标文件;将所述总任务拆分成多个子任务,每个子任务用于将所述目标数据中的部分数据生成一个子文件;并行执行所述多个子任务,生成多个子文件;将所述多个子文件合并,得到所述总任务对应的目标文件。

Description

一种文件生成方法和装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种文件生成方法和装置。
背景技术
在某些应用场景下,通常需要将数据生成文件,以便基于文件查看这些数据。在根据数据生成文件时,通常可以读取全量数据,并将读取的全量数据写入文件中,最终生成所需的文件。
在实际应用中,当数据的量比较少时,通过读取全量数据可以快速生成所需的文件。然而,当数据的量比较多时,读取全量数据将会占用很大的内存空间,导致设备的运行速度变慢,不能快速生成文件,甚至无法生成文件。
发明内容
本申请实施例提供一种文件生成方法和装置,用于解决根据数据生成文件时,在数据的量比较大的情况下,不能快速生成文件的问题。
为解决上述技术问题,本申请实施例是这样实现的:
第一方面,提出一种文件生成方法,包括:
获取生成文件的总任务,所述总任务用于将目标数据生成目标文件;
将所述总任务拆分成多个子任务,每个子任务用于将所述目标数据中的部分数据生成一个子文件;
并行执行所述多个子任务,生成多个子文件;
将所述多个子文件合并,得到所述总任务对应的目标文件。
第二方面,提出一种文件生成装置,包括:
获取单元,获取生成文件的总任务,所述总任务用于将目标数据生成目标文件;
拆分单元,将所述总任务拆分成多个子任务,每个子任务用于将所述目标数据中的部分数据生成一个子文件;
执行单元,并行执行所述多个子任务,生成多个子文件;
合并单元,将所述多个子文件合并,得到所述总任务对应的目标文件。
第三方面,提出一种电子设备,该电子设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,该可执行指令在被执行时使该处理器执行以下操作:
获取生成文件的总任务,所述总任务用于将目标数据生成目标文件;
将所述总任务拆分成多个子任务,每个子任务用于将所述目标数据中的部分数据生成一个子文件;
并行执行所述多个子任务,生成多个子文件;
将所述多个子文件合并,得到所述总任务对应的目标文件。
第四方面,提出一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下方法:
获取生成文件的总任务,所述总任务用于将目标数据生成目标文件;
将所述总任务拆分成多个子任务,每个子任务用于将所述目标数据中的部分数据生成一个子文件;
并行执行所述多个子任务,生成多个子文件;
将所述多个子文件合并,得到所述总任务对应的目标文件。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
本申请实施例提供的技术方案,在根据目标数据生成目标文件时,在获取生成文件的总任务后,可以将总任务拆分成多个子任务,每个子任务可以用于将目标数据中的部分数据生成一个子文件,通过并行执行这些子任务,可以生成多个子文件,将多个子文件合并,可以得到所需的目标文件。这样,由于可以将生成文件的总任务拆分成多个子任务,多个子任务并行执行,基于子任务生成的子文件得到目标文件,因此,可以加快文件的生成速度。此外,由于每个子任务对应目标数据的一部分,在执行子任务的过程中,将部分目标数据写入文件并生成子文件时,可以减少内存的占用率,保证设备的运行速度,从而提高文件生成速度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的一个实施例文件生成方法的流程示意图;
图2是本申请的一个实施例总任务拆分的示意图;
图3是本申请的一个实施例文件生成方法的流程示意图;
图4是本申请的一个实施例电子设备的结构示意图;
图5是本申请的一个实施例文件生成装置的结构示意图。
具体实施方式
在将数据生成文件时,通常可以读取全量的数据,并将读取的全量数据写入文件中,生成所需的文件。然而,当数据的量比较多时,读取全量数据将会占用较大的内存空间,导致文件生成的速度较慢,甚至不能生成文件。
为了解决读取全量数据导致文件生成速度较慢的问题,现有技术中,可以采用分页读取数据的方式生成文件,即在生成文件时,可以分页读取数据,并将分页读取的数据依次写入文件中,生成所需的文件。这样,由于分页读取的数据量相对较少,因此,可以减少占用的内存空间,保证设备的运行速度,从而提高文件的生成速度。
然而,在实际应用中,随着数据量的增加,在基于分页读取数据的方式生成文件时,读取数据的次数会非常多,降低了文件的生成速度。此外,在将分页读取的数据写入文件时,随着文件中包含的数据量越来越多,将新数据写入文件时的速度会变慢,在一定程度上也会降低文件的生成速度。
由此可见,现有技术中,在将数据生成文件时,在数据量比较大的情况下,文件的生成速度比较慢,不能快速生成文件。
为了解决上述问题,本申请实施例提供一种文件生成方法和装置,所述方法包括:获取生成文件的总任务,所述总任务用于将目标数据生成目标文件;将所述总任务拆分成多个子任务,每个子任务用于将所述目标数据中的部分数据生成一个子文件;并行执行所述多个子任务,生成多个子文件;将所述多个子文件合并,得到所述总任务对应的目标文件。
这样,由于可以将生成文件的总任务拆分成多个子任务,多个子任务并行执行,基于子任务生成的子文件得到目标文件,因此,可以加快文件的生成速度。由于每个子任务对应目标数据的一部分,在执行子任务的过程中,将部分目标数据写入文件并生成子文件时,可以减少内存的占用率,保证设备的运行速度,从而提高文件生成速度。
此外,在生成子文件时,由于子文件中包含的数据量小于目标数据的数据量,因此,在将新数据写入子文件中时,子文件中包含的数据量对数据的写入速度影响较小,在一定程度上,也会提高文件的生成速度。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请实施例的应用场景至少可以包括以下两种:一种是将目标数据生成一个文件,一个文件对应一个总任务;另一种是将目标数据生成多个文件,一个文件对应一个总任务。针对上述两种应用场景,每个总任务都可以基于本申请实施例提供的技术方案,实现快速生成文件的目的。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1是本申请的一个实施例文件生成方法的流程示意图。所述方法如下所述。
S102:获取生成文件的总任务。
在S102中,在生成文件之前,可以基于待生成文件的数据,构建生成文件的总任务,其中,构建的总任务的个数可以是一个,也可以是多个,本申请实施例以一个总任务为例进行说明。
在构建生成文件的总任务后,可以获取所述总任务,其中,所述总任务可以对应目标数据,所述总任务用于将所述目标数据生成一个目标文件。
本申请实施例中,所述目标数据可以业务数据,也可以是其他数据,例如学生的成绩等,具体可以根据实际的应用场景确定,这里不做具体限定。
在获取总任务后,可以执行S104。
S104:将所述总任务拆分成多个子任务。
在S104中,可以将S102中获取的总任务拆分成多个子任务,其中,一个子任务可以对应目标数据的一部分,一个子任务可以用于将其对应的一部分目标数据生成一个子文件。
在本申请的一个实施例中,将总任务拆分成多个子任务,可以包括:
将所述总任务对应的目标数据拆分成多组数据;
根据所述多组数据,将所述总任务拆分成多个子任务,所述多个子任务的个数与所述多组数据的组数相同,一个所述子任务用于将一组所述数据生成一个子文件。
在将总任务对应的目标数据拆分成多组数据时,可以是按照目标数据的数量,将目标数据平均拆分成多组数据,当然,也可以按照其他方法将目标数据拆分成多组数据,这里不做具体限定。
本申请实施例为了保证后续可以得到正确的目标文件,在将目标数据拆分成多组数据时,至少需要满足以下两个条件:
第一:多组数据之间互不重复,即同一数据只能分到一组数据中,两组或更多组数据中不能包含重复的数据;
第二:多组数据的合集为总任务对应的目标数据,即多组数据的汇总数据为总任务对应的目标数据。
在一种实现方式中,为了满足上述两个条件,可以按照目标数据的唯一标识将目标数据拆分成多组数据。
例如,如果目标数据存储在关系型数据库中,那么,可以按照目标数据的主键,将目标数据拆分成多组数据,其中,主键可以唯一标识目标数据;如果目标数据是交易数据,那么,可以按照交易数据中的订单编号,将目标数据拆分成多组数据,其中,订单编号可以唯一标识交易数据;如果目标数据为学生的成绩,那么,可以按照学号将目标数据拆分成多组数据,其中,学号可以唯一标识学生的成绩。
在将目标数拆分得到多组数据后,可以基于多组数据,将总任务拆分成多个子任务,其中,子任务的个数与多组数据的组数相同,一组数据可以对应一个子任务,一个子任务可以用于将其对应的一组数据生成一个子文件。
为了便于理解总任务拆分成子任务的过程,可以参见图2。图2是本申请的一个实施例总任务拆分的示意图。
图2中,总任务可以对应目标数据,用于将目标数据生成一个目标文件。
在拆分总任务时,首先,可以将目标数据拆分成N组数据,分别为图2所示的数据1、数据2、……、数据N。其中,数据1、数据2、……、数据N之间任两组或多组不包含重复的数据,且,数据1、数据2、……、数据N的汇总数据为目标数据。
其次,基于拆分后的N组数据,可以将总任务拆分成N个子任务,分别为图2所示的子任务1、子任务2、……、子任务N,其中,子任务1对应数据1,用于将数据1生成一个子文件,子任务2对应数据2,用于将数据2生成一个子文件……,子任务N对应数据N,用于将数据N生成一个子文件。
这样,通过将目标数据拆分成多组数据,基于多组数据可以将总任务拆分成多个子任务。
需要说明的是,上述在将目标数据拆分成多组数据时,最终拆分得到的数据的组数不宜过多,也不宜过少,如果组数过多,那么在后续并行执行多个子文件时,将会增加数据处理的并发量,影响设备的正常运行,如果组数过少,那么每个子任务对应的数据的量会比较多,也会影响生成文件的速度。在本申请实施例中,可以兼顾数据处理的并发量和生成文件的速度两个因素,合理确定将目标数据拆分的组数,即拆分的子任务的个数。具体拆分的组数需要根据实际情况确定,这里不做具体限定。
在一种实现方式中,可以将目标数据拆分成100组数据,即将总任务拆分成100个子任务。
在将总任务拆分得到多个子任务后,可以执行S106。
需要说明的是,在本申请的一个实施例中,将总任务拆分得到多个子任务后,在执行S106之前,还可以将每个子任务的状态设置为初始化状态,所述初始化状态用于表征子任务还没有被执行时的状态,通过设置子任务的状态,可以方便地判断子任务的执行情况。
S106:并行执行所述多个子任务,生成多个子文件。
在S106中,在将总任务拆分成多个子任务后,可以并行执行多个子任务,每个子任务可以分别一个子文件,最终生成多个子文件。
在一种实现方式中,可以将多个子任务分配给多个设备,并由多个设备并行执行。其中,在将多个子任务分配给多个设备时,分配的方法可以是按照设备的个数,将多个子任务平均分给多个设备。
在本申请的一个实施例中,并行执行多个子任务时,为了进一步提高生成文件的速度,可以针对每个子任务,还可以执行以下操作:
分页读取所述子任务对应的目标数据;
将分页读取的目标数据依次写入文件中,得到所述子任务对应的子文件。
本实施例在生成子文件时,可以将子任务对应的目标数据写入文件中,进而生成子文件。在将子任务斜土文件时,为了提高写入速度,可以不全量读取子任务对应的目标数据,而是按照分页读取的方式读取子任务对应的目标数据,并将分页读取的目标数据依次写入文件中,最终可以生成子任务对应的子文件。
由于采用分页读取的方式读取子任务对应的目标数据,因此,可以减少读取数据时占用的内存空间,从而保证设备的运行速度,提高子文件的生成速度。
在本申请的一个实施例中,在将总任务拆分成多个子任务时,如果将子任务的状态设置为初始化状态,那么,针对每个子任务而言,在执行子任务并生成对应的子文件后,还可以将子任务的初始化状态更新为成功状态,所述成功状态可以表征子任务已成功执行并生成对应的子文件。通过将子任务的状态更新为成功状态,可以方便地判断子任务是否执行完成。
在S106中,在并行执行多个子任务,并生成多个子任务对应的多个子文件后,可以执行S108。
S108:将所述多个子文件合并,得到所述总任务对应的目标文件。
在S108中,在生成多个子文件后,可以将多个子文件合并,得到总任务对应的目标文件,实现将目标数据生成目标文件的目的。
需要说明的是,在将多个子文件合并成目标文件时,所需的时间比较短,并不影响文件的生成速度。
本申请实施例将总任务拆分成多个子任务,多个子任务并行执行,相较于直接将目标数据生成目标文件而言,将总任务拆分成几个子任务,文件的生成速度就可以提高几倍。此外,在生成子文件时,由于写入子文件中的数据的量小于目标数据的量,因此,在将数据写入子文件时,子文件中包含的数据量对数据的写入速度影响较小,因此,相较于直接将目标数据写入目标文件而言,可以进一步提高文生成件的速度。
在本申请的一个实施例中,如果设置了子任务的状初始化状态和成功状态,那么,在将多个子文件合并之前,可以判断总任务拆分得到的多个子任务的状态是否均为成功状态,若是,则可以说明,多个子任务已成功执行并生成多个子文件,此时,可以将多个子任务对应的多个子文件合并,得到总任务对应的目标文件。
若否,则可以说明,多个子任务中还有部分子任务未成功执行,此时,可以等待这些子任务执行完毕,在等待的过程中,可以实时判断多个子任务的状态是否均变为成功状态,若是,则可以将多个子任务对应的多个子文件合并,得到总任务对应的目标文件。
这样,通过设置子任务的状态,可以方便地判断子任务是否成功执行并生成子文件,并在确定多个子任务均成功执行并生成子文件时,可以及时地将多个子文件合并,得到所需的目标文件。
本申请实施例提供的技术方案,在根据目标数据生成目标文件时,在获取生成文件的总任务后,可以将总任务拆分成多个子任务,每个子任务可以用于将目标数据中的部分数据生成一个子文件,通过并行执行这些子任务,可以生成多个子文件,将多个子文件合并,可以得到所需的目标文件。这样,由于可以将生成文件的总任务拆分成多个子任务,多个子任务并行执行,基于子任务生成的子文件得到目标文件,因此,可以加快文件的生成速度。此外,由于每个子任务对应目标数据的一部分,在执行子任务的过程中,将部分目标数据写入文件并生成子文件时,可以减少内存的占用率,保证设备的运行速度,从而提高文件生成速度。
为了便于理解整个技术方案,请参考图3。图3为本申请的一个实施例文件生成方法的流程示意图。图3所示的实施例与图1所示的实施例属于相同的发明构思。图3所示的文件生成方法如下所述。
S301:获取生成文件的总任务。
在生成文件时,可以构建生成文件的总任务。以一个总任务为例,所述总任务可以用于将目标数据生成目标文件。所述目标数据可以是业务数据或其他数据,具体可以根据应用场景确定。
S302:将所述总任务对应的目标数据拆分成多组数据。
在将目标数据拆分成多组数据时,可以是按照目标数据的量平均拆分。
需要注意的是,在拆分目标数据时,需要保证多组数据之间互不重复,且,多组数据的合集为所述目标数据。
还需要注意的是,在拆分目标数据时,需要兼顾数据处理的并发量和生成文件的速度两个因素,合理确定将目标数据拆分的组数。
S303:基于所述多组数据,将所述总任务拆分成多个子任务。
多个子任务的个数与所述多组数据的组数相同,一个子任务对应一组数据,用于将对应的一组数据生成一个子文件。
S304:将所述多个子任务的状态设置为初始化状态。
S305:并行执行所述多个子任务,生成多个子文件。
在并行执行多个子任务时,以其中一个子任务为例,可以基于分页读取的方式读取子任务对应的一组目标数据,并将分页读取的目标数据依次写入文件中,生成子任务对应的子文件。
在生成子文件后,可以将子任务的状态由初始化状态更新为成功状态。
S306:判断所述多个子任务的状态是否均为成功状态。
若所述多个子任务的状态均为成功状态,则可以说明所述多个子任务已成功执行并生成相应的子文件,此时,可以执行S307;若所述多个子任务的状态不均为成功状态,即一部分子任务的状态仍为初始化状态,则可以说明所述多个子任务中一部分子任务还没有成功执行并生成相应的子文件,此时,可以执行S305,即继续执行未成功执行的子任务。
S307:将所述多个子文件合并,得到所述总任务对应的目标文件。
在多个子任务的状态均为成功状态的情况下,可以将多个子任务对应的多个子文件合并,得到总任务对应的目标文件。
这样,由于可以将生成文件的总任务拆分成多个子任务,多个子任务并行执行,基于子任务生成的子文件得到目标文件,因此,可以加快文件的生成速度。由于每个子任务对应目标数据的一部分,在执行子任务的过程中,将部分目标数据写入文件并生成子文件时,可以减少内存的占用率,保证设备的运行速度,从而提高文件生成速度。
此外,在生成子文件时,由于写入子文件中的数据的量小于目标数据的量,因此,在将数据写入子文件时,子文件中包含的数据量对数据的写入速度影响较小,因此,相较于直接将目标数据写入目标文件而言,可以进一步提高生成文件的速度。
需要说明的是,图1和图3所示的实施例中,针对多个总任务的应用场景,每个总任务都可以基于图1或图3所示实施例中记载的方法,实现快速生成文件的目的。
此外,针对每个总任务,也可以设置总任务的执行状态,即在创建总任务后,可以设置总任务的状态为初始化状态,在生成总任务对应的目标文件后,可以将总任务的状态由初始化状态更新为成功状态。具体实现方式可以参见上述图1或图3所示实施例中对子任务设置初始化状态和成功状态的相关内容,这里不再重复描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
图4是本申请的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成文件生成装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
获取生成文件的总任务,所述总任务用于将目标数据生成目标文件;
将所述总任务拆分成多个子任务,每个子任务用于将所述目标数据中的部分数据生成一个子文件;
并行执行所述多个子任务,生成多个子文件;
将所述多个子文件合并,得到所述总任务对应的目标文件。
上述如本申请图4所示实施例揭示的文件生成装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1和图3的方法,并实现文件生成装置在图1和图3所示实施例中的功能,本申请实施例在此不再赘述。
当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1和图3所示实施例的方法,并具体用于执行以下操作:
获取生成文件的总任务,所述总任务用于将目标数据生成目标文件;
将所述总任务拆分成多个子任务,每个子任务用于将所述目标数据中的部分数据生成一个子文件;
并行执行所述多个子任务,生成多个子文件;
将所述多个子文件合并,得到所述总任务对应的目标文件。
图5是本申请的一个实施例文件生成装置50的结构示意图。请参考图5,在一种软件实施方式中,所述文件生成装置50可包括:获取单元51、拆分单元52、执行单元53和合并单元54,其中:
获取单元51,获取生成文件的总任务,所述总任务用于将目标数据生成目标文件;
拆分单元52,将所述总任务拆分成多个子任务,每个子任务用于将所述目标数据中的部分数据生成一个子文件;
执行单元53,并行执行所述多个子任务,生成多个子文件;
合并单元54,将所述多个子文件合并,得到所述总任务对应的目标文件。
可选地,所述拆分单元52,将所述总任务拆分成多个子任务,包括:
将所述总任务对应的目标数据拆分成多组数据;
根据所述多组数据,将所述总任务拆分成多个子任务,所述多个子任务的个数与所述多组数据的组数相同,一个所述子任务用于将一组所述数据生成一个子文件。
可选地,所述多组数据互不重复,且,所述多组数据的合集为所述目标数据。
可选地,所述执行单元53,并行执行所述多个子任务,生成多个子文件,包括:
针对其中一个子任务,执行以下操作:
分页读取所述子任务对应的目标数据;
将分页读取的目标数据依次写入文件中,得到所述子任务对应的子文件。
可选地,所述文件生成装置50还包括:设置单元55,其中:
所述设置单元55,在所述拆分单元52将所述总任务拆分成多个子任务后,将所述多个子任务的状态设置为初始化状态。
可选地,所述执行单元53在并行执行所述多个子任务,生成多个子文件时,所述设置单元55,针对其中一个子任务,执行以下操作:
当所述执行单元53生成与所述子任务对应的子文件后,将所述子任务的状态由所述初始化状态更新为成功状态。
可选地,所述合并单元54,将所述多个子文件合并,得到所述总任务对应的目标文件,包括:
判断所述多个子任务的状态是否均为成功状态;
若是,则将所述多个子任务对应的多个子文件合并,得到所述总任务对应的目标文件。
本申请实施例提供的文件生成装置40还可执行图1和图3的方法,并实现文件生成装置在图1和图3所示实施例的功能,在此不再赘述。
总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

Claims (10)

1.一种文件生成方法,包括:
获取生成文件的总任务,所述总任务用于将目标数据生成目标文件;
将所述总任务拆分成多个子任务,每个子任务用于将所述目标数据中的部分数据生成一个子文件;
并行执行所述多个子任务,生成多个子文件;
将所述多个子文件合并,得到所述总任务对应的目标文件。
2.如权利要求1所述的方法,将所述总任务拆分成多个子任务,包括:
将所述总任务对应的目标数据拆分成多组数据;
根据所述多组数据,将所述总任务拆分成多个子任务,所述多个子任务的个数与所述多组数据的组数相同,一个所述子任务用于将一组数据生成一个子文件。
3.如权利要求2所述的方法,
所述多组数据互不重复,且,所述多组数据的合集为所述目标数据。
4.如权利要求1所述的方法,并行执行所述多个子任务,生成多个子文件,包括:
针对其中一个子任务,执行以下操作:
分页读取所述子任务对应的目标数据;
将分页读取的目标数据依次写入文件中,生成所述子任务对应的子文件。
5.如权利要求1所述的方法,在将所述总任务拆分成多个子任务后,所述方法还包括:
将所述多个子任务的状态设置为初始化状态。
6.如权利要求5所述的方法,在并行执行所述多个子任务,生成多个子文件时,所述方法还包括:
针对其中一个子任务,执行以下操作:
当生成与所述子任务对应的子文件后,将所述子任务的状态由所述初始化状态更新为成功状态。
7.如权利要求6所述的方法,将所述多个子文件合并,得到所述总任务对应的目标文件,包括:
判断所述多个子任务的状态是否均为成功状态;
若是,则将所述多个子任务对应的多个子文件合并,得到所述总任务对应的目标文件。
8.一种文件生成装置,包括:
获取单元,获取生成文件的总任务,所述总任务用于将目标数据生成目标文件;
拆分单元,将所述总任务拆分成多个子任务,每个子任务用于将所述目标数据中的部分数据生成一个子文件;
执行单元,并行执行所述多个子任务,生成多个子文件;
合并单元,将所述多个子文件合并,生成所述总任务对应的目标文件。
9.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,该可执行指令在被执行时使该处理器执行以下操作:
获取生成文件的总任务,所述总任务用于将目标数据生成目标文件;
将所述总任务拆分成多个子任务,每个子任务用于将所述目标数据中的部分数据生成一个子文件;
并行执行所述多个子任务,生成多个子文件;
将所述多个子文件合并,得到所述总任务对应的目标文件。
10.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下方法:
获取生成文件的总任务,所述总任务用于将目标数据生成目标文件;
将所述总任务拆分成多个子任务,每个子任务用于将所述目标数据中的部分数据生成一个子文件;
并行执行所述多个子任务,生成多个子文件;
将所述多个子文件合并,得到所述总任务对应的目标文件。
CN201811143367.3A 2018-09-28 2018-09-28 一种文件生成方法和装置 Pending CN109298941A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811143367.3A CN109298941A (zh) 2018-09-28 2018-09-28 一种文件生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811143367.3A CN109298941A (zh) 2018-09-28 2018-09-28 一种文件生成方法和装置

Publications (1)

Publication Number Publication Date
CN109298941A true CN109298941A (zh) 2019-02-01

Family

ID=65164971

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811143367.3A Pending CN109298941A (zh) 2018-09-28 2018-09-28 一种文件生成方法和装置

Country Status (1)

Country Link
CN (1) CN109298941A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110420460A (zh) * 2019-08-05 2019-11-08 苏州亿歌网络科技有限公司 游戏场景中功能节点编辑的方法及装置
CN111143075A (zh) * 2019-12-30 2020-05-12 北京航天宏图信息技术股份有限公司 海洋卫星数据定标检验方法、装置、电子设备及存储介质
CN113672307A (zh) * 2021-07-06 2021-11-19 浙江大华技术股份有限公司 数据处理方法、电子设备和计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034735A (zh) * 2012-12-26 2013-04-10 北京讯鸟软件有限公司 一种大数据分布式文件导出方法
CN107220254A (zh) * 2016-03-22 2017-09-29 阿里巴巴集团控股有限公司 组装文件的方法及装置
CN107579989A (zh) * 2017-09-25 2018-01-12 郑州云海信息技术有限公司 一种数据保护方法、装置及其使用的终端设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034735A (zh) * 2012-12-26 2013-04-10 北京讯鸟软件有限公司 一种大数据分布式文件导出方法
CN107220254A (zh) * 2016-03-22 2017-09-29 阿里巴巴集团控股有限公司 组装文件的方法及装置
CN107579989A (zh) * 2017-09-25 2018-01-12 郑州云海信息技术有限公司 一种数据保护方法、装置及其使用的终端设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110420460A (zh) * 2019-08-05 2019-11-08 苏州亿歌网络科技有限公司 游戏场景中功能节点编辑的方法及装置
CN111143075A (zh) * 2019-12-30 2020-05-12 北京航天宏图信息技术股份有限公司 海洋卫星数据定标检验方法、装置、电子设备及存储介质
CN111143075B (zh) * 2019-12-30 2023-09-05 航天宏图信息技术股份有限公司 海洋卫星数据定标检验方法、装置、电子设备及存储介质
CN113672307A (zh) * 2021-07-06 2021-11-19 浙江大华技术股份有限公司 数据处理方法、电子设备和计算机可读存储介质

Similar Documents

Publication Publication Date Title
TWI764148B (zh) 風險預測和風險預測模型的訓練方法、裝置及電子設備
CN109298941A (zh) 一种文件生成方法和装置
CN106355391A (zh) 一种业务处理方法及装置
CN107391527A (zh) 一种基于区块链的数据处理方法及设备
CN108108239A (zh) 一种业务功能的提供方法、装置及计算机可读存储介质
CN108846749A (zh) 一种基于区块链技术的分片化的交易执行系统及方法
CN109271611B (zh) 一种数据校验方法、装置及电子设备
CN108647075A (zh) 应用页面的Listview刷新方法、装置和电子设备
CN111539811A (zh) 风险账户的识别方法及装置
CN110471754A (zh) 作业调度中的数据展示方法、装置、设备及存储介质
CN109166021A (zh) 记账方法、装置及业务财务一体化系统
CN110232156B (zh) 基于长文本的信息推荐方法及装置
CN109032766A (zh) 一种事务处理方法、装置及电子设备
CN109345081A (zh) 一种数据采集方法、装置及电子设备
CN112286968A (zh) 一种业务识别方法、设备、介质及电子设备
CN106202374A (zh) 一种数据处理方法及装置
CN109740336A (zh) 一种图片中的验证信息的识别方法、装置及电子设备
CN109903165B (zh) 一种模型合并方法和装置
CN112184074A (zh) 一种提示信息输出方法及装置
CN109213821B (zh) 数据处理方法及系统
CN111209283A (zh) 一种数据处理方法及装置
CN110059563A (zh) 一种文本处理方法和装置
CN111967767A (zh) 一种业务风险识别方法、装置、设备及介质
CN110245337A (zh) 一种生成裁判文书中经审理查明段的方法及装置
CN110032564A (zh) 一种数据表关联关系的确定方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20190201

RJ01 Rejection of invention patent application after publication