CN109783206A - 一种用于描述大数据任务流整体结构的方法 - Google Patents
一种用于描述大数据任务流整体结构的方法 Download PDFInfo
- Publication number
- CN109783206A CN109783206A CN201910007587.1A CN201910007587A CN109783206A CN 109783206 A CN109783206 A CN 109783206A CN 201910007587 A CN201910007587 A CN 201910007587A CN 109783206 A CN109783206 A CN 109783206A
- Authority
- CN
- China
- Prior art keywords
- longest path
- dependence
- node
- relative position
- position value
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种用于描述大数据任务流整体结构的方法,对整个任务流的所有节点,先找出所有无父依赖的起始节点,再根据起始节点找出整个任务流的最长路径;对找出的整个任务流的最长路径,按从起始节点至终止节点的顺序分别给予势值,并使用相对位置值的方式来记录整个任务流的最长路径;循环遍历整个任务流中所有未记录相对位置值的节点,分别计算出各未记录相对位置值的节点的子依赖关系的最长路径和/或父依赖关系的最长路径,并利用该子依赖关系的最长路径和/或父依赖关系的最长路径上存在相对位置值的节点推算出其它节点的相对位置值。本发明优点:可大大减少任务执行的等待时间,提升大数据任务流程的整体执行效率。
Description
技术领域
本发明涉及任务流处理领域,特别涉及一种用于描述大数据任务流整体结构的方法。
背景技术
在如今的大数据时代,大数据的清洗、转换、加载等任务随着数据流程的细致化和复杂化,任务数量也急剧增多。而任务与任务之间一般都会有着先后执行的依赖关系,现有技术在设计任务节点时,一般都只关注该任务节点的前置依赖节点以及后续执行节点,而对于该任务节点在整体流程中的前后置关系,一般都没有直观的认知。
人们一般都会使用分层的方式来规划任务的处理时机,从而来描述整体任务流程的结构。然而,随着数据流程的进一步剧增,单纯地使用分层的方式来规划任务的处理时机,会造成层次过深,跨层次的任务与任务之间的关系难以缕清(无法直观判断任务与任务之间是否存在依赖关系)。而且按照分层的方式来执行任务,由于任务执行时间的长短不一致,导致每一层的执行时长都为执行最慢的任务节点的执行时长,这会延长整体流程的执行效率。因此,亟需一种用来描述任务流的整体结构以及任务节点之间的相对关系的方法。
发明内容
本发明要解决的技术问题,在于提供一种用于描述大数据任务流整体结构的方法,通过该方法可有效解决现有技术中使用分层方式来执行任务存在的会延长整体流程的执行效率的问题。
本发明是这样实现的:一种用于描述大数据任务流整体结构的方法,所述方法包括如下步骤:
步骤S1、对整个任务流的所有节点,先找出所有无父依赖的起始节点,再根据起始节点找出整个任务流的最长路径;
步骤S2、对找出的整个任务流的最长路径,按从起始节点至终止节点的顺序分别给予势值,并使用相对位置值的方式来记录整个任务流的最长路径;
步骤S3、循环遍历整个任务流中所有未记录相对位置值的节点,分别计算出各未记录相对位置值的节点的子依赖关系的最长路径和/或父依赖关系的最长路径,并利用该子依赖关系的最长路径和/或父依赖关系的最长路径上存在相对位置值的节点推算出其它节点的相对位置值。
进一步地,在所述步骤S1中,所述根据起始节点找出整个任务流的最长路径具体为:
依次使用最长路径算法计算出各个起始节点的最长路径,并对计算出的各个起始节点的最长路径进行比较,从中找出整个任务流中的最长路径。
进一步地,在所述步骤S2中,所述按从起始节点至终止节点的顺序分别给予势值具体为:按从起始节点至终止节点的顺序分别给予从小到大的势值。
进一步地,在所述步骤S2中,所述使用相对位置值的方式来记录整个任务流的最长路径具体为:记录整个任务流的最长路径的路径号、最小势值以及最大势值,并使用不同分割符来将路径号、最小势值以及最大势值记录在一个字符串内。
进一步地,所述步骤S3具体包括:
步骤S31、循环遍历整个任务流中所有未记录相对位置值的节点,分别计算出各未记录相对位置值的节点的子依赖关系的最长路径和/或父依赖关系的最长路径;
步骤S32、对于各未记录相对位置值的节点,分别判断其子依赖关系的最长路径和/或父依赖关系的最长路径上的节点是否存在相对位置值,且如果存在,则通过相对位置值推算出该子依赖关系的最长路径和/或父依赖关系的最长路径上的其它节点的相对位置值;如果不存在,则将该未记录相对位置值的节点记为未计算节点;
步骤S33、在遍历完整个任务流中的所有未记录相对位置值的节点后,开始循环遍历所有未计算节点,并分别计算出各未计算节点的子依赖关系的最长路径和/或父依赖关系的最长路径;
步骤S34、对于各未计算节点,分别判断其子依赖关系的最长路径和/或父依赖关系的最长路径上的节点是否存在相对位置值,且如果存在,则通过相对位置值推算出该子依赖关系的最长路径和/或父依赖关系的最长路径上的其它节点的相对位置值;如果不存在,则将该未计算节点判定为与任务流无依赖关系的节点。
进一步地,在所述步骤S31中,所述分别计算出各未记录相对位置值的节点的子依赖关系的最长路径和/或父依赖关系的最长路径具体为:从各未记录相对位置值的节点开始,使用最长路径算法分别计算出各未记录相对位置值的节点的子依赖关系的最长路径和/或父依赖关系的最长路径;
在所述步骤S33中,所述分别计算出各未计算节点的子依赖关系的最长路径和/或父依赖关系的最长路径具体为:从各未计算节点开始,使用最长路径算法分别计算出各未计算节点的子依赖关系的最长路径和/或父依赖关系的最长路径。
进一步地,在所述步骤S32和步骤S34中,在通过相对位置值推算出该子依赖关系的最长路径和/或父依赖关系的最长路径上的其它节点的相对位置值时,还包括:对该子依赖关系的最长路径和/或父依赖关系的最长路径设置与其它路径不重复的分支路径号,以及记录该子依赖关系的最长路径和/或父依赖关系的最长路径的起始势值和终止势值,并使用不同分割符来将分支路径号、起始势值以及终止势值记录在字符串内。
本发明具有如下优点:通过本发明方法可使得任务流程的执行时间等于任务流程耗时最长的任务线的执行时间,从而可大大减少任务执行的等待时间,提升大数据任务流程的整体执行效率。同时,通过本发明方法计算出的节点的相对位置值还可以直接用于任务流的整体图像展示,可方便任务流程开发人员、设计人员等对整体流程有直观的感受。相对位置值也可以用于任务线的前后置依赖任务线节点的追溯,可十分方便任务流程维护人员的错误排查等工作。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明一种用于描述大数据任务流整体结构的方法的执行流程图。
具体实施方式
数据任务流具有一种特性,就是随着时间的不断推移,任务会被依次执行,且任务的执行不会形成回环。那么,必然会存在一条执行时间最长的任务线(假设每个任务节点执行的时间一样长),沿着执行时间最长的任务线执行下去,其它的所有任务都可以在这条任务线中找到与它对应的执行时机。对于具有相同执行时机的任务,我们称之为拥有同样的势。而势,就可以用来描述任意两个节点之间的执行时机的相对关系。
请重点参阅图1所示,本发明一种用于描述大数据任务流整体结构的方法的较佳实施例,所述方法包括如下步骤:
步骤S1、对整个任务流的所有节点,先找出所有无父依赖的起始节点,再根据起始节点找出整个任务流的最长路径;
步骤S2、对找出的整个任务流的最长路径,按从起始节点至终止节点的顺序分别给予势值,并使用相对位置值的方式来记录整个任务流的最长路径,其中,相对位置值可用于任务流的图像展示、任务线的追溯等;
步骤S3、循环遍历整个任务流中所有未记录相对位置值的节点,分别计算出各未记录相对位置值的节点的子依赖关系的最长路径和/或父依赖关系的最长路径,并利用该子依赖关系的最长路径和/或父依赖关系的最长路径上存在相对位置值的节点推算出其它节点的相对位置值。
由上述可知,相较于任务流分层的方式,通过本发明方法可使得任务流程的执行时间等于任务流程耗时最长的任务线的执行时间,从而可大大减少任务执行的等待时间,提升大数据任务流程的整体执行效率。同时,通过本发明方法计算出的节点的相对位置值还可以直接用于任务流的整体图像展示,可方便任务流程开发人员、设计人员等对整体流程有直观的感受。相对位置值也可以用于任务线的前后置依赖任务线节点的追溯,可十分方便任务流程维护人员的错误排查等工作。
其中,
在所述步骤S1中,所述根据起始节点找出整个任务流的最长路径具体为:
依次使用最长路径算法计算出各个起始节点的最长路径,并对计算出的各个起始节点的最长路径进行比较,从中找出整个任务流中的最长路径。
其中,最长路径算法的基本思想是:对于一幅加权有向无环图G,指定源点s,求s到其余各个顶点的最长路径,相当于复制原始加权有向无环图得到一个副本,并将副本中的所有边的权重变为负值;这样,副本中的最短路径就是原图G中的最长路径。
在所述步骤S2中,所述按从起始节点至终止节点的顺序分别给予势值具体为:按从起始节点至终止节点的顺序分别给予从小到大的势值。例如,最长路径的路径长度为9,则起始节点的势值为1,该起始节点的子依赖节点的势值为2,以此类推下去,终止节点的势值为9。当然,本发明具体实施例中是按正整数从小到大的顺序来记势值的,但本发明并不仅限于此,在具体实施时,还可以使用其它数值、字母等来记势值,只要能够将从起始节点至终止节点的节点顺序区分清楚即可。
在所述步骤S2中,所述使用相对位置值的方式来记录整个任务流的最长路径具体为:记录整个任务流的最长路径的路径号、最小势值以及最大势值,并使用不同分割符来将路径号、最小势值以及最大势值记录在一个字符串内。在本发明中,相对位置值是使用一个字符串来表示,但这仅是记录势值的方式之一,本发明并不仅限于此,在具体实施时,还可以使用其它方式来记录势值,例如,相对位置值也可以是一个对象。下面以字符串表示来进行说明:假设最长路径的路径长度为9,则将整个任务流的最长路径的路径号记录为1,将起始节点的相对位置值记录为:1~9.1:1,将终止节点的相对位置值记录为1~9.1:9。
所述步骤S3具体包括:
步骤S31、循环遍历整个任务流中所有未记录相对位置值的节点,分别计算出各未记录相对位置值的节点的子依赖关系的最长路径和/或父依赖关系的最长路径;
步骤S32、对于各未记录相对位置值的节点,分别判断其子依赖关系的最长路径和/或父依赖关系的最长路径上的节点是否存在相对位置值,且如果存在,则通过相对位置值推算出该子依赖关系的最长路径和/或父依赖关系的最长路径上的其它节点的相对位置值;如果不存在,则将该未记录相对位置值的节点记为未计算节点;
步骤S33、在遍历完整个任务流中的所有未记录相对位置值的节点后,开始循环遍历所有未计算节点,并分别计算出各未计算节点的子依赖关系的最长路径和/或父依赖关系的最长路径;在具体实施时,由于路径交错影响可能会存在一些未计算节点的依赖关系被遗漏,因此,在遍历完整个任务流中的所有未记录相对位置值的节点后,还需要再遍历所有的未计算节点,以找出被遗漏的存在依赖关系的节点;
步骤S34、对于各未计算节点,分别判断其子依赖关系的最长路径和/或父依赖关系的最长路径上的节点是否存在相对位置值,且如果存在,则通过相对位置值推算出该子依赖关系的最长路径和/或父依赖关系的最长路径上的其它节点的相对位置值;如果不存在,则将该未计算节点判定为与任务流无依赖关系的节点。
在所述步骤S31中,所述分别计算出各未记录相对位置值的节点的子依赖关系的最长路径和/或父依赖关系的最长路径具体为:从各未记录相对位置值的节点开始,使用最长路径算法分别计算出各未记录相对位置值的节点的子依赖关系的最长路径和/或父依赖关系的最长路径;
在所述步骤S33中,所述分别计算出各未计算节点的子依赖关系的最长路径和/或父依赖关系的最长路径具体为:从各未计算节点开始,使用最长路径算法分别计算出各未计算节点的子依赖关系的最长路径和/或父依赖关系的最长路径。
在所述步骤S32和步骤S34中,在通过相对位置值推算出该子依赖关系的最长路径和/或父依赖关系的最长路径上的其它节点的相对位置值时,还包括:对该子依赖关系的最长路径和/或父依赖关系的最长路径设置与其它路径不重复的分支路径号,以及记录该子依赖关系的最长路径和/或父依赖关系的最长路径的起始势值和终止势值(在具体实施时,起始势值如果不存在,则记录为1,终止势值如果不存在,则记录为最大路径值),并使用不同分割符来将分支路径号、起始势值以及终止势值记录在字符串内。例如,当遍历到的节点其有值的最大父依赖节点的相对位置值为1~9.1:3,有值的最小子依赖节点的相对位置值为1~9.1:7,该路径上共有2个赋值节点,则这两个赋值节点的相对位置值分别为1~9.1|4~6.2:4,1~9.1|4~6.2:5,其中,1~9为父路径的势值范围,1为父路径的路径号,4~6为该分支路径的势值范围,2为该分支路径的路径号,5为节点势值。
下面以一具体示例来对本发明具体实施例的相对位置值做进一步解释说明:如相对位置值为1~9.1|4~6.2|5~5.53:5,其中,1~9、4~6以及5~5表示分支路径的势值范围,1、2以及53表示分支路径号,5表示节点势值。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (7)
1.一种用于描述大数据任务流整体结构的方法,其特征在于:所述方法包括如下步骤:
步骤S1、对整个任务流的所有节点,先找出所有无父依赖的起始节点,再根据起始节点找出整个任务流的最长路径;
步骤S2、对找出的整个任务流的最长路径,按从起始节点至终止节点的顺序分别给予势值,并使用相对位置值的方式来记录整个任务流的最长路径;
步骤S3、循环遍历整个任务流中所有未记录相对位置值的节点,分别计算出各未记录相对位置值的节点的子依赖关系的最长路径和/或父依赖关系的最长路径,并利用该子依赖关系的最长路径和/或父依赖关系的最长路径上存在相对位置值的节点推算出其它节点的相对位置值。
2.根据权利要求1所述的一种用于描述大数据任务流整体结构的方法,其特征在于:在所述步骤S1中,所述根据起始节点找出整个任务流的最长路径具体为:
依次使用最长路径算法计算出各个起始节点的最长路径,并对计算出的各个起始节点的最长路径进行比较,从中找出整个任务流中的最长路径。
3.根据权利要求1所述的一种用于描述大数据任务流整体结构的方法,其特征在于:在所述步骤S2中,所述按从起始节点至终止节点的顺序分别给予势值具体为:按从起始节点至终止节点的顺序分别给予从小到大的势值。
4.根据权利要求1所述的一种用于描述大数据任务流整体结构的方法,其特征在于:在所述步骤S2中,所述使用相对位置值的方式来记录整个任务流的最长路径具体为:记录整个任务流的最长路径的路径号、最小势值以及最大势值,并使用不同分割符来将路径号、最小势值以及最大势值记录在一个字符串内。
5.根据权利要求1所述的一种用于描述大数据任务流整体结构的方法,其特征在于:所述步骤S3具体包括:
步骤S31、循环遍历整个任务流中所有未记录相对位置值的节点,分别计算出各未记录相对位置值的节点的子依赖关系的最长路径和/或父依赖关系的最长路径;
步骤S32、对于各未记录相对位置值的节点,分别判断其子依赖关系的最长路径和/或父依赖关系的最长路径上的节点是否存在相对位置值,且如果存在,则通过相对位置值推算出该子依赖关系的最长路径和/或父依赖关系的最长路径上的其它节点的相对位置值;如果不存在,则将该未记录相对位置值的节点记为未计算节点;
步骤S33、在遍历完整个任务流中的所有未记录相对位置值的节点后,开始循环遍历所有未计算节点,并分别计算出各未计算节点的子依赖关系的最长路径和/或父依赖关系的最长路径;
步骤S34、对于各未计算节点,分别判断其子依赖关系的最长路径和/或父依赖关系的最长路径上的节点是否存在相对位置值,且如果存在,则通过相对位置值推算出该子依赖关系的最长路径和/或父依赖关系的最长路径上的其它节点的相对位置值;如果不存在,则将该未计算节点判定为与任务流无依赖关系的节点。
6.根据权利要求5所述的一种用于描述大数据任务流整体结构的方法,其特征在于:在所述步骤S31中,所述分别计算出各未记录相对位置值的节点的子依赖关系的最长路径和/或父依赖关系的最长路径具体为:从各未记录相对位置值的节点开始,使用最长路径算法分别计算出各未记录相对位置值的节点的子依赖关系的最长路径和/或父依赖关系的最长路径;
在所述步骤S33中,所述分别计算出各未计算节点的子依赖关系的最长路径和/或父依赖关系的最长路径具体为:从各未计算节点开始,使用最长路径算法分别计算出各未计算节点的子依赖关系的最长路径和/或父依赖关系的最长路径。
7.根据权利要求5所述的一种用于描述大数据任务流整体结构的方法,其特征在于:在所述步骤S32和步骤S34中,在通过相对位置值推算出该子依赖关系的最长路径和/或父依赖关系的最长路径上的其它节点的相对位置值时,还包括:对该子依赖关系的最长路径和/或父依赖关系的最长路径设置与其它路径不重复的分支路径号,以及记录该子依赖关系的最长路径和/或父依赖关系的最长路径的起始势值和终止势值,并使用不同分割符来将分支路径号、起始势值以及终止势值记录在字符串内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910007587.1A CN109783206B (zh) | 2019-01-04 | 2019-01-04 | 一种用于描述大数据任务流整体结构的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910007587.1A CN109783206B (zh) | 2019-01-04 | 2019-01-04 | 一种用于描述大数据任务流整体结构的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109783206A true CN109783206A (zh) | 2019-05-21 |
CN109783206B CN109783206B (zh) | 2022-12-13 |
Family
ID=66500047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910007587.1A Active CN109783206B (zh) | 2019-01-04 | 2019-01-04 | 一种用于描述大数据任务流整体结构的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783206B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060048125A1 (en) * | 2004-08-30 | 2006-03-02 | International Business Machines Corporation | Method, apparatus, and program for pinning internal slack nodes to improve instruction scheduling |
JP2008287533A (ja) * | 2007-05-18 | 2008-11-27 | S Grants Co Ltd | カップルドノードツリーの最長一致/最短一致検索方法及びプログラム |
US20140359563A1 (en) * | 2013-06-04 | 2014-12-04 | Qualcomm Incorporated | Efficient execution of graph-based programs |
CN104239135A (zh) * | 2014-05-19 | 2014-12-24 | 江苏科技大学 | 有向无环图的可重构系统的混合任务调度方法 |
DE202015104126U1 (de) * | 2015-08-06 | 2015-11-11 | CompuGroup Medical AG | Datenverarbeitungssystem |
CN106506188A (zh) * | 2015-09-08 | 2017-03-15 | 阿里巴巴集团控股有限公司 | 一种确定关键节点的方法和设备 |
CN107301500A (zh) * | 2017-06-02 | 2017-10-27 | 北京工业大学 | 一种基于关键路径任务前瞻的工作流调度方法 |
-
2019
- 2019-01-04 CN CN201910007587.1A patent/CN109783206B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060048125A1 (en) * | 2004-08-30 | 2006-03-02 | International Business Machines Corporation | Method, apparatus, and program for pinning internal slack nodes to improve instruction scheduling |
JP2008287533A (ja) * | 2007-05-18 | 2008-11-27 | S Grants Co Ltd | カップルドノードツリーの最長一致/最短一致検索方法及びプログラム |
US20140359563A1 (en) * | 2013-06-04 | 2014-12-04 | Qualcomm Incorporated | Efficient execution of graph-based programs |
CN104239135A (zh) * | 2014-05-19 | 2014-12-24 | 江苏科技大学 | 有向无环图的可重构系统的混合任务调度方法 |
DE202015104126U1 (de) * | 2015-08-06 | 2015-11-11 | CompuGroup Medical AG | Datenverarbeitungssystem |
CN106506188A (zh) * | 2015-09-08 | 2017-03-15 | 阿里巴巴集团控股有限公司 | 一种确定关键节点的方法和设备 |
CN107301500A (zh) * | 2017-06-02 | 2017-10-27 | 北京工业大学 | 一种基于关键路径任务前瞻的工作流调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109783206B (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105190543B (zh) | 针对循环数据流的基于可到达性的协调 | |
CN104156380B (zh) | 一种分布式存储器哈希索引方法及系统 | |
CN110348571A (zh) | 一种神经网络模型训练方法、装置、芯片和系统 | |
CN104035786B (zh) | 一种软件定时器的优化方法及系统 | |
CN106302843B (zh) | 一种ip地址库更新方法及装置 | |
CN103744730B (zh) | 一种任务调度方法和装置 | |
CN106201673B (zh) | 一种地震数据处理方法及装置 | |
CN110347407A (zh) | 一种获取内存占用量的方法、装置、计算机设备及介质 | |
CN108255620A (zh) | 一种业务逻辑处理方法、装置、业务服务器及系统 | |
CN108521547A (zh) | 图像处理方法、装置及设备 | |
CN106227751A (zh) | 一种存储文件的扫描方法和扫描设备 | |
CN104915717A (zh) | 数据处理方法、知识库推理方法及相关装置 | |
CN103701469A (zh) | 一种大规模图数据的压缩存储方法 | |
CN106095850A (zh) | 一种数据处理方法及设备 | |
CN108234231A (zh) | 云计算环境中弹性伸缩配置的方法、装置以及电子设备 | |
CN106407233A (zh) | 一种数据处理方法和设备 | |
CN109189343A (zh) | 一种元数据落盘方法、装置、设备及计算机可读存储介质 | |
CN110427259A (zh) | 一种任务处理方法及装置 | |
CN108574718A (zh) | 一种云主机创建方法及装置 | |
CN110018845A (zh) | 元数据版本对比方法及装置 | |
CN109783206A (zh) | 一种用于描述大数据任务流整体结构的方法 | |
CN107992149B (zh) | 电压带隙电路的修调方法和修调装置 | |
CN103139272A (zh) | 一种获取选定时间段内在线时长的方法和装置 | |
CN105468726B (zh) | 基于本地计算和分布式计算的数据计算方法及系统 | |
CN107632926A (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 |