CN117251260A - 一种数据处理方法及系统 - Google Patents
一种数据处理方法及系统 Download PDFInfo
- Publication number
- CN117251260A CN117251260A CN202211200729.4A CN202211200729A CN117251260A CN 117251260 A CN117251260 A CN 117251260A CN 202211200729 A CN202211200729 A CN 202211200729A CN 117251260 A CN117251260 A CN 117251260A
- Authority
- CN
- China
- Prior art keywords
- workflow
- data
- output data
- current operator
- target
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 132
- 238000012545 processing Methods 0.000 claims abstract description 23
- 238000004140 cleaning Methods 0.000 claims description 28
- 238000012795 verification Methods 0.000 claims description 12
- 230000002068 genetic effect Effects 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 description 12
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000012549 training Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5033—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
Abstract
本发明实施例提供一种数据处理方法及系统。所述方法包括:响应于工作流的运行请求,获取所述工作流的数据亲缘关系;基于所述工作流的数据亲缘关系运行所述工作流;获取所述工作流中当前算子的输出数据;基于所述数据亲缘关系,若确定所述输出数据为所述工作流的最终结果,输出所述输出数据;若确定所述输出数据为所述工作流的中间结果,将所述输出数据存储至内存中。本发明实施例的工作流在内存中运行时,工作流的数据不出内存,从而减少了数据读写次数,降低了I/O资源,提高了数据处理速度。
Description
技术领域
本发明涉及大数据分析,尤其涉及一种数据处理方法及系统。
背景技术
随着人工智能和大数据的快速发展,使用机器学习技术进行模型训练,并使用训练好的业务模型实现大数据业务智能化处理也逐渐成为大数据行业的通用手段。模型训练通常需要经过数据处理->模型建立->模型验证这三大环节,而每个环节都会包含一个或多个算子,每个算子相对独立,并会对输入数据进行加工处理。当前算子的输入数据可能是上一个算子的输出数据,当前算子的输出数据可能是下一个算子的输入数据,通过算子的输入输出数据将多个算子串联形成一个工作流调度。现有模式的工作流调度中,每个算子在运行之前需要通过I/O接口读取磁盘加载输入数据,并且在运行结束将生成的数据通过I/O接口写入到磁盘文件系统中,且模型训练所用到的都是大数据集,因此导致现有的工作流调度需要占用大量I/O接口,且读写磁盘时长,数据处理速度慢。
发明内容
本发明实施例提供一种特征仓库管理方法及系统,解决现有的工作流调度需要占用大量I/O接口,且读写磁盘时长,数据处理速度慢。
为解决上述技术问题,本发明提供一种数据处理方法,所述方法包括:
响应于工作流的运行请求,获取所述工作流的数据亲缘关系;
基于所述工作流的数据亲缘关系运行所述工作流;
获取所述工作流中当前算子的输出数据;
基于所述数据亲缘关系,若确定所述输出数据为所述工作流的最终结果,输出所述输出数据;若确定所述输出数据为所述工作流的中间结果,将所述输出数据存储至内存中。
可选的,上述方法还包括:根据所述工作流的数据亲缘关系,统计调用所述当前算子的输出数据的目标算子的个数N;N为大于1的整数;
在所述内存中创建所述当前算子的输出数据的N个数据副本;
所述基于所述工作流的数据亲缘关系运行所述工作流包括:基于所述工作流的数据亲缘关系,将所述数据副本发送至所述目标算子,运行所述工作流。
可选的,上述方法中,所述获取所述工作流的数据亲缘关系步骤包括:
基于可达性分析算法确定所述工作流中个各算子之间的数据亲缘关系。
可选的,上述方法还包括:
若调用所述当前算子的输出数据的目标算子的个数为1,则在所述目标算子执行完后清理所述输出数据;
若调用所述当前算子的输出数据的目标算子的个数为N,则在N个所述目标算子均执行完成后,清理所述输出数据。
可选的,所述在N个所述目标算子均执行完成后,清理所述输出数据的步骤包括:
在所述目标算子执行完后,清理所述目标算子引用的数据副本。
可选的,上述方法中,所述获取所述工作流中当前算子的输出数据的步骤之前,所述方法还包括:
获取内存中已启动且处于空闲态的目标进程;
所述目标进程对所述当前算子所依赖的计算框架和运行环境进行验证;
若验证通过,所述目标进程进入运行状态执行所述当前算子。
可选的,上述方法还包括:若容器支持多种环境,所述获取内存中已启动且处于空闲态的目标进程的步骤之前,所述方法还包括:
确定所述工作流中所述当前算子的运行环境;
基于容器预先记录的进程标识和支持的环境以及所述当前算子的运行环境,确定所述当前算子对应的目标进程;
启动所述目标进程。
可选的,上述方法中,若所述工作流包括并行算子,所述目标进程进入运行状态执行所述当前算子的步骤包括:
基于工作流中当前算子的并行度,在所述目标进程中启动多个线程;
使用所述多个线程分别执行所述并行算子。
可选的,上述方法中,所述基于容器预先记录的进程标识和支持的环境以及所述当前算子的环境,确定所述当前算子对应的目标进程的步骤之前,所述方法还包括:
确定所述工作流中所述当前算子所依赖的计算框架;
基于所述当前算子所依赖的计算框架和运行环境确定执行所述目标进程对应的容器。
可选的,上述方法中,所述工作流运行过程中各算子使用的数据进行压缩后使用。
本发明实施例还提供了一种数据处理系统,所述系统包括:
第一获取模块,用于响应于工作流的运行请求,获取所述工作流的数据亲缘关系;
运行模块,用于基于所述工作流的数据亲缘关系运行所述工作流;
第二获取模块,用于获取所述工作流中当前算子的输出数据;
输出/存储模块,用于基于所述数据亲缘关系,若确定所述输出数据为所述工作流的最终结果,输出所述输出数据;若确定所述输出数据为所述工作流的中间结果,将所述输出数据存储至内存中。
可选的,所述系统还包括:
统计模块,用于根据所述工作流的数据亲缘关系,统计调用所述当前算子的输出数据的目标算子的个数N;N为大于1的整数;
创建模块,用于在所述内存中创建所述当前算子的输出数据的N个数据副本;
所述运行模块具体用于:基于所述工作流的数据亲缘关系,将所述数据副本发送至所述目标算子,运行所述工作流。
可选的,上述系统中,所述第一获取模块具体用于:
基于可达性分析算法确定所述待运行的工作流中个各算子之间的数据亲缘关系。
可选的,所述系统还包括:
第一清理模块,用于若调用所述当前算子的输出数据的目标算子的个数为1,则在所述目标算子执行完后清理所述输出数据;
第二清理模块,用于若调用所述当前算子的输出数据的目标算子的个数为N,则在N个所述目标算子均执行完成后,清理所述输出数据。
可选的,所述第二清理模块还用于:在所述目标算子执行完后,清理所述目标算子引用的数据副本。
可选的,所述系统还包括:
第二获取模块,用于获取内存中已启动且处于空闲态的目标进程;
验证模块,用于所述目标进程对所述当前算子所依赖的计算框架和运行环境进行验证;
执行模块,用于若验证通过,所述目标进程进入运行状态执行所述当前算子。
可选的,上述系统中,若容器支持多种环境,所述系统还包括:
第一确定模块,用于确定所述工作流中所述当前算子的运行环境;
第二确定模块,用于基于容器预先记录的进程标识和支持的环境以及所述当前算子的运行环境,确定所述当前算子对应的目标进程;
启动模块,用于启动所述目标进程。。
可选的,上述系统中,若所述工作流包括并行算子,所述启动模块包括:
启动子模块,用于基于当前算子的并行度,在所述目标进程中启动多个线程;
执行子模块,用于使用所述多个线程分别执行所述并行算子。
可选的,所述系统还包括:
第三确定模块,用于确定所述工作流中所述当前算子所依赖的计算框架;
第四确定模块,用于基于所述当前算子所依赖的计算框架和运行环境确定执行所述目标进程对应的容器。
可选的,上述系统中,所述工作流运行过程中各算子使用的数据进行压缩后使用。
本发明实施例还提供了一种数据处理系统,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述的所述的数据处理方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上述的所述的数据处理方法的步骤。
本发明实施例工作流在内存中运行时,工作流的数据不出内存,从而减少了数据读写次数,降低了I/O资源,提高了数据处理速度。
进一步的,本发明实施例中单次读取数据可供多个算子重复使用,可以进一步减少数据读写次数;且支持容器内进程的复用,工作流的所有算子可在同一个容器内的同一个进程反复执行,从而降低进程启停和切换的成本。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获取其他的附图。
图1是本发明实施例提供的一种数据处理方法的流程图;
图2是本发明实施例提供的一种工作流的示意图;
图3是本发明实施例提供的一种数据处理系统的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
参见图1,图1是本发明实施例提供的数据处理方法的流程图,所述特征数据处理方法应用于数据处理系统,如图1所示,数据处理方法包括以下步骤:
步骤101,响应于工作流的运行请求,获取所述工作流的数据亲缘关系。
具体的,在需要执行工作流运行时,可以由用户在数据处理系统的页面输入工作流运行请求;或者是数据处理系统在用户完成工作流定义之后,自动启动运行工作流。响应于工作流运行请求,将待运行的工作流的原始数据集加载至内存中,获取所述工作流的数据亲缘关系。
可选的,所述获取所述工作流的数据亲缘关系的步骤包括:
基于可达性分析算法确定所述待运行的工作流中个各算子之间的数据亲缘关系。
具体的,本发明实施例基于可达性分析算法根据工作流中的算子输入输出数据流确定各算子之间的数据亲缘关系,例如当前算子的输出数据被哪些其他算子使用,以及输出数据被其他算子使用的次数等。
其中,可达性分析可以为根搜索算法,从待运行的工作流的根算子出发,按照从上至下的方式搜索被根算子所连接的目标算子是否可达,如果目标算子的输出没有任何引用链相连,则为不可达,意味着该目标算子的输出数据已经无效,无需压缩备份便可以立即回收。其中,在可达性分析算法中只有能够被根算子直接或间接连接的算子输出才是存活对象。
步骤102,基于所述工作流的数据亲缘关系运行所述工作流。
其中,根据所述工作流各算子之间的数据亲缘关系确定工作流中各算子之间的数据流向,进而基于工作流中各算子之间的数据流向运行所述工作流。
可选的,工作流中一个算子的输出数据可能被该算子的下游算子使用,当同一套数据被多个算子使用时,为避免各算子对该套数据的操作影响其他算子使用,同时为降低输出数据对内存空间的占用,所述方法包括:根据所述工作流的数据亲缘关系,统计调用所述当前算子的输出数据的目标算子的个数N;N为大于1的整数;
在所述内存中创建所述当前算子的输出数据的N个数据副本;
所述基于所述工作流的数据亲缘关系运行所述工作流的步骤102包括:基于所述工作流的数据亲缘关系,将所述数据副本发送至所述目标算子,运行所述工作流。
具体的,由于待运行的工作流中调用当前算子的输出数据至少存在一个,因此基于所述待运行的工作流的数据亲缘关系确定调用当前算子的输出数据可以是一个,也可以是多个。在确定调用当前算子的输出数据的目标算子后,将所述当前算子的输出数据发送至需要调用当前算子的输出数据目标算子,目标算子基于接收到的数据运行工作流。
进一步的,在当前算子为工作流的第一个算子时,此时根据可达性分析算法统计出调用工作流的原始数据集的所述目标算子的个数N;在内存中为该原始数据集创建N个数据副本,将该N个数据副本分别发送给至N个所述目标算子。在当前算子是工作流的中间算子时,此时根据可达性分析算法统计出调用工作流中当前算子的输出数据的所述目标算子的个数N;在内存中为当前算子的输出数据创建N个数据副本,将该N个数据副本分别发送给至N个所述目标算子。所述目标算子基于接收到的数据运行工作流。其中,本发明实施例在所述内存中创建所述当前算子的输出数据的N个数据副本,可以当前算子的输出数据,以便工作流运行过程出现问题时可以基于当前算子的输出数据重新执行出现问题的算子。
本发明实施例中各个目标算子独享数据副本,能够隔离多个目标算子的操作,防止一个目标算子将另一个目标算子所需的数据污染,使各个算子之间互不干扰,数据不出内存,降低磁盘读写频次提高运行速度。
可选的,为降低内存中数据对内存空间的占用,所述方法还包括:
若调用所述当前算子的输出数据的目标算子的个数为1,则在所述目标算子执行完后清理所述输出数据;
若调用所述当前算子的输出数据的目标算子的个数为N,则在N个所述目标算子均执行完成后,清理所述输出数据。
其中,在N个所述目标算子均执行完成后,清理所述输出数据的过程中,还包括单个数据副本的回收,其中,单个数据副本的回收过程包括:在所述目标算子执行完后,清理所述目标算子引用的数据副本。。
具体的,在可达性分析过程中,记录每个算子输出的数据集被其他算子引用的数量,每有一个算子引用该数据集则将该数据集的计数加一。如图2所示,在工作流执行前通过可达性分析得到各算子之间的数据亲缘关系和各算子引用计数的数据。在工作流执行过程中,基于所述工作流的数据亲缘关系确定调用工作流中所述当前算子的输出数据的目标算子个数,若调用所述当前算子的输出数据的目标算子的个数为1,则在所述目标算子执行完后清理当前算子的输出数据。即该当前算子的输出数据不再进行压缩(或选择低压缩比)和拷贝处理,用完即清理,即时释放内存资源。若调用所述当前算子的输出数据的目标算子的个数为N,则在所述创建的N个副本均回收后,清理所述输出数据。
示例性的,在图2中,工作流中的第一算子有三个输出但是右边两个输出的数据集没有连接引用,所以可以将这两个数据集视为不可达,引用计数为0,左边第一个输出被第三算子所引用,所以此数据集视为可达,不会被回收,且其引用计数为1。在工作流执行过程中,如果执行完第三算子后,会将算子第一算子左1数据集的引用计数减一,此时第一算子左1的数据集引用计数为0,则该数据集即将被回收。
本发明实施例基于工作流的数据亲缘关系以及所述工作流当前的运行状态,对所述工作流运行过程中的算子的输出数据进行回收管理,可以有效降低内存空间的占用量,实现更高效地利用内存空间。
在运行工作流的算子的过程中,现有技术是每执行一个算子都需要启动一个新的进程运行该算子的可执行代码,在该算子运行完成之后结束该进程。而本发明实施例中则是在运行工作流的算子的过程中可以是实现进行复用,在容器内运行工作流时,首先启动一个常驻进程(即目标进程)用于监听和接收算子执行命令,常驻进程处于待机状态,当监听到算子请求时,使用常驻进程执行接收到的算子;当常驻进程执行完该算子后,常驻进程继续进入待机状态。
可选的,所述获取所述工作流中当前算子的输出数据的步骤之前,所述方法还包括:
获取内存中已启动且处于空闲态的目标进程;
所述目标进程对所述当前算子所依赖的计算框架和运行环境进行验证;
若验证通过,所述目标进程进入运行状态执行所述当前算子。
具体的,在运行工作流时,获取内存中已启动且处于空闲态的目标进程,所述目标进程对当前需要执行的算子所依赖的计算框架和运行环境进行验证;若验证通过,所述目标进程进入运行状态执行该算子。其中,执行该算子产生的数据临时存放在该进程对应的内存中。
需要说明的是,若内存所在的容器中支持一种环境,只需要容器验证通过即可复用第一进程。若内存所在的容器支持多种环境,复用进程时还需要验证下进程支持的环境是否与执行的算子所需环境匹配。具体的,若容器支持多种环境,所述获取内存中已启动且处于空闲态的目标进程的步骤之前,所述方法包括:确定所述工作流中所述当前算子的运行环境;基于容器预先记录的进程标识和支持的环境以及所述当前算子的运行环境,确定所述当前算子对应的目标进程;启动所述目标进程。目标进程启动后会记录启动该进程的标识以及支持的环境,在后续其他工作流过程中可以基于进程标识和支持的环境快速匹配对应的进程。
可选的,若所述工作流包括并行算子,所述目标进程进入运行状态执行所述当前算子包括:
基于工作流中当前算子的并行度,在所述目标进程中启动多个线程;
使用所述多个线程分别执行所述并行算子。
具体的,若运行的工作流存在并行算子,可以基于当前算子的并行度,在所述目标进程中启动多个线程;使用所述多个线程分别执行所述并行算子,从而实现多个算子的并行执行。
可选的,所述基于容器预先记录的进程标识和支持的环境以及所述当前算子的环境,确定所述当前算子对应的目标进程的步骤之前,所述方法还包括:
确定所述工作流中所述当前算子所依赖的计算框架;
基于所述当前算子所依赖的计算框架和运行环境确定执行所述目标进程对应的容器。
具体的,在运行工作流时,首先分析工作流中各个算子依赖的计算框架和算子运行所需要的基础环境,计算框架包括TensorFlow、Dask、python等。基于所述各个算子所依赖的计算框架和运行环境确定符合条件和规格要求的容器,如果找到符合条件的容器,则向该容器发送算子执行代码;否则通过k8s-restapi启动一个新的容器,当容器接收到算子代码之后会将代码发送给执行进程,该进程执行结束之后,将结果返回给工作流中的调用算子,且该进程会在最小资源持有的状态下保持运行,等待执行下一次工作流算子的调用。
本发明实施例通过进程复用,避免了每次算子执行前启动进程及执行后销毁进程所消耗的时间,从而降低进程启停和切换的成本。
可选的,在所述工作流运行过程中各算子使用的数据进行压缩后使用。
具体的,在所述工作流运行过程中,可将工作流的算子使用的数据转换自动为parquet列存储文件格式,在对数据进行压缩时,可以通过提示接口由用户选择压缩格式,提供选择的压缩格式包括gzip,brotli及snappy。当然也可以预先设置默认压缩格式,在需要对数据进行压缩时,直接根据预先设置的默认压缩格式进行压缩,压缩后的数据存储至内存中,从而大大减少了内存空间的占用。
步骤103,获取所述工作流中当前算子的输出数据。
具体的,在运行工作流时,可以获取工作流中当前算子的输出数据,根据当前算子的输出数据确定工作流是否结束。
步骤104,基于所述数据亲缘关系,确定所述输出数据为所述工作流的最终结果时,输出所述输出数据;确定所述输出数据为所述工作流的中间结果时,将所述输出数据存储至内存中。
具体的,基于工作流的数据亲缘关系,确定当前算子的输出数据是否为所述工作流的最终结果。在确定当前算子的输出数据为所述工作流的最终结果时,则输出所述输出数据至磁盘;在确定当前算子的输出数据为所述工作流的中间结果时,将所述输出数据存储至内存中。
本发明实施例中工作流在内存中运行时,工作流的数据不出内存,从而减少了数据读写次数,降低了I/O资源,提高了数据处理速度。
基于以上实施例提供的数据处理方法,本发明实施例还提供了实施上述数据处理系统,请参照图3本发明实施例提供的数据处理系统300包括:
可选的,第一获取模块301,用于响应于工作流的运行请求,获取所述工作流的数据亲缘关系;
运行模块302,用于基于所述工作流的数据亲缘关系运行所述工作流;
第二获取模块303,用于获取所述工作流中当前算子的输出数据;
输出/存储模块304,用于基于所述数据亲缘关系,若确定所述输出数据为所述工作流的最终结果,输出所述输出数据;若确定所述输出数据为所述工作流的中间结果,将所述输出数据存储至内存中。
可选的,所述系统还包括:
统计模块,用于根据所述工作流的数据亲缘关系,统计调用所述当前算子的输出数据的目标算子的个数N;N为大于1的整数;
创建模块,用于在所述内存中创建所述当前算子的输出数据的N个数据副本;
所述运行模块具体用于:基于所述工作流的数据亲缘关系,将所述数据副本发送至所述目标算子,运行所述工作流。
可选的,所述第一获取模块301具体用于:
基于可达性分析算法确定所述待运行的工作流中个各算子之间的数据亲缘关系。
可选的,所述系统还包括:
第一清理模块,用于若调用所述当前算子的输出数据的目标算子的个数为1,则在所述目标算子执行完后清理所述输出数据;
第二清理模块,用于若调用所述当前算子的输出数据的目标算子的个数为N,则在N个所述目标算子均执行完成后,清理所述输出数据。
可选的,所述第二清理模块还用于:在所述目标算子执行完后,清理所述目标算子引用的数据副本。
可选的,所述系统还包括:
第二获取模块,用于获取内存中已启动且处于空闲态的目标进程;
验证模块,用于所述目标进程对所述当前算子所依赖的计算框架和运行环境进行验证;
执行模块,用于若验证通过,所述目标进程进入运行状态执行所述当前算子。
可选的,若容器支持多种环境,所述系统还包括:
第一确定模块,用于确定所述工作流中所述当前算子的运行环境;
第二确定模块,用于基于容器预先记录的进程标识和支持的环境以及所述当前算子的运行环境,确定所述当前算子对应的目标进程;
启动模块,用于启动所述目标进程。
可选的,若所述工作流包括并行算子,所述执行模块包括:
启动子模块,用于基于当前算子的并行度,在所述目标进程中启动多个线程;
执行子模块,用于使用所述多个线程分别执行所述并行算子。
可选的,所述系统还包括:
第三确定模块,用于确定所述工作流中所述当前算子所依赖的计算框架;
第四确定模块,用于基于所述当前算子所依赖的计算框架和运行环境确定执行所述目标进程对应的容器。
可选的,所述工作流运行过程中各算子使用的数据进行压缩后使用。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上述实施例所述的数据处理方法的步骤。
本发明实施例还提供一种可读存储介质,可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法包括:
响应于工作流的运行请求,获取所述工作流的数据亲缘关系;
基于所述工作流的数据亲缘关系运行所述工作流;
获取所述工作流中当前算子的输出数据;
基于所述数据亲缘关系,若确定所述输出数据为所述工作流的最终结果,输出所述输出数据;若确定所述输出数据为所述工作流的中间结果,将所述输出数据存储至内存中。
2.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
根据所述工作流的数据亲缘关系,统计调用所述当前算子的输出数据的目标算子的个数N;N为大于1的整数;
在所述内存中创建所述当前算子的输出数据的N个数据副本;
所述基于所述工作流的数据亲缘关系运行所述工作流的步骤包括:基于所述工作流的数据亲缘关系,将所述数据副本发送至所述目标算子,运行所述工作流。
3.根据权利要求2所述的数据处理方法,其特征在于,所述方法还包括:
若调用所述当前算子的输出数据的目标算子的个数为1,则在所述目标算子执行完后清理所述输出数据;
若调用所述当前算子的输出数据的目标算子的个数为N,则在N个所述目标算子均执行完成后,清理所述输出数据。
4.根据权利要求1所述的数据处理方法,其特征在于,所述获取所述工作流中当前算子的输出数据的步骤之前,所述方法还包括:
获取内存中已启动且处于空闲态的目标进程;
所述目标进程对所述当前算子所依赖的计算框架和运行环境进行验证;
若验证通过,所述目标进程进入运行状态执行所述当前算子。
5.根据权利要求4所述的数据处理方法,其特征在于,所述方法还包括:若容器支持多种环境,所述获取内存中已启动且处于空闲态的目标进程的步骤之前,所述方法还包括:
确定所述工作流中所述当前算子的运行环境;
基于容器预先记录的进程标识和支持的环境以及所述当前算子的运行环境,确定所述当前算子对应的目标进程;
启动所述目标进程。
6.一种数据处理系统,其特征在于,所述系统包括:
第一获取模块,用于响应于工作流的运行请求,获取所述工作流的数据亲缘关系;
运行模块,用于基于所述工作流的数据亲缘关系运行所述工作流;
第二获取模块,用于获取所述工作流中当前算子的输出数据;
输出/存储模块,用于基于所述数据亲缘关系,若确定所述输出数据为所述工作流的最终结果,输出所述输出数据;若确定所述输出数据为所述工作流的中间结果,将所述输出数据存储至内存中。
7.根据权利要求6所述的数据处理系统,其特征在于,所述系统还包括:
统计模块,用于根据所述工作流的数据亲缘关系,统计调用所述当前算子的输出数据的目标算子的个数N;N为大于1的整数;
创建模块,用于在所述内存中创建所述当前算子的输出数据的N个数据副本;
所述运行模块具体用于:基于所述工作流的数据亲缘关系,将所述数据副本发送至所述目标算子,运行所述工作流。
8.根据权利要求7所述的数据处理系统,其特征在于,所述系统还包括:
第一清理模块,用于若调用所述当前算子的输出数据的目标算子的个数为1,则在所述目标算子执行完后清理所述输出数据;
第二清理模块,用于若调用所述当前算子的输出数据的目标算子的个数为N,则在N个所述目标算子均执行完成后,清理所述输出数据。
9.根据权利要求6所述的数据处理系统,其特征在于,所述系统还包括:
第二获取模块,用于获取内存中已启动且处于空闲态的目标进程;
验证模块,用于所述目标进程对所述当前算子所依赖的计算框架和运行环境进行验证;
执行模块,用于若验证通过,所述目标进程进入运行状态执行所述当前算子。
10.根据权利要求9所述的数据处理系统,其特征在于,若容器支持多种环境,所述系统还包括:
第二确定模块,用于确定所述工作流中所述当前算子的运行环境;
第三确定模块,用于基于容器预先记录的进程标识和支持的环境以及所述当前算子的运行环境,确定所述当前算子对应的目标进程;
启动模块,用于启动所述目标进程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211200729.4A CN117251260A (zh) | 2022-09-29 | 2022-09-29 | 一种数据处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211200729.4A CN117251260A (zh) | 2022-09-29 | 2022-09-29 | 一种数据处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117251260A true CN117251260A (zh) | 2023-12-19 |
Family
ID=89133791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211200729.4A Pending CN117251260A (zh) | 2022-09-29 | 2022-09-29 | 一种数据处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117251260A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472553A (zh) * | 2023-12-28 | 2024-01-30 | 中移(苏州)软件技术有限公司 | 一种工作流处理方法、装置、处理设备及可读存储介质 |
-
2022
- 2022-09-29 CN CN202211200729.4A patent/CN117251260A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472553A (zh) * | 2023-12-28 | 2024-01-30 | 中移(苏州)软件技术有限公司 | 一种工作流处理方法、装置、处理设备及可读存储介质 |
CN117472553B (zh) * | 2023-12-28 | 2024-05-03 | 中移(苏州)软件技术有限公司 | 一种工作流处理方法、装置、处理设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8108456B2 (en) | Method and apparatus for migrating the system environment on which the applications depend | |
CN111694797B (zh) | 一种文件上传及解析方法、装置、服务器及介质 | |
CN108804215B (zh) | 一种任务处理方法、装置以及电子设备 | |
CN109766124A (zh) | 业务开发方法、装置、计算机设备和存储介质 | |
CN117251260A (zh) | 一种数据处理方法及系统 | |
CN107179982B (zh) | 一种跨进程调试方法和装置 | |
CN108595178B (zh) | 一种基于hook的数据采集方法、装置及设备 | |
CN113157411B (zh) | 一种基于Celery的可靠可配置任务系统及装置 | |
CN108241543B (zh) | 业务操作断点执行的方法、业务服务器及系统 | |
CN111459492A (zh) | Dubbo服务接口兼容性检测方法、装置、存储介质及设备 | |
CN116302054A (zh) | 一种软件项目的开发方法、装置、存储介质及电子设备 | |
US10474443B2 (en) | Code lineage tool | |
CN112367205B (zh) | 一种对http调度请求的处理方法及调度系统 | |
CN101196920B (zh) | 基于引用关系的文件配置管理方法和装置 | |
CN114090514A (zh) | 分布式系统的日志检索方法及装置 | |
CN115965227A (zh) | 工作流的数据处理方法、装置、设备、存储介质及产品 | |
CN113419957A (zh) | 基于规则的大数据离线批处理性能容量扫描方法及装置 | |
CN111158654A (zh) | 算法调用方法、装置、服务器及存储介质 | |
CN112540835B (zh) | 一种混合机器学习模型的运行方法、装置及相关设备 | |
CN111324668A (zh) | 数据库数据同步处理方法、装置及存储介质 | |
CN111090854A (zh) | 目标程序的执行与转换方法、装置、终端和存储介质 | |
CN111090466B (zh) | 调用指令的优化方法、装置、设备和存储介质 | |
CN105653552B (zh) | 一种结构化文档处理方法、装置及设备 | |
CN117171364B (zh) | 运维知识图谱更新方法及装置 | |
CN116069464B (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 |