CN108038126A - 一种数据导出的方法、装置、终端设备及存储介质 - Google Patents
一种数据导出的方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN108038126A CN108038126A CN201711089052.0A CN201711089052A CN108038126A CN 108038126 A CN108038126 A CN 108038126A CN 201711089052 A CN201711089052 A CN 201711089052A CN 108038126 A CN108038126 A CN 108038126A
- Authority
- CN
- China
- Prior art keywords
- export
- subtask
- data
- total amount
- derived
- 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.)
- Granted
Links
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于计算机技术领域,公开了一种数据导出的方法、装置、终端设备及存储介质。所述方法包括:根据数据导出需求,创建导出任务包,其中,导出任务包包含根据待导出的源数据总量分配的第一数量的导出子任务;执行导出任务包中的每个导出子任务;若第一数量的导出子任务全部执行完成,则获取导出任务包导出完成后的目标数据总量;根据源数据总量和目标数据总量,校验导出结果是否正确。该数据导出的方法能够及时发现由于数据重复导出造成的数据导出错误,并且该校验机制简单高效,不会对数据导出的效率造成影响。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据导出的方法、装置、终端设备及存储介质。
背景技术
大数据在进行数据导出到关系型数据库时,会为一个导出任务创建多个导出子任务,导出子任务在执行失败时会被安排重新执行,该导出子任务的数据全部重新导出,如果导出子任务在执行失败时已经导出了一部分数据,那么该导出子任务重新执行完成后导出的数据中会存在重复数据,造成数据导出错误。
目前,大数据在将数据导出到关系型数据库时往往没有对数据重复导出造成的导出错误进行检查,或者由于检查的方法比较复杂而不能及时进行检查。同时,复杂的检查方法会对导出效率造成影响,例如在导出子任务中增加配置参数等,当面对数据量巨大的导出任务时,对大数据的导出效率影响较大。
发明内容
本发明实施例提供一种数据导出的方法,以解决目前大数据导出时不能及时发现由数据重复导出造成的数据导出错误,以及现有的数据检查机制不及时且会降低数据导出效率的问题。
第一方面,本发明实施例提供一种数据导出的方法,包括:
根据数据导出需求,创建导出任务包,其中,所述导出任务包包含根据待导出的源数据总量分配的第一数量的导出子任务;
执行所述导出任务包中的每个导出子任务;
若所述第一数量的导出子任务全部执行完成,则获取所述导出任务包导出完成后的目标数据总量;
根据所述源数据总量和所述目标数据总量,校验导出结果是否正确。
第二方面,本发明实施例提供一种数据导出的装置,包括:
创建模块,用于根据数据导出需求,创建导出任务包,其中,所述导出任务包包含根据待导出的源数据总量分配的第一数量的导出子任务;
处理模块,用于执行导出任务包中的每个导出子任务;
获取模块,用于若所述第一数量的导出子任务全部执行完成,则获取所述导出任务包导出完成后的目标数据总量;
校验模块,用于根据所述源数据总量和所述目标数据总量,校验导出结果是否正确。
第三方面,本发明实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述数据导出的方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述数据导出的方法的步骤。
本发明实施例与现有技术相比具有如下优点:本发明实施例所提供的数据导出的方法、装置、设备及存储介质中,根据数据导出需求,创建包含根据待导出的源数据总量分配的若干导出子任务的导出任务包,执行每个导出子任务,在导出子任务全部完成执行后,获取导出任务包导出完成后的目标数据总量,并根据源数据总量和目标数据总量校验数据导出结果是否正确,从而能够及时发现由于数据重复导出造成的数据导出错误,并且该校验机制简单高效,不会对数据导出的效率造成影响。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据导出的方法的实现流程图;
图2是本发明实施例提供的数据导出的方法中步骤S20的实现流程图;
图3是本发明实施例提供的数据导出的方法中步骤S22的实现流程图;
图4是本发明实施例提供的数据导出的方法中步骤S40的实现流程图;
图5是本发明实施例提供的数据导出的装置的示意图;
图6是本发明实施例提供的终端设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1示出了本发明实施例提供的数据导出的方法的实现流程图。该数据导出的方法可应用在将大数据中的数据导出到关系数据库的计算机处理系统或者装置中,能够对导出的数据进行校验,以确定导出结果是否正确。如图1所示,该数据导出的方法包括步骤S10至步骤S40,详述如下:
S10:根据数据导出需求,创建导出任务包,其中,该导出任务包包含根据待导出的源数据总量分配的第一数量的导出子任务。
在本发明实施例中,数据导出需求即为将待导出的源数据从当前的大数据数据库导出到目标关系型数据库中的导出请求,源数据总量为待导出的源数据的数据总条数,第一数量为导出任务包包含的导出子任务的任务个数。
根据数据导出需求创建的导出任务包包含第一数量的导出子任务。不同导出子任务所分配的导出数据量可以相同也可以不相同,导出数据量为导出子任务被分配的待导出数据的数据条数。具体地,根据待处理数据的源数据总量,以及每个导出子任务的处理能力,为每个导出子任务分配相应的导出数据量和对应的待导出的数据信息。
每个导出子任务可同时执行,也可以分批执行,将待处理的数据导出,通过多个导出子任务同步进行导出操作,能够有效提高数据导出的效率。
导出任务包创建完成时,系统获取待导出的源数据总量和存储信息以及导出子任务的任务个数,即第一数量,并根据每个导出子任务的导出数据量为每个导出子任务分配待导出数据,同时记录每个导出子任务所分配的待导出数据的存储信息,以便在启动导出子任务执行导出时,能够快速获取该待导出数据的内容,提高数据的导出效率。
在本发明实施例中,通过Sqoop导出的方式将待处理的数据从大数据的分布式文件系统导出到关系数据库,每个导出子任务以Sqoop脚本的形式保存。其中,分布式文件系统(Distributed File System,DFS)可以是Hadoop、 Mortar Data、Continuuity等应用程序构建的,例如HDFS(Hadoop Distributed File System),关系数据库可以是MySQL、Oracle、Postgres等数据库。
S20:执行导出任务包中的每个导出子任务。
在本发明实施例中,根据步骤S10可知,导出任务包中包含第一数量的导出子任务,每个导出子任务导出源数据总量中的一部分待导出数据。导出子任务执行时根据获取到的被分配的待导出数据的存储信息,快速获取该待导出数据并导出。
当所有导出子任务均执行完成,则确认导出任务包执行完成。也就是说,系统会对每个导出子任务进行监控,以确定导出任务包是否根据数据导出需求,完成待导出数据的转移,将待导出数据导出至关系数据库中。
S30:若第一数量的导出子任务全部执行完成,则获取导出任务包导出完成后的目标数据总量。
在本发明实施例中,若根据步骤S20第一数量的导出子任务全部执行完成,则获取导出到目标关系型数据库中的目标数据总量,该目标数据总量为目标数据的数据记录条数。
S40:根据源数据总量和目标数据总量,校验导出结果是否正确。
在本发明实施例中,根据步骤S10中源数据总量和步骤S30得到的目标数据总量,通过对待导出的源数据的数据记录条数和导出到目标关系型数据库中的目标据数据的数据记录条数进行比较,并根据比较结果判断导出结果是否正确。
具体比较的方式可以是直接判断源数据总量和目标数据总量是否相等,还可以是判断源数据总量和目标数据总量的偏差是否满足预定的偏差范围,此处不做限制。当采用判断源数据总量和目标数据总量的偏差是否满足预定的偏差范围的比较方式时,若判断源数据总量和目标数据总量的偏差在预定的偏差范围内,则校验结果为导出结果正确,否则校验结果为导出结果错误。
在图1对应的实施例中,根据数据导出需求,创建包含根据待导出的源数据总量分配的若干导出子任务的导出任务包,执行每个导出子任务,在导出子任务全部完成执行后,获取导出任务包导出完成后的目标数据总量,并根据源数据总量和目标数据总量校验数据导出结果是否正确,从而能够及时发现由于数据重复导出造成的数据导出错误,并且该校验机制简单高效,不会对数据导出的效率造成影响。
接下来,在图1对应的实施例的基础之上,下面通过一个具体的实施例对步骤S20中执行导出任务包中的每个导出子任务的具体实现方法进行详细说明。
请参阅图2,图2示出了本发明实施例提供的步骤S20的具体实现流程,详述如下:
S21:为每个导出子任务分配任务资源。
具体地,在导出过程中,由于导出子任务的数量较多,所有的导出子任务可能无法同时申请到任务资源,因此,导出任务包由资源管理器 (ResourceManager,RM)进行统一的资源管理和调度,RM接收来自导出子任务的资源申请和启动命令,分配具体的任务资源,并以容器(Container) 的形式提供给导出子任务,同时监控导出子任务执行完成,当监测到导出子任务执行失败时重新调度和执行该导出子任务。
每个导出子任务均包含对应的应用管理(ApplicationMaster)程序,用以向RM申请任务资源和启动许可。RM由调度器(Scheduler)和应用程序管理器(ApplicationsManager,ASM)构成。ASM接收ApplicationMaster 程序发送的请求命令和反馈信息,负责sqoop导出过程的系统管理。 Scheduler是资源调度器,负责协调大数据集群系统中各个应用的资源分配,保障整个集群系统的运行效率,在本发明实施例中,Scheduler具体用于任务资源的管理和调度,根据集群系统的运行情况合理分配任务资源给导出子任务。
在本发明实施例中,在步骤S10导出任务包创建完成后,导出子任务的ApplicationMaster程序向RM发送执行请求,该执行请求包括申请资源请求和启动命令;ASM接收ApplicationMaster程序发送的申请资源请求和启动命令,向Scheduler申请一个Container资源用于启动和运行 ApplicationMaster程序,以执行对应的导出子任务。ApplicationMaster程序执行完成后释放Container资源,由Scheduler回收该Container资源并再次分配给其他导出子任务继续使用,以提高资源的利用率。
S22:使用任务资源启动并执行导出子任务。
具体地,导出子任务的ApplicationMaster程序在步骤S21申请到对应的任务资源和启动许可后,ApplicationMaster程序被启动和执行,根据获取到的被分配的待导出数据的存储信息,导出该待导出数据,完成该导出子任务。
进一步地,在导出子任务的执行过程中可以通过心跳监控的方式监控其执行过程,避免由于导出子任务执行异常导致任务资源无法释放或该导出子任务无法完成。
S23:若导出子任务执行失败,则重新执行该导出子任务,直到达到最大重跑次数或者该导出子任务执行成功。
具体地,若根据步骤S22确认导出子任务执行失败,则RM重新启动该导出子任务对应的ApplicationMaster程序,调度该导出子任务重新执行。
最大重跑次数为允许导出子任务重新执行的最大次数,最大重跑次数预先被设置,通常设置为3次,但并不限于此,具体可以根据实际应用的需要进行设置,此处不做限制。
若导出子任务执行失败导致重新执行的次数达到预先设定的最大重跑次数,或者导出子任务重新执行成功,则RM不再调度该导出子任务重新执行。
需要说明的是,当导出子任务执行失败导致重新执行时,在导出子任务执行失败时若已经导出了部分数据,已经导出的部分数据无法被取消或回退,当导出子任务重新执行时,会将该导出子任务被分配的待导出数据全部重新进行导出操作,即已经导出的部分数据会被再次导出,从而导致最终的导出结果存在数据重复的错误。
在图2对应的实施例中,通过RM对每个导出子任务进行统一的资源管理和调度,分配具体的任务资源,有效确保每个导出子任务能够顺利执行;同时,监控导出子任务执行完成,当监测到导出子任务执行失败时重新调度和执行该导出子任务,使得导出子任务的完成成功率;在导出子任务执行完成后回收其对应的任务资源并再次分配给其他导出子任务继续使用,从而有效提高资源的利用率。
在图2对应的实施例的基础之上,下面通过一个具体的实施例对步骤 S22中使用任务管理资源启动并执行导出子任务的具体实现方法进行详细说明。
请参阅图3,图3示出了本发明实施例提供的步骤S22的具体实现流程,详述如下:
S221:使用任务资源启动导出子任务,并启动对该导出子任务的心跳监控。
具体地,RM分配任务资源给导出子任务后,ASM启动导出子任务的ApplicationMaster程序,ApplicationMaster程序启动时,向RM注册自己的端口号和IP地址等信息,同时,RM启动对该ApplicationMaster程序的心跳监控,通过心跳监控的方式监控ApplicationMaster程序的执行过程。
S222:在导出子任务的执行过程中,定期获取该导出子任务的心跳数据。
具体地,ApplicationMaster程序在执行过程中每隔预定的时间间隔向 RM发送心跳数据,RM接收到该心跳数据则更新ApplicationMaster程序最近一次发送心跳的时间。
需要说明的是,预定的时间间隔可以设置为0.1秒,但并不限于此,其具体可以根据实际应用的需要进行设置,此处不做限制。
S223:若在预设的心跳阈值时间范围内未收到导出子任务的心跳数据,则确认该导出子任务执行失败,停止心跳监控并执行对导出子任务的异常处理,其中,该异常处理包括强制注销导致子任务,以及强制释放任务资源。
具体地,RM在心跳监控过程中,若在预设的心跳阈值时间范围内未收到ApplicationMaster程序的心跳数据,则确认该ApplicationMaster程序出现异常,RM停止对该ApplicationMaster程序的心跳监控,并启动对该 ApplicationMaster程序的异常处理,包括强制注销该ApplicationMaster程序,以及强制释放该ApplicationMaster程序的Container资源等,并确认该导出子任务执行失败。
需要说明的是,预设的心跳阈值时间范围大于或等于发送心跳数据的时间间隔,例如,若发送心跳数据的时间间隔为0.1秒,则心跳阈值时间范围可以设置为0.3秒,即ApplicationMaster程序若连续三次没有发送心跳数据,则确认该ApplicationMaster程序出现异常。
S224:若在心跳阈值时间范围内收到导出子任务的心跳数据,则继续进行对该导出子任务的心跳监控,直到该导出子任务执行完成。
具体地,RM在心跳监控过程中,若在预设的心跳阈值时间范围内收到了ApplicationMaster程序的心跳数据,则继续进行心跳监控,直到该导出子任务的ApplicationMaster程序执行完成。
S225:若导出子任务执行完成,则确认该导出子任务执行成功,停止心跳监控,注销该导致子任务并释放任务资源。
具体地,当ApplicationMaster程序执行完成后,ApplicationMaster程序向RM请求注销,RM则移除对ApplicationMaster程序的心跳监控,注销 ApplicationMaster程序并释放分配给ApplicationMaster程序的任务资源,并确认该导出子任务执行成功。
在图3对应的实施例中,通过心跳监控的方式监控导出子任务的执行过程,能够及时发现执行出现异常的导出子任务,避免由于导出子任务的执行异常导致任务资源无法释放或该导出子任务无法完成的情况,实现对数据导出的有效监控。
在图1对应的实施例的基础之上,下面通过一个具体的实施例对步骤 S40中根据源数据总量和目标数据总量,校验导出结果是否正确的具体实现方法进行详细说明。
请参阅图4,图4示出了本发明实施例提供的步骤S40的具体实现流程,详述如下:
S41:若源数据总量与目标数据总量不相等,则确认导出结果错误。
具体地,若源数据总量与目标数据总量不相等,则确认存在导出子任务执行失败并重新执行的情况,导致目标数据中存在重复导出的数据,即确认导出结果错误。
S42:若源数据总量与目标数据总量相等,则确认导出结果正确。
具体地,若源数据总量与目标数据总量相等,则确认不存在导出子任务执行失败并重新执行的情况,导致目标数据中不存在重复导出的数据,即确认导出结果正确。
在图4对应的实施例中,通过直接比较源数据总量和目标数据总量是否相等对导出结果进行校验的机制,实现过程简单高效,且易于实施,在及时发现由于数据重复导出造成的导出错误的同时,不会影响导出任务包的导出效率。
在图4对应的实施例的基础之上,在步骤S40根据源数据总量和目标数据总量,校验导出结果是否正确之后,该数据导出的方法还包括:
若导出结果错误,则发送告警提示信息,或者根据数据导出需求重新进行数据导出。
具体地,若校验结果为导出结果错误,即源数据总量与目标数据总量不相等,则发送告警提示信息,或者根据数据导出需求重新进行数据导出。
需要说明的是,当导出结果错误时,可以只发送告警提示信息,或者可以只根据数据导出需求重新进行数据导出,还可以在向发送告警信息的同时,根据源数据导出需求重新进行数据导出,其具体可以根据实际应用的需要进行设置,此处不做限制。
发送告警提示信息时,该告警提示信息的内容包括数据导出需求的具体内容,以及源数据总量和目标数据总量的具体数值等,告警提示信息的具体输出方式包括向预定用户发送邮件或者即时信息,或者自动拨打预定用户的电话进行语音告警等。
根据数据导出需求重新进行数据导出时,其具体数据导出的过程可以采用步骤S10至步骤S40的实现过程,也可以采用其他的导出方式实现,此处不做限制。需要说明的是,若重新进行数据导出的结果仍然错误,则可以多次重新进行数据导出,通过预先设置重新导出次数限定重新进行数据导出的最大次数,并且,在关系型数据库中的目标数据始终为最后一次数据导出的目标数据。
在本发明实施例中,通过发送告警的方式及时提醒用户数据导出的结果错误,以便相关维护人员能够及时排查和解决问题,从而使数据使用者能够正常使用导出后的目标数据,避免数据导出错误造成的影响;通过自动重新进行数据导出,能够及时对数据导出错误进行补救,使得数据使用者能够正常使用导出后的目标数据,避免数据导出错误造成的影响。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例所述的数据导出的方法,图5示出了本发明实施例提供的数据导出的装置50的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。
请参阅图5,该数据导出的装置50包括:
创建模块51,用于根据数据导出需求,创建导出任务包,其中,导出任务包包含根据待导出的源数据总量分配的第一数量的导出子任务;
处理模块52,用于执行导出任务包中的每个导出子任务;
获取模块53,用于若第一数量的导出子任务全部执行完成,则获取导出任务包导出完成后的目标数据总量;
校验模块54,用于根据源数据总量和目标数据总量,校验导出结果是否正确。
进一步地,校验模块54包括:
第一检测单元541,用于若源数据总量与目标数据总量不相等,则确认导出结果错误;
第二检测单元542,用于若源数据总量与目标数据总量相等,则确认导出结果正确。
进一步地,该数据导出的装置50还包括:
错误处理模块55,用于若导出结果错误,则发送告警提示信息,或根据数据导出需求重新进行数据导出。
进一步地,处理模块52包括:
分配单元521,用于为每个导出子任务分配任务资源;
执行单元522,用于使用任务资源启动并执行导出子任务;
重跑单元523,用于若导出子任务执行失败,则重新执行该导出子任务,直到达到最大重跑次数或者导出子任务执行成功。
进一步地,执行单元522包括:
启动子单元5221,用于使用任务资源启动导出子任务,并启动对该导出子任务的心跳监控;
心跳获取子单元5222,用于在导出子任务的执行过程中,定期获取该导出子任务的心跳数据;
心跳异常子单元5223,用于若在预设的心跳阈值时间范围内未收到心跳数据,则确认导出子任务执行失败,停止心跳监控并执行对该导出子任务的异常处理,其中,异常处理包括强制注销导致子任务,以及强制释放任务资源;
心跳正常子单元5224,用于若在心跳阈值时间范围内收到心跳数据,则继续进行心跳监控,直到导出子任务执行完成;
停止子单元5225,用于若导出子任务执行完成,则确认导出子任务执行成功,停止心跳监控,注销导致子任务并释放任务资源。
本实施例提供的一种数据导出的装置中各模块实现各自功能的过程,具体可参考前述方法实施例的描述,此处不再赘述。
本实施例还提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现前述方法实施例中的数据导出的方法,或者,该计算机程序被处理器执行时实现前述装置实施例中数据导出的装置中各模块/单元的功能,为避免重复,这里不再赘述。
请参阅图6,图6是本发明一实施例提供的终端设备的示意图。如图 6所示,该实施例的终端设备60包括:处理器61、存储器62以及存储在存储器62中并可在处理器61上运行的计算机程序63,例如数据导出程序。处理器61执行计算机程序63时实现上述各个数据导出的方法实施例中的步骤,例如图1所示的步骤S10至步骤S40。或者,处理器61执行计算机程序63时实现上述各装置实施例中各模块/单元的功能,例如图5所示创建模块51、处理模块52、获取模块53、校验模块54以及错误处理模块55的功能。
示例性的,计算机程序63可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器62中,并由处理器61执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序63在终端设备60中的执行过程。例如,计算机程序63可以被分割成创建模块、处理模块、获取模块、校验模块,各模块具体功能如下:
创建模块,用于根据数据导出需求,创建导出任务包,其中,导出任务包包含根据待导出的源数据总量分配的第一数量的导出子任务;
处理模块,用于执行导出任务包中的每个导出子任务;
获取模块,用于若第一数量的导出子任务全部执行完成,则获取导出任务包导出完成后的目标数据总量;
校验模块,用于根据源数据总量和目标数据总量,校验导出结果是否正确。
进一步地,校验模块包括:
第一检测单元,用于若源数据总量与目标数据总量不相等,则确认导出结果错误;
第二检测单元,用于若源数据总量与目标数据总量相等,则确认导出结果正确。
进一步地,计算机程序63还可以被分割成:
错误处理模块,用于若导出结果错误,则发送告警提示信息,或根据数据导出需求重新进行数据导出。
进一步地,处理模块包括:
分配单元,用于为每个导出子任务分配任务资源;
执行单元,用于使用任务资源启动并执行导出子任务;
重跑单元,用于若导出子任务执行失败,则重新执行该导出子任务,直到达到最大重跑次数或者导出子任务执行成功。
进一步地,执行单元包括:
启动子单元,用于使用任务资源启动导出子任务,并启动对该导出子任务的心跳监控;
心跳获取子单元,用于在导出子任务的执行过程中,定期获取该导出子任务的心跳数据;
心跳异常子单元,用于若在预设的心跳阈值时间范围内未收到心跳数据,则确认导出子任务执行失败,停止心跳监控并执行对该导出子任务的异常处理,其中,异常处理包括强制注销导致子任务,以及强制释放任务资源;
心跳正常子单元,用于若在心跳阈值时间范围内收到心跳数据,则继续进行心跳监控,直到导出子任务执行完成;
停止子单元,用于若导出子任务执行完成,则确认导出子任务执行成功,停止心跳监控,注销导致子任务并释放任务资源。
终端设备60可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备可包括,但不仅限于,处理器61、存储器62。本领域技术人员可以理解,图6仅仅是终端设备60的示例,并不构成对终端设备 60的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备60还可以包括输入输出设备、网络接入设备、总线等。
处理器61可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器62可以是终端设备60的内部存储单元,例如终端设备60的硬盘或内存。存储器62也可以是终端设备60的外部存储设备,例如终端设备60上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器 62还可以既包括终端设备60的内部存储单元也包括外部存储设备。存储器 62用于存储计算机程序以及终端设备60所需的其他程序和数据。存储器 62还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据导出的方法,其特征在于,所述方法包括:
根据数据导出需求,创建导出任务包,其中,所述导出任务包包含根据待导出的源数据总量分配的第一数量的导出子任务;
执行所述导出任务包中的每个导出子任务;
若所述第一数量的导出子任务全部执行完成,则获取所述导出任务包导出完成后的目标数据总量;
根据所述源数据总量和所述目标数据总量,校验导出结果是否正确。
2.如权利要求1所述的数据导出的方法,其特征在于,所述根据所述源数据总量和所述目标数据总量,校验导出结果是否正确包括:
若所述源数据总量与所述目标数据总量不相等,则确认导出结果错误;
若所述源数据总量与所述目标数据总量相等,则确认导出结果正确。
3.如权利要求2所述的数据导出的方法,其特征在于,所述根据所述源数据总量和所述目标数据总量,校验导出结果是否正确之后,所述方法还包括:
若导出结果错误,则发送告警提示信息,或者根据所述数据导出需求重新进行数据导出。
4.如权利要求1所述的数据导出的方法,其特征在于,所述执行所述导出任务包中的每个导出子任务,包括:
为每个导出子任务分配任务资源;
使用所述任务资源启动并执行所述导出子任务;
若所述导出子任务执行失败,则重新执行该导出子任务,直到达到最大重跑次数或者所述导出子任务执行成功。
5.如权利要求4所述的数据导出的方法,其特征在于,所述使用所述任务资源启动并执行所述导出子任务,包括:
使用所述任务资源启动所述导出子任务,并启动对所述导出子任务的心跳监控;
在所述导出子任务的执行过程中,定期获取所述导出子任务的心跳数据;
若在预设的心跳阈值时间范围内未收到所述心跳数据,则确认所述导出子任务执行失败,停止所述心跳监控并执行对所述导出子任务的异常处理,其中,所述异常处理包括强制注销所述导致子任务,以及强制释放所述任务资源;
若在所述心跳阈值时间范围内收到所述心跳数据,则继续进行所述心跳监控,直到所述导出子任务执行完成;
若所述导出子任务执行完成,则确认所述导出子任务执行成功,停止所述心跳监控,注销所述导致子任务并释放所述任务资源。
6.一种数据导出的装置,其特征在于,所述装置包括:
创建模块,用于根据数据导出需求,创建导出任务包,其中,所述导出任务包包含根据待导出的源数据总量分配的第一数量的导出子任务;
处理模块,用于执行导出任务包中的每个导出子任务;
获取模块,用于若所述第一数量的导出子任务全部执行完成,则获取所述导出任务包导出完成后的目标数据总量;
校验模块,用于根据所述源数据总量和所述目标数据总量,校验导出结果是否正确。
7.如权利要求6所述的数据导出的装置,其特征在于,所述校验模块包括:
第一检测单元,用于若所述源数据总量与所述目标数据总量不相等,则确认导出结果错误;
第二检测单元,用于若所述源数据总量与所述目标数据总量相等,则确认导出结果正确。
8.如权利要求6所述的数据导出的装置,其特征在于,所述处理模块包括:
分配单元,用于为每个导出子任务分配任务资源;
执行单元,用于使用所述任务资源启动并执行所述导出子任务;
重跑单元,用于若所述导出子任务执行失败,则重新执行该导出子任务,直到达到最大重跑次数或者所述导出子任务执行成功。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述数据导出的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述数据导出的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711089052.0A CN108038126B (zh) | 2017-11-08 | 2017-11-08 | 一种数据导出的方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711089052.0A CN108038126B (zh) | 2017-11-08 | 2017-11-08 | 一种数据导出的方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108038126A true CN108038126A (zh) | 2018-05-15 |
CN108038126B CN108038126B (zh) | 2021-03-02 |
Family
ID=62093784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711089052.0A Active CN108038126B (zh) | 2017-11-08 | 2017-11-08 | 一种数据导出的方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108038126B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111125174A (zh) * | 2019-12-06 | 2020-05-08 | 东软集团股份有限公司 | 数据导出方法、装置、存储介质、电子设备 |
CN111259063A (zh) * | 2018-11-30 | 2020-06-09 | 北京数聚鑫云信息技术有限公司 | 一种以api方式实现数据导出的方法及装置 |
CN112463076A (zh) * | 2020-12-14 | 2021-03-09 | 广州慧智信息科技有限公司 | 一种数据导出方法、计算机设备以及存储介质 |
CN112925772A (zh) * | 2019-12-06 | 2021-06-08 | 北京沃东天骏信息技术有限公司 | 一种数据动态拆分方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777030A (zh) * | 2009-12-31 | 2010-07-14 | 华亚微电子(上海)有限公司 | 数据传输系统的验证装置和方法 |
CN103699495A (zh) * | 2013-12-27 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 数据切分的传输装置与系统 |
CN105556515A (zh) * | 2013-07-09 | 2016-05-04 | 甲骨文国际公司 | 数据库建模与分析 |
WO2016081565A1 (en) * | 2014-11-20 | 2016-05-26 | Trading Technologies International, Inc. | Merging data downloads with real-time data feeds |
US20160226955A1 (en) * | 2010-08-24 | 2016-08-04 | Solano Labs, Inc. | Method and apparatus for clearing cloud compute demand |
CN106776597A (zh) * | 2015-11-19 | 2017-05-31 | 阿里巴巴集团控股有限公司 | 结构化数据的下载方法和装置 |
CN106970921A (zh) * | 2016-01-14 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 一种数据迁移方法及装置 |
-
2017
- 2017-11-08 CN CN201711089052.0A patent/CN108038126B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777030A (zh) * | 2009-12-31 | 2010-07-14 | 华亚微电子(上海)有限公司 | 数据传输系统的验证装置和方法 |
US20160226955A1 (en) * | 2010-08-24 | 2016-08-04 | Solano Labs, Inc. | Method and apparatus for clearing cloud compute demand |
CN105556515A (zh) * | 2013-07-09 | 2016-05-04 | 甲骨文国际公司 | 数据库建模与分析 |
CN103699495A (zh) * | 2013-12-27 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 数据切分的传输装置与系统 |
WO2016081565A1 (en) * | 2014-11-20 | 2016-05-26 | Trading Technologies International, Inc. | Merging data downloads with real-time data feeds |
CN106776597A (zh) * | 2015-11-19 | 2017-05-31 | 阿里巴巴集团控股有限公司 | 结构化数据的下载方法和装置 |
CN106970921A (zh) * | 2016-01-14 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 一种数据迁移方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111259063A (zh) * | 2018-11-30 | 2020-06-09 | 北京数聚鑫云信息技术有限公司 | 一种以api方式实现数据导出的方法及装置 |
CN111259063B (zh) * | 2018-11-30 | 2023-08-15 | 北京数聚鑫云信息技术有限公司 | 一种以api方式实现数据导出的方法及装置 |
CN111125174A (zh) * | 2019-12-06 | 2020-05-08 | 东软集团股份有限公司 | 数据导出方法、装置、存储介质、电子设备 |
CN112925772A (zh) * | 2019-12-06 | 2021-06-08 | 北京沃东天骏信息技术有限公司 | 一种数据动态拆分方法和装置 |
CN112463076A (zh) * | 2020-12-14 | 2021-03-09 | 广州慧智信息科技有限公司 | 一种数据导出方法、计算机设备以及存储介质 |
CN112463076B (zh) * | 2020-12-14 | 2023-07-21 | 广东智慧青少年宫教育发展有限公司 | 一种数据导出方法、计算机设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108038126B (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108038126A (zh) | 一种数据导出的方法、装置、终端设备及存储介质 | |
CN109634728A (zh) | 作业调度方法、装置、终端设备及可读存储介质 | |
CN109359031B (zh) | 多设备应用程序测试方法、装置、服务器及存储介质 | |
CN110162388A (zh) | 一种任务调度方法、系统及终端设备 | |
CN111274052A (zh) | 数据分发方法、服务器及计算机可读存储介质 | |
CN110223040A (zh) | 项目管理方法、装置、电子设备及存储介质 | |
CN107660289A (zh) | 自动网络控制 | |
CN110427252A (zh) | 基于任务依赖关系的任务调度方法、装置及存储介质 | |
CN110611707A (zh) | 一种任务调度的方法及装置 | |
CN108183933A (zh) | 消息推送方法、装置及系统、电子设备和计算机存储介质 | |
EP2629205A1 (en) | Multi-entity test case execution workflow | |
CN110264156A (zh) | 一种项目管理方法、装置、电子设备及存储介质 | |
CN109284895A (zh) | 项目任务分配方法、装置、计算机设备及存储介质 | |
CN105243125B (zh) | PrestoDB集群的运行方法、装置、集群及查询数据方法和装置 | |
CN109472550A (zh) | 百万千瓦级核电站防人因失误方法、装置及终端设备 | |
CN109800080A (zh) | 一种基于Quartz框架的任务调度方法、系统及终端设备 | |
CN108243012A (zh) | 在线计费系统ocs中计费应用处理系统、方法及装置 | |
CN108197857A (zh) | 物资管理服务器及方法 | |
CN109064104A (zh) | 物资设备管理方法、系统及终端设备 | |
CN111443999A (zh) | 数据并行处理方法、执行器、计算机设备和存储介质 | |
CN109299193A (zh) | 数据同步方法及相关设备 | |
CN107864187A (zh) | 终端设备联机任务执行方法及服务器 | |
CN107464049A (zh) | 一种任务发放方法、装置及终端设备 | |
CN106484459A (zh) | 应用于JavaScript的流程控制方法和装置 | |
CN107609763A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |