CN112015799B - Etl任务执行方法、装置、计算机设备及存储介质 - Google Patents
Etl任务执行方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112015799B CN112015799B CN202011122388.4A CN202011122388A CN112015799B CN 112015799 B CN112015799 B CN 112015799B CN 202011122388 A CN202011122388 A CN 202011122388A CN 112015799 B CN112015799 B CN 112015799B
- Authority
- CN
- China
- Prior art keywords
- data
- task
- etl task
- etl
- processing
- 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.)
- Active
Links
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/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
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)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及数据仓库工具技术领域,具体公开了一种ETL任务执行方法、装置、计算机设备及存储介质。其中方法包括:在ETL任务开始执行前,判断数据存储端是否有与ETL任务对应的中间数据;若数据存储端有与ETL任务对应的中间数据,则获取中间数据;根据中间数据确定ETL任务的执行进程,以使ETL任务根据执行进程进行断点重启;若数据存储端没有与ETL任务对应的中间数据,则执行ETL任务;在ETL任务的执行期间,获取ETL任务在执行期间的中间数据,并将中间数据存储至数据存储端中。本申请实施例可以提高ETL任务的执行效率。此外,本申请还涉及区块链技术,中间数据可存储于区块链节点中。
Description
技术领域
本申请涉及数据仓库工具技术领域,尤其涉及一种ETL任务执行方法、装置、计算机设备及存储介质。
背景技术
ETL(Extract-Transform-Load)是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。ETL任务在执行过程中,如果发生异常会导致停止运行,需要定位错误并修复错误。而修复完成后,ETL任务再次运行是从头开始执行,因此之前已经执行过的数据会被同样的逻辑再次运行,如此会造成很多无用功,导致ETL任务的执行效率低下。
发明内容
本申请提供了一种ETL任务执行方法、装置、计算机设备及存储介质,可以提高ETL任务的执行效率。
第一方面,本申请提供了一种ETL任务执行方法,所述方法包括:
在ETL任务开始执行前,判断数据存储端是否有与所述ETL任务对应的中间数据;
若所述数据存储端有与所述ETL任务对应的中间数据,则获取所述中间数据;
根据所述中间数据确定所述ETL任务的执行进程,以使所述ETL任务根据所述执行进程进行断点重启;
若所述数据存储端没有与所述ETL任务对应的中间数据,则执行所述ETL任务;
在所述ETL任务的执行期间,获取所述ETL任务在执行期间的中间数据,并将所述中间数据存储至所述数据存储端中。
第二方面,本申请提供了一种ETL任务执行装置,所述装置包括:
数据判断模块,用于在ETL任务开始执行前,判断数据存储端是否有与所述ETL任务对应的中间数据;
数据获取模块,用于在所述数据存储端有与所述ETL任务对应的中间数据时,获取所述中间数据;
进程恢复模块,用于根据所述中间数据确定所述ETL任务的执行进程,以使所述ETL任务根据所述执行进程进行断点重启;
任务运行模块,用于若所述数据存储端没有与所述ETL任务对应的中间数据,则执行所述ETL任务;
数据存储模块,用于在所述ETL任务的执行期间,获取所述ETL任务在执行期间的中间数据,并将所述中间数据存储至所述数据存储端中。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的ETL任务执行方法。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的ETL任务执行方法。
本申请公开了一种ETL任务执行方法、装置、计算机设备及存储介质,该方法包括:在ETL任务开始执行前,判断数据存储端是否有与所述ETL任务对应的中间数据;若所述数据存储端有与所述ETL任务对应的中间数据,则获取所述中间数据;根据所述中间数据确定所述ETL任务的执行进程,以使所述ETL任务根据所述执行进程进行断点重启;若所述数据存储端没有与所述ETL任务对应的中间数据,则执行所述ETL任务;在所述ETL任务的执行期间,获取所述ETL任务在执行期间的中间数据,并将所述中间数据存储至所述数据存储端中。本申请实施例用于在ETL任务的执行期间,获取ETL任务的中间数据并进行存储,在该ETL任务出现异常中断而重新启动时,可以根据中间数据恢复到之前的执行进程,中断后重新启动的ETL任务无需从头开始执行,而是可以接续中断前的执行进程,通过本申请实施例可以提高ETL任务的执行效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种ETL任务执行方法的示意流程图;
图2是本申请实施例提供的另一种ETL任务执行方法的示意流程图;
图3是本申请实施例提供的一种ETL任务执行装置的示意性框图;
图4是本申请的实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本申请的实施例提供了一种ETL任务执行方法、装置、计算机设备及存储介质。下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,图1是本申请的实施例提供的一种ETL任务执行方法的示意流程图,如图1所示,该ETL任务执行方法具体包括步骤S101至步骤S105。
S101、在ETL任务开始执行前,判断数据存储端是否有与所述ETL任务对应的中间数据。
其中,ETL任务可以是用户进行触发启动的,可以是用户启动首次启动一个ETL任务,也可以是一个ETL任务运行时出现异常而中断,用户再次启动该ETL任务。可以持续监测ETL任务是否执行,例如,如果监测到用户执行触发启动ETL任务的操作,则可以确定监测到ETL任务即将开始执行。
数据存储端可以是用于存储的区域,可以是在本地的存储区域,也可以是远程的第三方的数据库,例如,远程存储端可以是redis(Remote Dictionary Server,远程字典服务),计算机设备可以通过操作接口和远程存储端连接,以读取其中缓存的中间数据。
中间数据可以是ETL任务执行过程中所生成的数据,可以在ETL任务的执行过程中,获取所述ETL任务在执行期间的中间数据,并将所述中间数据存储至所述数据存储端中。中间数据包括用于体现ETL任务的执行进程的数据,如果该ETL任务是出现异常中断后再次启动,数据存储端中会存储有该ETL任务之前执行时的中间数据;而如果该ETL任务是首次启动,即该ETL任务之前并未启动过,数据存储端便不会有所述ETL任务对应的中间数据。
在ETL任务开始执行前,判断数据存储端是否有与所述ETL任务对应的中间数据,可以判断该ETL任务是否是首次执行,如果不是首次执行可以对该ETL任务进行恢复。
S102、若所述数据存储端有与所述ETL任务对应的中间数据,则获取所述中间数据。
其中,如果数据存储端有与所述ETL任务对应的中间数据,则表示该ETL任务之前执行过,而之前执行的过程中出现异常导致任务中断,ETL任务没有执行完成,因此本次启动执行是再次启动执行以完成该ETL任务。
中间数据包括用于体现ETL任务的执行进程的数据,获取所述中间数据,根据中间数据可以确定ETL任务之前的执行过程中的执行进程,进而可以根据执行进程恢复ETL任务。
S103、根据所述中间数据确定所述ETL任务的执行进程,以使所述ETL任务根据所述执行进程进行断点重启。
其中,中间数据可以是该ETL任务在之前的执行过程中所生成的数据,因此根据中间数据可以确定ETL任务在之前的执行进程,执行进程包括ETL任务已经执行完的信息和未执行的信息,ETL任务根据执行进程进行断点重启,可以是控制ETL任务根据所述执行进程开始执行,即从该ETL任务上一次执行的断点处开始执行,可以使得ETL任务从未执行的信息开始执行,而已执行完成的信息可以不用再次执行。
在一个实施例中,执行进程可以包括ETL任务的执行节点以及在该执行节点的执行状态,ETL任务中包括多个依次连接的执行节点,每个执行节点中可以包括多种执行状态,可以根据所述中间数据确定所述ETL任务上次执行中断前对应的执行节点和执行状态,进而ETL任务无需从头开始执行,可以根据所述执行状态从所述执行节点开始运行。
S104、若所述数据存储端没有与所述ETL任务对应的中间数据,则执行所述ETL任务。
如果数据存储端没有与所述ETL任务对应的中间数据,则表示该ETL任务是首次执行,可以按照预设执行方式执行所述ETL任务,可以是从头开始执行所述ETL任务。
S105、在所述ETL任务的执行期间,获取所述ETL任务在执行期间的中间数据,并将所述中间数据存储至所述数据存储端中。
其中,不论所述ETL任务是根据预设执行方式执行,还是根据中间数据确定的执行进程进行执行,在ETL任务的执行期间,都可以获取该ETL任务在执行期间的中间数据,并将中间数据存储至数据存储端中,以便在该ETL任务发生中断后需要重新启动时,可以根据该中间数据恢复ETL任务,ETL任务可以根据中间数据确定的执行进程来执行任务。
数据存储端中可以存储了多个ETL任务及其对应的中间数据,在所述ETL任务的执行期间,可以将该ETL任务的中间数据存储到数据存储端中该ETL任务对应的位置。以便在该ETL任务重新启动时,可以从ETL任务的对应的位置中获取该ETL任务对应的中间数据。
可选地,可以是在监测到ETL任务的执行期间的中间数据发生变化时,获取所述ETL任务在执行期间的中间数据,并将所述中间数据存储至所述数据存储端中,数据存储端中可以保存最新的ETL任务的中间数据,在恢复执行进程时也可以恢复到最近的执行进程。
可选地,所述中间数据可存储于区块链节点中,以增加安全性。
本申请实施例用于在ETL任务的执行期间,获取ETL任务的中间数据并进行存储,在该ETL任务出现异常中断而重新启动时,可以根据中间数据恢复到之前的执行进程,中断后重新启动的ETL任务无需从头开始执行,而是可以接续中断前的执行进程,通过本申请实施例可以提高ETL任务的执行效率。
在一个实施例中,所述方法还包括如下操作:
在所述ETL任务执行完成后,将所述数据存储端中与所述ETL任务对应的中间数据删除。
其中, ETL任务执行完成表示该ETL任务已经处理完所有需要执行的信息,执行完所有需要执行的执行节点,即该ETL任务不会再出现重新启动的情况,即该ETL任务的中间数据不再有用,可以将数据存储端中和ETL任务对应的中间数据删除。及时清理数据存储端中的存储空间,以便数据存储端可以存放其他ETL任务的中间数据。
在一个实施例中,如图2所示,所述在ETL任务开始执行前,判断数据存储端是否有与所述ETL任务对应的中间数据的操作可以通过如下方式实施:
S201、在ETL任务开始执行前,判断所述ETL任务是否配置有断点续传功能。
S202、若所述ETL任务配置有断点续传功能,则判断数据存储端是否有与所述ETL任务对应的中间数据。
其中,每个ETL任务都有各自的业务逻辑,不同的ETL任务可以根据需求配置相应的功能。在配置ETL任务时,可以给ETL任务配置断点续传功能,如果ETL任务配置了断点续传功能,可以在ETL任务出现异常中断重新启动后,获取中间数据并根据中间数据恢复为中断前的执行进程,接续中断前的处理流程。
在本实施例中,若所述ETL任务配置没有断点续传功能,则执行所述ETL任务。如果该ETL任务是出现异常中断后重新启动,则该ETL任务将会按照预设执行方式执行所述ETL任务,可以是从头开始执行所述ETL任务。
在一个实施例中,所述获取所述ETL任务在执行期间的中间数据的操作可以通过如下方式实施:
获取所述ETL任务包括的数据处理通道中的任务数据,以及所述ETL任务包括的逻辑处理模块的处理状态,其中,所述处理状态包括所述逻辑处理模块对当前的任务数据的处理状态;将所述数据处理通道中的任务数据,以及所述逻辑处理模块的处理状态确定为中间数据。
其中,ETL任务包括多个依次连接逻辑处理模块,两个相邻的逻辑处理模块之间通过数据处理通道连接,ETL任务的执行过程包括:通过逻辑处理模块依次处理多个任务数据,每个任务数据被依次连接的逻辑处理模块依次处理,在所有任务数据都经过了所有逻辑处理模块的处理,则可以确定该ETL任务执行完成。
数据处理通道可以是采用远程缓存和本地缓存相结合的自定义阻塞队列BlockingCacheRowSet,逻辑处理模块可以是根据ETL任务的需求进行配置,逻辑处理模块可以对任务数据进行逻辑处理。
每个逻辑处理模块在处理完一个任务数据后,会将该任务数据新增(put)到该逻辑处理模块和下一个逻辑处理模块之间的数据处理通道中,而下一个逻辑处理模块可以从该数据处理通道中获取(get)该任务数据进行处理。当前的数据处理通道中的任务数据在被下游的逻辑处理模块获取并完成处理后,才会被下游的逻辑处理模块新增到下一个数据处理通道,任务数据被新增到下一个数据处理通道后,上一个数据处理通道中的该任务数据会被删除。
逻辑处理模块的处理状态可以是逻辑处理模块对当前的任务数据的处理状态,例如,处理状态包括处理中、已完成和未开始处理,当前的任务数据可以是该逻辑处理模块从上游的数据处理通道中获取或即将获取的任务数据。
根据所述ETL任务包括的数据处理通道中的任务数据,以及所述ETL任务包括的逻辑处理模块的处理状态,可以确定ETL任务的执行进程。
示例性地,逻辑处理模块A和逻辑处理模块B之间通过数据处理通道连接,逻辑处理模块A对任务数据a处理完成后,将任务数据a新增到数据处理通道中,此时逻辑处理模块准备获取任务数据a,因此逻辑处理模块B的处理状态包括对任务数据a未开始处理,而逻辑处理模块A的处理状态包括对任务数据a已完成。
获取数据处理通道中的任务数据包括任务数据a,获取逻辑处理模块的处理状态包括:逻辑处理模块B对任务数据 a未开始处理,逻辑处理模块A对任务数据a已完成;将上述信息确定为中间数据,根据中间数据可以确定ETL任务的执行进程,即该ETL任务中,任务数据a已经被逻辑处理模块A处理完成,任务数据a还未被逻辑处理模块B处理。
可选地,可以是在检测到任一数据处理通道中的任务数据,和/或任一逻辑处理模块的处理状态发生变化时,获取所述ETL任务包括的数据处理通道中的任务数据,以及所述ETL任务包括的逻辑处理模块的处理状态,并将所述数据处理通道中的任务数据,以及所述逻辑处理模块的处理状态确定为中间数据,将所述中间数据存储至所述数据存储端中,以便可以实时获取到ETL任务的中间数据,并将中间数据保存到数据存储端,在ETL任务发生中断后重新启动,可以将ETL任务恢复到中断时的最新的执行进程。
在一个实施例中,所述根据所述中间数据确定所述ETL任务的执行进程的操作可以通过如下方式实施:
将所述中间数据中的数据处理通道中的任务数据,确定为所述ETL任务的数据处理通道中的任务数据,以及将所述中间数据中的逻辑处理模块的处理状态,确定为所述ETL任务的逻辑处理模块对当前的任务数据的处理状态。
其中,中间数据中保存了ETL任务在上一次执行时,ETL任务中的数据处理通道的任务数据,以及ETL任务中的逻辑处理模块的处理状态,因此可以在ETL任务发生异常中断后,将中间数据中的数据处理通道中的任务数据,确定为所述ETL任务的数据处理通道中的任务数据,以及将所述中间数据中的逻辑处理模块的处理状态,确定为所述ETL任务的逻辑处理模块对当前的任务数据的处理状态;进而ETL任务中所有的数据处理通道中都会恢复对应的任务数据,逻辑处理模块也可以按照该处理状态对当前的任务数据进行处理,即该ETL任务可以恢复到中断前的执行进程。
在一个实施例中,所述将所述中间数据存储至所述数据存储端中的操作可以通过如下方式实施:
确定所述ETL任务包括的数据处理通道的通道标识;针对所述中间数据中包括的每个数据处理通道,将所述数据处理通道的通道标识、所述数据处理通道中的任务数据以及所述数据处理通道对应的逻辑处理模块的处理状态对应存储至所述数据存储端中。
其中,ETL任务一般包括多个逻辑处理模块以及多个数据处理通道,可以将ETL任务中的多个数据处理通道分别设置对应的唯一的通道标识,通道标识可以表示每个数据处理通道的唯一性。
因此,在将ETL任务包括的数据处理通道的任务数据作为中间数据保存到数据存储端时,可以分别将每个数据处理通道的通道标识,该数据处理通道中的任务数据以及该数据处理通道对应的逻辑处理模块的处理状态对应存储至所述数据存储端中,以便在从数据存储端中获取中间数据并恢复执行进程时,可以根据ETL任务中的数据处理通道的通道标识,在数据存储端中获取跟每个通道标识对应的中间数据,进而可以根据每个通道标识对应的中间数据,恢复每个数据处理通道中的任务数据,以及恢复每个数据处理通道对应的逻辑处理模块的处理状态。
其中,所述数据处理通道对应的逻辑处理模块,可以是和所述数据处理通道连接的且位于下游的逻辑处理模块,即对应的逻辑处理模块需要从所述数据处理通道中获取任务数据进行处理。
在一个实施例中,所述根据所述中间数据确定所述ETL任务的执行进程的操作可以通过如下方式实施:
针对所述ETL任务中的每个数据处理通道,根据所述数据处理通道的通道标识,在所述中间数据中确定与所述通道标识对应的数据处理通道中的任务数据,以及确定与所述通道标识对应的逻辑处理模块的处理状态;
将所述与所述通道标识对应的数据处理通道中的任务数据,确定为所述ETL任务的所述数据处理通道中的任务数据;以及
将所述与所述通道标识对应的逻辑处理模块的处理状态,确定为所述ETL任务中的所述数据处理通道对应的逻辑处理模块对当前的任务数据的处理状态。
其中,在将中间数据存储到数据存储端中时,是针对每个数据处理通道,将所述数据处理通道的通道标识、所述数据处理通道中的任务数据以及所述数据处理通道对应的逻辑处理模块的处理状态对应存储至所述数据存储端中,因此在根据所述中间数据确定所述ETL任务的执行进程时,也可以根据ETL任务中的每个数据处理通道的通道标识,对应确定任务数据以及所述数据处理通道对应的逻辑处理模块的处理状态。
在ETL任务发生中断并重新启动后,可以根据通道标识确定每个数据处理通道对应的任务数据,以及对应的逻辑处理模块的处理状态,可以恢复ETL任务中的每个数据处理通道对应的执行情况。
请参阅图3,图3是本申请的实施例提供的一种ETL任务执行装置的示意性框图,该ETL任务执行装置可以配置于服务器中,用于执行上述任一项所述的ETL任务执行方法。如图3所示,该ETL任务执行装置10包括:
数据判断模块11,用于在ETL任务开始执行前,判断数据存储端是否有与所述ETL任务对应的中间数据;
数据获取模块12,用于在所述数据存储端有与所述ETL任务对应的中间数据时,获取所述中间数据;
进程恢复模块13,用于根据所述中间数据确定所述ETL任务的执行进程,以使所述ETL任务根据所述执行进程进行断点重启;
任务运行模块14,用于若所述数据存储端没有与所述ETL任务对应的中间数据,则执行所述ETL任务;
数据存储模块15,用于在所述ETL任务的执行期间,获取所述ETL任务在执行期间的中间数据,并将所述中间数据存储至所述数据存储端中。
在一个实施例中,所述ETL任务执行装置还包括:
在一个实施例中,所述数据存储模块在执行所述获取所述ETL任务在执行期间的中间数据时,具体用于:
获取所述ETL任务包括的数据处理通道中的任务数据,以及所述ETL任务包括的逻辑处理模块的处理状态,其中,所述处理状态包括所述逻辑处理模块对当前的任务数据的处理状态;
将所述数据处理通道中的任务数据,以及所述逻辑处理模块的处理状态确定为中间数据。
在一个实施例中,所述进程恢复模块在执行所述根据所述中间数据确定所述ETL任务的执行进程时,具体用于:
将所述中间数据中的数据处理通道中的任务数据,确定为所述ETL任务的数据处理通道中的任务数据,以及将所述中间数据中的逻辑处理模块的处理状态,确定为所述ETL任务的逻辑处理模块对当前的任务数据的处理状态。
在一个实施例中,所述数据存储模块在执行所述将所述中间数据存储至所述数据存储端中时,具体用于:
确定所述ETL任务包括的数据处理通道的通道标识;
针对所述中间数据中包括的每个数据处理通道,将所述数据处理通道的通道标识、所述数据处理通道中的任务数据以及所述数据处理通道对应的逻辑处理模块的处理状态对应存储至所述数据存储端中。
在一个实施例中,所述进程恢复模块在执行所述根据所述中间数据确定所述ETL任务的执行进程时,具体用于:
针对所述ETL任务中的每个数据处理通道,根据所述数据处理通道的通道标识,在所述中间数据中确定与所述通道标识对应的数据处理通道中的任务数据,以及确定与所述通道标识对应的逻辑处理模块的处理状态;
将所述与所述通道标识对应的数据处理通道中的任务数据,确定为所述ETL任务的所述数据处理通道中的任务数据;以及
将所述与所述通道标识对应的逻辑处理模块的处理状态,确定为所述ETL任务中的所述数据处理通道对应的逻辑处理模块对当前的任务数据的处理状态。
在一个实施例中,所述数据判断模块具体用于:
在ETL任务开始执行前,判断所述ETL任务是否配置有断点续传功能;
若所述ETL任务配置有断点续传功能, 则判断数据存储端是否有与所述ETL任务对应的中间数据。
在一个实施例中,所述ETL任务执行装置还包括:
删除模块,用于在所述ETL任务执行完成后,将所述数据存储端中与所述ETL任务对应的中间数据删除。
请参阅图4,图4是本申请的实施例提供的一种计算机设备的结构示意性框图。
参阅图4,该计算机设备包括通过系统总线连接的处理器和存储器,其中,存储器可以包括非易失性存储介质和内存储器。
非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种ETL任务执行方法。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种ETL任务执行方法。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器可以是中央处理单元 (Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路 (Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
在ETL任务开始执行前,判断数据存储端是否有与所述ETL任务对应的中间数据;
若所述数据存储端有与所述ETL任务对应的中间数据,则获取所述中间数据;
根据所述中间数据确定所述ETL任务的执行进程,以使所述ETL任务根据所述执行进程进行断点重启;
若所述数据存储端没有与所述ETL任务对应的中间数据,则执行所述ETL任务;
在所述ETL任务的执行期间,获取所述ETL任务在执行期间的中间数据,并将所述中间数据存储至所述数据存储端中。
在一个实施例中,所述处理器在实现所述获取所述ETL任务在执行期间的中间数据时,用于实现:
获取所述ETL任务包括的数据处理通道中的任务数据,以及所述ETL任务包括的逻辑处理模块的处理状态,其中,所述处理状态包括所述逻辑处理模块对当前的任务数据的处理状态;
将所述数据处理通道中的任务数据,以及所述逻辑处理模块的处理状态确定为中间数据。
在一个实施例中,所述处理器在实现所述根据所述中间数据确定所述ETL任务的执行进程时,用于实现:
将所述中间数据中的数据处理通道中的任务数据,确定为所述ETL任务的数据处理通道中的任务数据,以及将所述中间数据中的逻辑处理模块的处理状态,确定为所述ETL任务的逻辑处理模块对当前的任务数据的处理状态。
在一个实施例中,所述处理器在实现所述将所述中间数据存储至所述数据存储端中时,用于实现:
确定所述ETL任务包括的数据处理通道的通道标识;
针对所述中间数据中包括的每个数据处理通道,将所述数据处理通道的通道标识、所述数据处理通道中的任务数据以及所述数据处理通道对应的逻辑处理模块的处理状态对应存储至所述数据存储端中。
在一个实施例中,所述处理器在实现所述根据所述中间数据确定所述ETL任务的执行进程时,用于实现:
针对所述ETL任务中的每个数据处理通道,根据所述数据处理通道的通道标识,在所述中间数据中确定与所述通道标识对应的数据处理通道中的任务数据,以及确定与所述通道标识对应的逻辑处理模块的处理状态;
将所述与所述通道标识对应的数据处理通道中的任务数据,确定为所述ETL任务的所述数据处理通道中的任务数据;以及
将所述与所述通道标识对应的逻辑处理模块的处理状态,确定为所述ETL任务中的所述数据处理通道对应的逻辑处理模块对当前的任务数据的处理状态。
在一个实施例中,所述处理器在实现所述在ETL任务开始执行前,判断数据存储端是否有与所述ETL任务对应的中间数据时,用于实现:
在ETL任务开始执行前,判断所述ETL任务是否配置有断点续传功能;
若所述ETL任务配置有断点续传功能, 则判断数据存储端是否有与所述ETL任务对应的中间数据。
在一个实施例中,所述处理器还用于实现:
在所述ETL任务执行完成后,将所述数据存储端中与所述ETL任务对应的中间数据删除。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项ETL任务执行方法。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种ETL任务执行方法,其特征在于,包括:
在ETL任务开始执行前,判断数据存储端是否有与所述ETL任务对应的中间数据;
若所述数据存储端有与所述ETL任务对应的中间数据,则获取所述ETL任务包括的数据处理通道中的任务数据,以及所述ETL任务包括的逻辑处理模块的处理状态,其中,所述ETL任务包括多个依次连接的逻辑处理模块,两个相邻的逻辑处理模块之间通过所述数据处理通道连接,所述处理状态包括多个所述逻辑处理模块对当前的任务数据的处理状态;
将所述数据处理通道中的任务数据,以及所述逻辑处理模块的处理状态确定为中间数据;
将所述中间数据中的数据处理通道中的任务数据,确定为所述ETL任务的数据处理通道中的任务数据,以及将所述中间数据中的逻辑处理模块的处理状态,确定为所述ETL任务的多个逻辑处理模块对当前的任务数据的处理状态,以使所述ETL任务根据所述ETL任务的数据处理通道中的任务数据和多个逻辑处理模块对当前的任务数据的处理状态进行断点重启;
若所述数据存储端没有与所述ETL任务对应的中间数据,则执行所述ETL任务;
在所述ETL任务的执行期间,获取所述ETL任务在执行期间的中间数据,并将所述中间数据存储至所述数据存储端中。
2.根据权利要求1所述的ETL任务执行方法,其特征在于,所述将所述中间数据存储至所述数据存储端中,包括:
确定所述ETL任务包括的数据处理通道的通道标识;
针对所述中间数据中包括的每个数据处理通道,将所述数据处理通道的通道标识、所述数据处理通道中的任务数据以及所述数据处理通道对应的逻辑处理模块的处理状态对应存储至所述数据存储端中。
3.根据权利要求2所述的ETL任务执行方法,其特征在于,所述将所述中间数据中的数据处理通道中的任务数据,确定为所述ETL任务的数据处理通道中的任务数据,以及将所述中间数据中的逻辑处理模块的处理状态,确定为所述ETL任务的多个逻辑处理模块对当前的任务数据的处理状态,包括:
针对所述ETL任务中的每个数据处理通道,根据所述数据处理通道的通道标识,在所述中间数据中确定与所述通道标识对应的数据处理通道中的任务数据,以及确定与所述通道标识对应的逻辑处理模块的处理状态;
将所述与所述通道标识对应的数据处理通道中的任务数据,确定为所述ETL任务的所述数据处理通道中的任务数据;以及
将所述与所述通道标识对应的逻辑处理模块的处理状态,确定为所述ETL任务中的所述数据处理通道对应的逻辑处理模块对当前的任务数据的处理状态。
4.根据权利要求1至3任一项所述的ETL任务执行方法,其特征在于,所述在ETL任务开始执行前,判断数据存储端是否有与所述ETL任务对应的中间数据,包括:
在ETL任务开始执行前,判断所述ETL任务是否配置有断点续传功能;
若所述ETL任务配置有断点续传功能,则判断数据存储端是否有与所述ETL任务对应的中间数据。
5.根据权利要求1至3任一项所述的ETL任务执行方法,其特征在于,所述方法还包括:
在所述ETL任务执行完成后,将所述数据存储端中与所述ETL任务对应的中间数据删除。
6.一种ETL任务执行装置,其特征在于,包括:
数据判断模块,用于在ETL任务开始执行前,判断数据存储端是否有与所述ETL任务对应的中间数据;
数据获取模块,用于在所述数据存储端有与所述ETL任务对应的中间数据时,获取所述ETL任务包括的数据处理通道中的任务数据,以及所述ETL任务包括的逻辑处理模块的处理状态,其中,所述ETL任务包括多个依次连接的逻辑处理模块,两个相邻的逻辑处理模块之间通过所述数据处理通道连接,所述处理状态包括多个所述逻辑处理模块对当前的任务数据的处理状态;将所述数据处理通道中的任务数据,以及所述逻辑处理模块的处理状态确定为中间数据;
进程恢复模块,用于将所述中间数据中的数据处理通道中的任务数据,确定为所述ETL任务的数据处理通道中的任务数据,以及将所述中间数据中的逻辑处理模块的处理状态,确定为所述ETL任务的多个逻辑处理模块对当前的任务数据的处理状态,以使所述ETL任务根据所述ETL任务的数据处理通道中的任务数据和多个逻辑处理模块对当前的任务数据的处理状态进行断点重启;
任务运行模块,用于若所述数据存储端没有与所述ETL任务对应的中间数据,则执行所述ETL任务;
数据存储模块,用于在所述ETL任务的执行期间,获取所述ETL任务在执行期间的中间数据,并将所述中间数据存储至所述数据存储端中。
7.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如权利要求1至5中任一项所述的ETL任务执行方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如权利要求1至5中任一项所述的ETL任务执行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011122388.4A CN112015799B (zh) | 2020-10-20 | 2020-10-20 | Etl任务执行方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011122388.4A CN112015799B (zh) | 2020-10-20 | 2020-10-20 | Etl任务执行方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112015799A CN112015799A (zh) | 2020-12-01 |
CN112015799B true CN112015799B (zh) | 2021-04-06 |
Family
ID=73527378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011122388.4A Active CN112015799B (zh) | 2020-10-20 | 2020-10-20 | Etl任务执行方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015799B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388844B (zh) * | 2008-11-07 | 2012-03-14 | 东软集团股份有限公司 | 一种数据流程的处理方法和系统 |
CN103955510A (zh) * | 2014-04-30 | 2014-07-30 | 广西电网公司电力科学研究院 | 基于etl云平台上传的海量电力营销数据整合方法 |
US10108683B2 (en) * | 2015-04-24 | 2018-10-23 | International Business Machines Corporation | Distributed balanced optimization for an extract, transform, and load (ETL) job |
CN106250444A (zh) * | 2016-07-27 | 2016-12-21 | 北京集奥聚合科技有限公司 | 一种异构数据源的实时入库系统及方法 |
-
2020
- 2020-10-20 CN CN202011122388.4A patent/CN112015799B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112015799A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7590668B2 (en) | Pausable backups of file system items | |
Baier et al. | Energy-utility quantiles | |
CN107590016B (zh) | 掉电重启识别方法及装置 | |
CN106294206B (zh) | 一种缓存数据处理方法以及装置 | |
CN105573859A (zh) | 一种数据库的数据恢复方法和设备 | |
CN108388507A (zh) | 批量脚本测试方法及装置 | |
CN112035472A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN103716384A (zh) | 跨数据中心实现云存储数据同步的方法和装置 | |
CN110597695A (zh) | 报警方法、装置、计算机设备和可读存储介质 | |
CN111796954A (zh) | 基于jvm的看门狗的控制方法、装置、设备及存储介质 | |
CN113760476A (zh) | 任务依赖处理方法及相关装置 | |
CN109241042B (zh) | 数据处理方法、装置以及电子设备 | |
CN110704236B (zh) | 芯片flash数据的在线校验方法及计算机存储介质 | |
CN107644041B (zh) | 保单结算处理方法和装置 | |
CN112015799B (zh) | Etl任务执行方法、装置、计算机设备及存储介质 | |
CN114564281A (zh) | 容器调度方法、装置、设备及存储介质 | |
CN111523921B (zh) | 漏斗分析方法、分析设备、电子设备及可读存储介质 | |
US20220129446A1 (en) | Distributed Ledger Management Method, Distributed Ledger System, And Node | |
US11055133B2 (en) | Node-local-unscheduler for scheduling remediation | |
CN113691631B (zh) | 一种数据清理的方法、装置及电子设备 | |
CN111090491B (zh) | 虚拟机任务状态的恢复方法、装置及电子设备 | |
CN112306527A (zh) | 服务器升级方法、装置、计算机设备和存储介质 | |
CN114385188A (zh) | 一种代码工作量统计方法、装置和电子设备 | |
CN109240906B (zh) | 数据库配置信息适配方法、装置、计算机设备和存储介质 | |
CN113010295A (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: 20210308 Address after: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.) Applicant after: Shenzhen saiante Technology Service Co.,Ltd. Address before: 1-34 / F, Qianhai free trade building, 3048 Xinghai Avenue, Mawan, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong 518000 Applicant before: Ping An International Smart City Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |