CN111125174A - 数据导出方法、装置、存储介质、电子设备 - Google Patents
数据导出方法、装置、存储介质、电子设备 Download PDFInfo
- Publication number
- CN111125174A CN111125174A CN201911245186.6A CN201911245186A CN111125174A CN 111125174 A CN111125174 A CN 111125174A CN 201911245186 A CN201911245186 A CN 201911245186A CN 111125174 A CN111125174 A CN 111125174A
- Authority
- CN
- China
- Prior art keywords
- data
- subtask
- subtasks
- total
- task
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000004590 computer program Methods 0.000 claims description 15
- 238000009795 derivation Methods 0.000 claims description 15
- 230000004931 aggregating effect Effects 0.000 claims description 5
- 230000008859 change Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种数据导出方法、装置、存储介质、电子设备,所述方法包括:响应于数据导出指令,生成用于下载待导出数据的总任务;在待导出数据的总数量大于阈值时,根据预设分组数据量信息将所述总任务划分为多个子任务;执行所述多个子任务,得到导出的多组数据;将导出的各组数据进行汇总,并生成用于下载汇总后的数据的一下载地址,以便客户端基于所述下载地址下载汇总后的数据。
Description
技术领域
本公开涉及信息处理技术领域,具体地,涉及一种数据导出方法、装置、存储介质、电子设备。
背景技术
数据库是计算机应用系统中的一种专门管理数据资源的系统。随着技术的发展,数据库中能够存储大量的数据,例如文字数据、图像数据或是声音数据等。
在一些场景下,用户可以通过前台页面来对后台数据库中的数据进行查询,又或是进一步的对查询到的数据进行下载。相关技术中,在数据量较大时,用户往往需要较为繁琐的操作以及较长的时间才能够获取到其需要的数据。
发明内容
本公开的目的是提供一种数据导出方法、装置、存储介质、电子设备,以解决相关技术问题。
为了实现上述目的,本公开实施例的第一方面提供一种数据导出方法,应用于服务器,所述方法包括:
响应于数据导出指令,生成用于下载待导出数据的总任务;
在待导出数据的总数量大于阈值时,根据预设分组数据量信息将所述总任务划分为多个子任务;
执行所述多个子任务,得到导出的多组数据;
将导出的各组数据进行汇总,并生成用于下载汇总后的数据的一下载地址,以便客户端基于所述下载地址下载汇总后的数据。
可选地,所述执行所述多个子任务,包括:
通过异步线程执行所述多个子任务。
可选地,所述通过异步线程执行所述多个子任务,包括:
根据各预设时间段已有的未执行任务数,将所述总任务分配给目标时间段;
在时间达到所述目标时间段时,通过所述异步线程执行所述总任务包括的所述多个子任务。
可选地,所述总任务是通过总任务表记录的,所述总任务表包括如下表项:总任务标识、总任务的搜索条件、总任务执行时间、总任务状态、子任务总数、已完成子任务数、下载地址;
每一所述子任务是通过子任务表记录的,所述子任务表包括如下表项:子任务标识、总任务的查询条件、数据导出范围、子任务编号、子任务状态。
可选地,所述通过异步线程执行所述多个子任务,包括:
对于第一子任务,通过对应的子任务表中的总任务的查询条件从数据库中查询待导出数据,并从查询得到的待导出数据中导出所述子任务表中对应所述第一子任务的数据导出范围内的数据,所述第一子任务为所述多个子任务中的任一子任务;
其中,在开始执行所述第一子任务时,将对应的子任务表中的子任务状态更改为进行中状态,在完成所述第一子任务时,将所述子任务状态更改为完成状态,并对所述总任务表中的已完成子任务数加一;
所述将导出的各组数据进行汇总,包括:
在所述总任务表中的已完成子任务数与子任务总数相同时,将所述总任务表中的总任务状态更改为已完成,并将导出的各组数据进行汇总。
可选地,所述将导出的各组数据进行汇总,包括:
将导出的各组数据压缩到同一个数据文件中。
第二方面,本公开提供一种数据导出装置,包括:
第一生成模块,用于响应于数据导出指令,生成用于下载待导出数据的总任务;
划分模块,用于在待导出数据的总数量大于阈值时,根据预设分组数据量信息将所述总任务划分为多个子任务;
执行模块,用于执行所述多个子任务,得到导出的多组数据;
第二生成模块,用于将导出的各组数据进行汇总,并生成用于下载汇总后的数据的一下载地址,以便客户端基于所述下载地址下载汇总后的数据。
可选地,所述执行模块通过异步线程执行所述多个子任务。
可选地,所述执行模块包括:
分配子模块,用于根据各预设时间段已有的未执行任务数,将所述总任务分配给目标时间段;
执行子模块,用于在时间达到所述目标时间段时,通过所述异步线程执行所述总任务包括的所述多个子任务。
可选地,所述装置还包括:
第一记录模块,用于通过总任务表记录所述总任务,所述总任务表包括如下表项:总任务标识、总任务的搜索条件、总任务执行时间、总任务状态、子任务总数、已完成子任务数、下载地址;
第二记录模块,用于通过子任务表记录每一所述子任务,所述子任务表包括如下表项:子任务标识、总任务的查询条件、数据导出范围、子任务编号、子任务状态。
可选地,所述执行模块包括:
查询子模块,用于对第一子任务,通过对应的子任务表中的子任务的查询条件从数据库中查询待导出数据,所述第一子任务为所述多个子任务中的任一子任务;
导出子模块,用于从查询得到的待导出数据中导出所述数据导出所述子任务表中对应所述第一子任务的数据导出范围内的数据;
第一更改子模块,用于在开始执行所述第一子任务时,将对应的子任务表中的子任务状态更改为进行中状态;
第二更改子模块,用于在完成所述第一子任务时,将所述子任务状态更改为完成状态,并对所述总任务表中的已完成子任务数加一;
所述第二生成模块,包括:
第三更改子模块,用于在所述总任务表中的已完成子任务数与子任务总数相同时,将所述总任务表中的总任务状态更改为已完成;
汇总子模块,用于将导出的各组数据进行汇总。
可选地,所述第二生成模块包括
压缩子模块,用于将导出的各组数据压缩到同一个数据文件中。
第三方面,本公开提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面中任一项所述方法的步骤。
第四方面,本公开提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述第一方面中任一项所述方法的步骤。
上述技术方案至少可以包括如下技术效果:
通过在待导出数据的总数量大于阈值时将总任务划分为多个子任务的方式,从而能够执行所述多个子任务并得到对应的多组数据。这样,可以将得到的所述多组数据进行汇总,并生成用于下载汇总后的数据的下载地址。也就是说,用户可以通过所述下载地址一次性的对所述待导出数据进行下载,从而能够减少用户的重复操作,提升用户的使用效率。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是本公开一示例性实施例所示出的一种数据导出方法的流程图。
图2是本公开一示例性实施例所示出的一种数据导出方法的流程图。
图3是本公开一示例性实施例所示出的一种子任务执行流程图。
图4是本公开一示例性实施例所示出的一种数据导出装置的框图。
图5是本公开一示例性实施例所示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
在介绍本公开所提供的数据导出方法之前,首先对本公开各实施例的应用场景进行介绍,本公开的各实施例可以应用于各种数据导出场合,例如从数据库中导出文本数据、从数据库中导出音频数据等等。
在一些场景中,用户可以通过前台页面来对后台数据库进行查询,又或是进一步的对查询到的数据进行下载,进而能够对数据进行处理和分析。而对于一些信息管理平台,其数据库中的数据量极为庞大,即便根据用户的查询条件进行筛选之后也可能存在百万数量级的待导出数据,在这种情况下,用户往往需要较为繁琐的操作以及较长的等待时间才能够获取到其需要的数据。
为此,本公开提供一种数据导出方法,参照图1所示出的一种数据导出方法的流程示意图,所述方法包括:
S11,响应于数据导出指令,生成用于下载待导出数据的总任务。
其中,所述总任务还可以根据所述数据导出指令、查询条件以及查询结果生成。
针对数据导出指令,所述数据导出指令可以包括时间信息,用于表征所述总任务的执行时间。示例地,所述时间信息可以是当前时刻,即所述总任务的执行时间为当前时刻;在一实施例中,所述时间信息也可以是预设时间节点,则所述总任务的执行时间为所述预设时间节点。
针对查询条件以及查询结果,所述查询条件可以是用户根据查询需求输入的,其数量可以是一个或者多个,系统可以根据所述查询条件对相应数据进行查询,得到对应的查询结果。
举例来讲,所述数据为交易记录数据,所述查询条件可以包括用户输入的起始时间、截止时间、目标对象(例如某一类别、某一人群)等等,前台页面可以响应于用户的输入确认操作,基于上述查询条件向后台发起导出交易记录请求。对应的,后台可以接收相应导出交易记录的SQL(Structured Query Language,结构化查询语言)查询条件,根据不同的查询条件拼接成查询语句,并通过查询所述交易记录相关的记录表来获得待导出的交易记录数据的数量,进而可以根据所述查询条件以及查询到的交易记录数据的数量来生成导出所述交易记录的总任务。
S12,在待导出数据的总数量大于阈值时,根据预设分组数据量信息将所述总任务划分为多个子任务。
其中,所述阈值以及分组数据量值可以根据需求进行设定。例如,可以将所述阈值设置为100000,将所述分组数据量值设置为50000。在一实施例中,所述待导出的数据的总数量为150000,则根据上述阈值以及分组数据量值,可以以每50000条作为一个区间,将所述待导出的数据分为三组。
此外,在具体实施时,也可以根据后台服务器的内存容量以及占用量来设置所述分组数据量。举个例子,若所述服务器的内存容量较高和/或内存占用率较低,则可以增大所述分组数据量值,例如可以将所述分组数据量值设置为60000。对应的,若所述服务器的内存容量较低和/或内存占用率较高,则可以减小所述分组数据量值,例如可以将所述分组数据量值设置为40000。
S13,执行所述多个子任务,得到导出的多组数据。
举例来讲,可以根据上述查询条件调用Hibernate来查询数据库,从而得到对应多个子任务的多组待导出数据。在一实施例中,还可以进一步通过java.io.BufferedWriter类,从而能够将待导出数据生成CSV文件格式保存在后台。
S14,将导出的各组数据进行汇总,并生成用于下载汇总后的数据的一下载地址,以便客户端基于所述下载地址下载汇总后的数据。
示例地,可以在最后一个子任务完成之后,将该总任务下的所有子任务产生的待导出数据文件进行汇总,并将服务器IP地址、端口以及汇总后的所述待导出文件所处的相对路径进行拼接,得到汇总后的数据的下载地址返回至前台显示。
这样,通过在待导出数据的总数量大于阈值时将总任务划分为多个子任务的方式,从而能够执行所述多个子任务并得到对应的多组数据。此外,还可以将得到的所述多组数据进行汇总,并生成用于下载汇总后的数据的下载地址。也就是说,用户可以通过所述下载地址一次性的对所述待导出数据进行下载,从而能够减少用户的重复操作,提升用户的使用效率。
此外值得注意的是,当待导出的数据的总数量较大和/或服务器的内存资源相对不足时,导出所述待导出的数据的耗时也会随之增加,甚至导致前台出现请求超时的情况。
因此,在一种可能的实施方式中,所述步骤S13中还可以通过异步线程来执行所述多个子任务。采用这样的方式,将所述子任务通过异步线程来执行,使得主线程能够继续执行其他任务,从而能够提升系统的可响应性。同时,用户端也能够进行其他的操作,无需在前台持续等待。
在另一种可能的实施方式中,用户端无需立即得到所述导出数据,即系统无需立即执行数据导出任务。这样,参照图2所示出的一种数据导出方法的流程示意图,所述方法包括:
S21,响应于数据导出指令,生成用于下载待导出数据的总任务。
S22,在待导出数据的总数量大于阈值时,根据预设分组数据量信息将所述总任务划分为多个子任务。
S23,根据各预设时间段已有的未执行任务数,将所述总任务分配给目标时间段。
S24,在时间达到所述目标时间段时,通过异步线程执行所述总任务包括的所述多个子任务,得到导出的多组数据。
S25,将导出的各组数据进行汇总,并生成用于下载汇总后的数据的一下载地址,以便客户端基于所述下载地址下载汇总后的数据。
在步骤S23中,所述预设时间段可以是服务器负载较低的时间段也可以是其他根据需求设置的时间段。举个例子,在具体实施时可以通过SpringMVC来配置定时执行任务:@Scheduled(cron=“0 0 0,1,2,3,4,5,6,23**?”),即java后台启动cron表达式配置一个每天23点至次日6点之间,每个整点触发一次的定时任务。
此外,还可以根据服务器的内存容量以及所述预设分组数据量信息,为每个预设时间段设置相应的任务数。以上述定时执行任务为例,可以将每天23点至次日6点之间的每个整点作为一个任务执行点,为每一个小时配置5个数据导出总任务。也就是说,系统能够在每个整点触发所述定时任务,依次以异步线程的方式执行所述5个总任务,从而能够充分利用服务器资源。
在一种可能的实施方式中,步骤S23中所述将所述总任务分配给目标时间段,包括:
确定各所述预设时间段中,已有的未执行任务数小于预设阈值的目标预设时间点;
若所述目标预设时间点为一个,则将所述目标预设时间点作为所述总任务的执行时间点;
若所述目标预设时间点为多个,则将距离当前时刻最近的目标预设时间点作为所述总任务的执行时间点;
若各所述预设时间点中不存在已有的未执行任务数小于所述预设阈值的预设时间点,则将距离当前时刻最远的预设时间点之后的下一个时间点作为所述总任务的执行时间点。
举例来讲,若所述预设时间点为23点至次日6点的每个整点时刻,每个预设时间点的任务数的预设值为5个,则所述步骤S23可以包括:
确定23点至次日6点的每个整点时刻中,每个整点时刻已有的未执行任务数小于5的目标预设时间点。其中,若所述目标预设时间点为一个,则将所述目标预设时间点作为所述总任务的执行时间点;若所述目标预设时间点为1点、3点、5点,则将距离当前时刻最近的1点作为所述总任务的执行时间点。若各所述预设时间点中不存在已有的未执行任务数小于所述预设阈值的预设时间点,则将距离当前时刻最远的6点之后的下一个时间点7点作为所述总任务的执行时间点。通过这样的方式,能够使得每个预设时间段的任务数较为平均,从而能够降低预设时间段的后台服务器压力。
值得注意的是,在具体实施时也可以根据所述预设时间段的任务执行情况来调整步骤S12中所述的阈值以及分组数据量信息。举个例子,若服务器在所述预设时间段内未完成分配给该时间段的5个任务,则可以降低所述分组量数据信息所表征的数据。或者,也可以降低每一预设时间段的任务量上限阈值,例如设置每个预设时间段的任务量上限为4个。
可选地,所述总任务是通过总任务表记录的,所述总任务表包括如下表项:
总任务标识、导出数据的类型、总任务的搜索条件、总任务执行时间、总任务所对应的待导出数据的总数量、总任务状态、总任务执行时间、子任务总数、已完成子任务数以及下载地址。
其中,所述总任务表可以包括一个或多个总任务,所述总任务标识用于标识不同的总任务;所述导出数据的类型可以包括文本数据、声音数据等等;所述总任务的搜索条件,即查询条件,例如可以包括群组、时间节点等等;所述总任务状态,可以包括完成、未完成以及进行中等等。
类似的,每一所述子任务可以通过子任务表记录,所述子任务表包括如下表项:子任务标识、子任务表所对应的总任务表标识、总任务的查询条件、数据导出范围、子任务编号、子任务状态。
所述子任务标识用于表征每一子任务的唯一性,所述子任务编号用于表征所述子任务被执行时的顺序,所述子任务状态可以包括完成以及未完成。
值得说明的是,在具体实施时,所述总任务表以及子任务表可以分别使用与其对应的上述表项的组合,或是根据需求扩充或删减上述表项,本公开对所述总任务表以及子任务表所包括的表项的内容以及形式不做限制。
可选地,所述通过异步线程执行所述多个子任务,包括:
对于第一子任务,通过对应的子任务表中的总任务的查询条件从数据库中查询待导出数据,并从查询得到的待导出数据中导出所述子任务表中对应所述第一子任务的数据导出范围内的数据,所述第一子任务为所述多个子任务中的任一子任务;
其中,在开始执行所述第一子任务时,将对应的子任务表中的子任务状态更改为进行中状态,在完成所述第一子任务时,将所述子任务状态更改为完成状态,并对所述总任务表中的已完成子任务数加一;
所述将导出的各组数据进行汇总,包括:
在所述总任务表中的已完成子任务数与子任务总数相同时,将所述总任务表中的总任务状态更改为已完成,并将导出的各组数据进行汇总。
参照图3,以所述总任务在目标时间段执行为例,所述通过异步线程执行所述多个子任务,包括:
S31,查询当前时间段内未执行的总任务的信息。其中,所述时间段可以以分钟、小时、天等为时间粒度,所述当前时间段未执行的总任务的数量可以为一个或者多个。此外,在一实施例中,也可以同时查询当前时间段内未执行的总任务的信息以及每一总任务所对应的子任务的信息,以便于系统进行相应的任务管理。
S32,确定第一总任务,将总任务表中所述第一总任务的状态设置为进行中。举例来讲,若所述当前时间段未执行的总任务的数量为一个,则可以将该总任务作为所述第一总任务执行。若所述当前时间段未执行的总任务的数量为多个,则可以通过设置相应的决策规则来从所述多个总任务中确定出所述第一总任务进行执行。例如,可以根据各所述总任务的生成时间,依照时间的先后顺序选择时间最靠前的总任务作为所述第一总任务,并更新总任务表中对应该第一总任务的状态标志位,以表征该第一总任务为进行中。
S33,对第一总任务下的每一子任务,获取该子任务的查询条件。
其中,所述查询条件例如可以是该子任务的查询对象,时间区间等等。所述查询条件还可以包括对应于该子任务的查询限制信息,所述查询限制信息可以包括该子任务的数据导出的起始点。以分组数据量为50000为例,子任务n的数据导出起始点为(n-1)*50000,子任务n的数据导出范围为[(n-1*50000),n*50000],其中,n为正整数。
S34,根据所述查询条件查询数据库,得到对应该子任务的导出数据。
示例地,可以根据所述查询条件调用Hibernate来查询数据库,从而得到对应该子任务的待导出数据。在一实施例中,还可以进一步通过java.io.BufferedWriter类,从而能够将所述待导出数据生成CSV文件格式保存在后台。
S35,对子任务表以及总任务表进行更新。
示例地,在每一子任务完后才能之后,可以对所述子任务所属的子任务表进行更新,将该子任务的状态更改为完成。类似的,也可以对所述总任务表进行更新,将所述子任务所属的总任务所对应的已完成子任务数加一。在一实施例中,还可以根据所述子任务表以及总任务表,将相应的执行信息在前台进行显示,例如可以在前台设置相应的任务执行进度条,以便于用户了解任务执行状态。
基于上述步骤,所述将导出的各组数据进行汇总,包括:
在所述总任务表中的已完成子任务数与子任务总数相同时,将所述总任务表中的总任务状态更改为已完成,并将导出的各组数据进行汇总。例如,可以将服务器IP地址、端口以及汇总后的所述待导出文件所处的相对路径进行拼接,得到汇总后的数据的下载地址返回至前台显示。
采用这样的方式,当导出数据量较大时,可以通过设置定时任务以及结合异步线程的方式来使得导出任务在指定时间阶段完成,并在各子任务完后将各子任务导出的各组数据进行汇总。也就是说,在导出数据时用户无需进行频繁的手动操作,同时也无需在前台保持等待。对于后台服务器,在数据导出过程中也能够响应和进行其他的任务,提升了服务器资源的利用率。
值得说明的是,上述实施例中以所述总任务在目标时间段执行为例进行了说明。对于用户需要立即导出数据的情况,该导出总任务以及对应子任务的执行方法也可以参照图3所示出的一种子任务的执行流程图,其中,将当前需要立即执行的数据导出任务作为所述第一总任务即可。
在一种可能的实施方式中,若所述总任务的已完成子任务数与子任务总数相同,则可以将所述总任务表中的总任务状态更改为已完成,并将导出的各组数据压缩到同一个数据文件中,从而能够减小下载流量,在节省资源的同时也能够缩短用户的下载时间。
此外值得注意的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。
本公开还提供一种数据导出装置,参照图4所示出的一种数据导出装置的框图,所述装置400包括:
第一生成模块401,用于响应于数据导出指令,生成用于下载待导出数据的总任务;
划分模块402,用于在待导出数据的总数量大于阈值时,根据预设分组数据量信息将所述总任务划分为多个子任务;
执行模块403,用于执行所述多个子任务,得到导出的多组数据;
第二生成模块404,用于将导出的各组数据进行汇总,并生成用于下载汇总后的数据的一下载地址,以便客户端基于所述下载地址下载汇总后的数据。
所述装置通过在待导出数据的总数量大于阈值时将总任务划分为多个子任务的方式,从而能够通过执行模块执行所述多个子任务并得到对应的多组数据。这样,可以将得到的所述多组数据进行汇总,并由第二生成模块生成用于下载汇总后的数据的下载地址。也就是说,用户可以通过所述下载地址一次性的对所述待导出数据进行下载,从而能够减少用户的重复操作,提升用户的使用效率。
可选地,所述执行模块通过异步线程执行所述多个子任务。
可选地,所述执行模块包括:
分配子模块,用于根据各预设时间段已有的未执行任务数,将所述总任务分配给目标时间段;
执行子模块,用于在时间达到所述目标时间段时,通过所述异步线程执行所述总任务包括的所述多个子任务。
可选地,所述装置还包括:
第一记录模块,用于通过总任务表记录所述总任务,所述总任务表包括如下表项:总任务标识、总任务的搜索条件、总任务执行时间、总任务状态、子任务总数、已完成子任务数、下载地址;
第二记录模块,用于通过子任务表记录每一所述子任务,所述子任务表包括如下表项:子任务标识、总任务的查询条件、数据导出范围、子任务编号、子任务状态。
可选地,所述执行模块包括:
查询子模块,用于对第一子任务,通过对应的子任务表中的子任务的查询条件从数据库中查询待导出数据,所述第一子任务为所述多个子任务中的任一子任务;
导出子模块,用于从查询得到的待导出数据中导出所述数据导出所述子任务表中对应所述第一子任务的数据导出范围内的数据;
第一更改子模块,用于在开始执行所述第一子任务时,将对应的子任务表中的子任务状态更改为进行中状态;
第二更改子模块,用于在完成所述第一子任务时,将所述子任务状态更改为完成状态,并对所述总任务表中的已完成子任务数加一;
所述第二生成模块,包括:
第三更改子模块,用于在所述总任务表中的已完成子任务数与子任务总数相同时,将所述总任务表中的总任务状态更改为已完成;
汇总子模块,用于将导出的各组数据进行汇总。
可选地,所述第二生成模块包括
压缩子模块,用于将导出的各组数据压缩到同一个数据文件中。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
此外值得注意的是,为描述的方便和简洁,说明书中所描述的实施例均属于优选实施例,其所涉及的部分并不一定是本发明所必须的,例如,所述第一生成模块401以及第二生成模块404,在具体实施时可以是相互独立的装置也可以是同一个装置。又例如,所述第一记录模块与第二记录模块在具体实施时可以是独立的装置也可以是同一个装置,本公开对此不作限定。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例中所述的数据导出方法的步骤。
第三方面,本公开提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述任一实施例中所述的数据导出方法的步骤。
图5是根据一示例性实施例示出的一种电子设备500的框图。例如,电子设备500可以被提供为一后台服务器。参照图5,电子设备500包括处理器522,其数量可以为一个或多个,以及存储器532,用于存储可由处理器522执行的计算机程序。存储器532中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器522可以被配置为执行该计算机程序,以执行上述的数据导出方法。
另外,电子设备500还可以包括电源组件526和通信组件550,该电源组件526可以被配置为执行电子设备500的电源管理,该通信组件550可以被配置为实现电子设备500的通信,例如,有线或无线通信。此外,该电子设备500还可以包括输入/输出(I/O)接口558。电子设备500可以操作基于存储在存储器532的操作系统,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的数据导出方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器532,上述程序指令可由电子设备500的处理器522执行以完成上述的数据导出方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的数据导出方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种数据导出方法,其特征在于,应用于服务器,所述方法包括:
响应于数据导出指令,生成用于下载待导出数据的总任务;
在待导出数据的总数量大于阈值时,根据预设分组数据量信息将所述总任务划分为多个子任务;
执行所述多个子任务,得到导出的多组数据;
将导出的各组数据进行汇总,并生成用于下载汇总后的数据的一下载地址,以便客户端基于所述下载地址下载汇总后的数据。
2.根据权利要求1所述的方法,其特征在于,所述执行所述多个子任务,包括:
通过异步线程执行所述多个子任务。
3.根据权利要求2所述的方法,其特征在于,所述通过异步线程执行所述多个子任务,包括:
根据各预设时间段已有的未执行任务数,将所述总任务分配给目标时间段;
在时间达到所述目标时间段时,通过所述异步线程执行所述总任务包括的所述多个子任务。
4.根据权利要求3所述的方法,其特征在于,所述总任务是通过总任务表记录的,所述总任务表包括如下表项:总任务标识、总任务的搜索条件、总任务执行时间、总任务状态、子任务总数、已完成子任务数、下载地址;
每一所述子任务是通过子任务表记录的,所述子任务表包括如下表项:子任务标识、总任务的查询条件、数据导出范围、子任务编号、子任务状态。
5.根据权利要求4所述的方法,其特征在于,所述通过异步线程执行所述多个子任务,包括:
对于第一子任务,通过对应的子任务表中的总任务的查询条件从数据库中查询待导出数据,并从查询得到的待导出数据中导出所述子任务表中对应所述第一子任务的数据导出范围内的数据,所述第一子任务为所述多个子任务中的任一子任务;
其中,在开始执行所述第一子任务时,将对应的子任务表中的子任务状态更改为进行中状态,在完成所述第一子任务时,将所述子任务状态更改为完成状态,并对所述总任务表中的已完成子任务数加一;
所述将导出的各组数据进行汇总,包括:
在所述总任务表中的已完成子任务数与子任务总数相同时,将所述总任务表中的总任务状态更改为已完成,并将导出的各组数据进行汇总。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述将导出的各组数据进行汇总,包括:
将导出的各组数据压缩到同一个数据文件中。
7.一种数据导出装置,其特征在于,包括:
第一生成模块,用于响应于数据导出指令,生成用于下载待导出数据的总任务;
划分模块,用于在待导出数据的总数量大于阈值时,根据预设分组数据量信息将所述总任务划分为多个子任务;
执行模块,用于执行所述多个子任务,得到导出的多组数据;
第二生成模块,用于将导出的各组数据进行汇总,并生成用于下载汇总后的数据的一下载地址,以便客户端基于所述下载地址下载汇总后的数据。
8.根据权利要求7所述的装置,其特征在于,所述执行模块通过异步线程执行所述多个子任务。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911245186.6A CN111125174A (zh) | 2019-12-06 | 2019-12-06 | 数据导出方法、装置、存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911245186.6A CN111125174A (zh) | 2019-12-06 | 2019-12-06 | 数据导出方法、装置、存储介质、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111125174A true CN111125174A (zh) | 2020-05-08 |
Family
ID=70497780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911245186.6A Pending CN111125174A (zh) | 2019-12-06 | 2019-12-06 | 数据导出方法、装置、存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111125174A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930772A (zh) * | 2020-07-30 | 2020-11-13 | 中粮招商局(深圳)粮食电子交易中心有限公司 | 数据的导出方法、装置、系统及计算机可读存储介质 |
CN112488476A (zh) * | 2020-11-20 | 2021-03-12 | 中国人寿保险股份有限公司 | 一种任务全生命周期管理方法、装置及电子设备 |
CN112925840A (zh) * | 2021-03-09 | 2021-06-08 | 上海华客信息科技有限公司 | 数据导出方法、系统、设备及存储介质 |
CN113722388A (zh) * | 2021-08-24 | 2021-11-30 | 咪咕音乐有限公司 | 数据导出方法、设备、存储介质及装置 |
CN113806305A (zh) * | 2020-09-30 | 2021-12-17 | 北京沃东天骏信息技术有限公司 | 数据导出方法及装置、计算机可读存储介质及电子设备 |
CN114217748A (zh) * | 2021-12-17 | 2022-03-22 | 中国建设银行股份有限公司 | 数据导出方法、装置、设备、介质及产品 |
CN116614551A (zh) * | 2023-07-17 | 2023-08-18 | 北京海科融通支付服务有限公司 | 基于模板的多任务异步下载方法、系统、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996067A (zh) * | 2009-08-19 | 2011-03-30 | 阿里巴巴集团控股有限公司 | 一种数据导出的方法和装置 |
CN103092993A (zh) * | 2013-02-18 | 2013-05-08 | 五八同城信息技术有限公司 | 数据导出方法及装置 |
CN106776829A (zh) * | 2016-11-28 | 2017-05-31 | 成都广达新网科技股份有限公司 | 一种数据导出系统及其工作方法 |
CN107229656A (zh) * | 2016-03-25 | 2017-10-03 | 北京京东尚科信息技术有限公司 | 全量数据导出方法、装置及系统 |
CN107526635A (zh) * | 2017-09-05 | 2017-12-29 | 成都知道创宇信息技术有限公司 | 一种数据异步导出方法 |
CN108038126A (zh) * | 2017-11-08 | 2018-05-15 | 中国平安人寿保险股份有限公司 | 一种数据导出的方法、装置、终端设备及存储介质 |
CN109947789A (zh) * | 2019-01-28 | 2019-06-28 | 平安科技(深圳)有限公司 | 一种多数据库的数据处理的方法、装置、计算机设备及存储介质 |
-
2019
- 2019-12-06 CN CN201911245186.6A patent/CN111125174A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996067A (zh) * | 2009-08-19 | 2011-03-30 | 阿里巴巴集团控股有限公司 | 一种数据导出的方法和装置 |
CN103092993A (zh) * | 2013-02-18 | 2013-05-08 | 五八同城信息技术有限公司 | 数据导出方法及装置 |
CN107229656A (zh) * | 2016-03-25 | 2017-10-03 | 北京京东尚科信息技术有限公司 | 全量数据导出方法、装置及系统 |
CN106776829A (zh) * | 2016-11-28 | 2017-05-31 | 成都广达新网科技股份有限公司 | 一种数据导出系统及其工作方法 |
CN107526635A (zh) * | 2017-09-05 | 2017-12-29 | 成都知道创宇信息技术有限公司 | 一种数据异步导出方法 |
CN108038126A (zh) * | 2017-11-08 | 2018-05-15 | 中国平安人寿保险股份有限公司 | 一种数据导出的方法、装置、终端设备及存储介质 |
CN109947789A (zh) * | 2019-01-28 | 2019-06-28 | 平安科技(深圳)有限公司 | 一种多数据库的数据处理的方法、装置、计算机设备及存储介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930772A (zh) * | 2020-07-30 | 2020-11-13 | 中粮招商局(深圳)粮食电子交易中心有限公司 | 数据的导出方法、装置、系统及计算机可读存储介质 |
CN113806305A (zh) * | 2020-09-30 | 2021-12-17 | 北京沃东天骏信息技术有限公司 | 数据导出方法及装置、计算机可读存储介质及电子设备 |
CN112488476A (zh) * | 2020-11-20 | 2021-03-12 | 中国人寿保险股份有限公司 | 一种任务全生命周期管理方法、装置及电子设备 |
CN112925840A (zh) * | 2021-03-09 | 2021-06-08 | 上海华客信息科技有限公司 | 数据导出方法、系统、设备及存储介质 |
CN113722388A (zh) * | 2021-08-24 | 2021-11-30 | 咪咕音乐有限公司 | 数据导出方法、设备、存储介质及装置 |
CN114217748A (zh) * | 2021-12-17 | 2022-03-22 | 中国建设银行股份有限公司 | 数据导出方法、装置、设备、介质及产品 |
CN116614551A (zh) * | 2023-07-17 | 2023-08-18 | 北京海科融通支付服务有限公司 | 基于模板的多任务异步下载方法、系统、设备及介质 |
CN116614551B (zh) * | 2023-07-17 | 2023-09-22 | 北京海科融通支付服务有限公司 | 基于模板的多任务异步下载方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111125174A (zh) | 数据导出方法、装置、存储介质、电子设备 | |
WO2021238796A1 (zh) | 下载任务异步处理方法、装置、系统和存储介质 | |
CN110445828B (zh) | 一种基于Redis的数据分布式处理方法及其相关设备 | |
CN111813805A (zh) | 一种数据处理方法及装置 | |
CN109240607B (zh) | 一种文件读取方法和装置 | |
CN110941602B (zh) | 数据库的配置方法、装置、电子设备及存储介质 | |
CN110602227B (zh) | 一种智能合约管理的方法以及相关装置 | |
CN110532493B (zh) | 数据的处理方法及装置、存储介质和电子装置 | |
CN113779060A (zh) | 数据查询方法和装置 | |
CN111949832A (zh) | 批量作业依赖关系的解析方法及装置 | |
CN113468111A (zh) | 一种容器云的日志监控管理系统及方法 | |
CN108399175B (zh) | 一种数据存储、查询方法及其装置 | |
CN111580948A (zh) | 任务调度方法、装置及计算机设备 | |
CN111367916B (zh) | 一种数据存储方法及装置 | |
CN110968406B (zh) | 处理任务的方法、装置、存储介质和处理器 | |
CN110888840A (zh) | 分布式文件系统中的文件查询方法、装置、设备及介质 | |
CN114675940A (zh) | 应用实例构建方法、装置和设备 | |
CN110019296B (zh) | 数据库查询脚本的生成方法、装置、存储介质及处理器 | |
CN110245009B (zh) | 周期任务分配方法、装置、计算机设备和存储介质 | |
CN110362575B (zh) | 一种生成数据的全局索引的方法及装置 | |
CN108810299B (zh) | 一种信息解析的方法、介质及设备 | |
CN113312412A (zh) | 一种统计数据的获取方法、装置、电子设备及存储介质 | |
CN111930720A (zh) | 数据倾斜的处理方法、系统、电子设备和介质 | |
CN116701410B (zh) | 数联网数据语用内存状态数据的存储方法及系统 | |
CN111552561B (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 |