一种基于元数据的任务调度的优化方法及装置与流程

文档序号:13685598阅读:183来源:国知局
本发明涉及计算机
技术领域
:,尤其涉及一种基于元数据的任务调度的优化方法及装置。
背景技术
::数据仓库是一种面向决策主题、由多数据源集成、拥有当前及历史总结数据、以读为主的数据库系统,其目的是支持决策。数据仓库的处理过程众多,包括建立数据仓库的数据抽取、转换、加载、数据集市生成、数据立方生成过程,数据仓库管理的更新、归档过程,以及应用报表生成过程等。对于企业级数据仓库系统,其中的处理程序成千上万,如何有效的调度和管理这些任务是数据仓库管理的重中之重,也是提高数据仓库性能和资源利用率的关键。解决问题的关键之一是对元数据进行科学有效的管理。元数据是关于数据、操作数据的进程和应用程序的结构和意义的描述信息。元数据不仅定义了数据仓库中数据的模式、来源以及抽取和转换的规则等,而且整个数据仓库系统的运行都是基于元数据的。所以,基于元数据的任务调度方法很大程度的影响了系统处理数据的效率。在数据仓库任务中,发现存在多个数据往同一个目标表插入数据时,后续的任务需要等待所有的数据插入完成时才会启动,而实际上后续任务并不需要等待所有数据完成。这样造成后续任务处理的延迟。如图1所示,表table4的处理生产任务为task01、task02和task03。后续依赖触发的任务有task04和task05。在一般的调度任务配置中,会等task01、task02和task03处理完,才启动task04和task05。在这种多依赖的任务中,有些任务并不需要利用所有的前置任务都处理完成才能处理。我们把这种现象称为过渡依赖。现有技术中,后置的任务需要依赖所有前置的任务都出来完成才能启动,影响了数据处理的及时性。技术实现要素:为解决现有技术中存在的问题,本发明实施例提供一种基于元数据的任务调度的优化方法及装置,能够提高数据处理的及时性。为达到上述目的,本发明实施例的技术方案是这样实现的:第一方面,本发明实施例提供一种基于元数据的任务调度的优化方法,所述方法包括:获取元数据信息;获取任务依赖关系图,其中,所述任务依赖关系图是有向无环图;根据所述元数据信息和所述任务依赖关系图,确定满足第一预设条件的任务,其中,所述第一预设条件为运行所述任务时仅需要依赖所述任务的前置任务中的部分任务;优化所述满足第一预设条件的任务。第二方面,本发明实施例提供一种基于元数据的任务调度的优化装置,所述装置包括:第一获取模块,用于获取元数据信息;第二获取模块,用于获取任务依赖关系图,其中所述任务依赖关系图是有向无环图;第一确定模块,用于根据所述元数据信息和所述任务依赖关系图,确定满足第一预设条件的任务,其中,所述第一预设条件为运行所述任务时仅需要依赖所述任务的前置任务中的部分任务;第一优化模块,用于优化所述满足第一预设条件的任务。本发明实施例公开了一种基于元数据的任务调度的优化方法及装置,其中,所述方法包括:获取元数据信息;获取任务依赖关系图,其中所述任务依赖关系图是有向无环图;根据所述元数据信息和所述任务依赖关系图,确定满足第一预设条件的任务,其中,所述第一预设条件为运行所述任务时仅需要依赖所述任务的前置任务中的部分任务;优化所述满足第一预设条件的任务;如此,能够提高数据处理的及时性。附图说明图1为数据仓库任务调度示意图;图2为本发明实施例一基于元数据的任务调度的优化方法的实现流程示意图;图3为本发明实施例二基于元数据的任务调度的优化方法的实现流程示意图;图4-1为本发明实施例三过渡依赖算法实现流程图;图4-2为本发明实施例三任务依赖关系图及关键路径时序图;图5为本发明实施例四基于元数据的任务调度的优化装置的组成结构示意图;图6为本发明实施例五基于元数据的任务调度的优化装置的组成结构示意图。具体实施方式实施例一为了解决
背景技术
:中存在的技术问题,本发明实施例提供一种基于元数据的任务调度的优化方法,图2为本发明实施例一基于元数据的任务调度的优化方法的实现流程示意图,如图2所示,所述方法包括:步骤s201,终端获取元数据信息;这里,终端可以是计算机、平板电脑以及手机等设备。终端获取元数据信息可以是所述终端自动获取的,也可以是所述终端接收用户的输入,根据所述用户的输入获取元数据信息。如果是自动获取,则所述步骤s201包括:从数据仓库中获取元数据信息,所述元数据信息包括数据仓库结构信息、处理过程的运行日志、任务名、任务的开始时间、任务的结束时间、执行脚本、状态和记录数等,其中,所述数据仓库结构信息包括表名、字段名、字段中文名、字段描述、字段类型和长度。步骤s202,所述终端获取任务依赖关系图;这里,所述任务依赖关系图是有向无环图,所述任务依赖关系图用于表示各个任务节点之间的依赖关系。任务依赖关系图中的任务是指在特定环境下运行的一个程序或者命令,在数据仓库中,一个任务可以是一个数据集的抽取程序或者一个报表的生成程序。步骤s203,所述终端根据所述元数据信息和所述任务依赖关系图,确定满足第一预设条件的任务;这里,所述第一预设条件为运行所述任务时仅需要依赖所述任务的前置任务中的部分任务。前置任务是指运行当前任务时需要提前完成的任务,因为当前任务的执行依赖其他任务的执行结果,因此需要提前完成的那些任务即为前置任务。步骤s203进一步包括:根据所述元数据信息和所述任务依赖关系图,确定前置任务的写入字段是第一常量的字段;根据所述元数据信息和所述任务依赖关系图,确定后置任务的条件字段为第二常量的字段;判断所述第一常量和第二常量是否相同;如果所述第一常量和所述第二常量相同,确定所述后置任务为满足第一预设条件的任务。步骤s204,所述终端优化所述满足第一预设条件的任务。这里,将所述满足第一预设条件的任务没有完全依赖的前置任务从任务依赖关系图中删除,并更新所述任务依赖关系图。本发明实施例中,获取元数据信息;获取任务依赖关系图,其中所述任务依赖关系图是有向无环图;根据所述元数据信息和所述任务依赖关系图,确定满足第一预设条件的任务,其中,所述第一预设条件为运行所述任务时仅需要依赖所述任务的前置任务中的部分任务;优化所述满足第一预设条件的任务,如此,能够使得不需要利用所有的前置任务都处理完成的任务可以及时处理,进而提高数据处理的及时性。实施例二本发明实施例再提供一种基于元数据的任务调度的优化方法,图3为本发明实施例二基于元数据的任务调度的优化方法的实现流程示意图,如图3所示,所述方法包括:步骤s301,终端根据所述任务依赖图,确定关键路径;这里,步骤s301进一步包括:步骤s3011,所述终端根据所述任务依赖关系图,计算每个任务的关联度;这里,任务的关联度是所述任务所依赖的任务的总个数。步骤s3012,所述终端将关联度满足第二预设条件的任务节点确定为关键任务节点;这里,一般将关联度最高的任务节点确定为关键任务节点。步骤s3013,所述终端根据所述任务依赖关系图,以所述关键任务节点为终点,向上递归查找,确定以所述关键任务节点为终点的路径;步骤s3014,所述终端根据所述路径上起点任务的开始时间和所述路径上的终点任务的结束时间,计算所述路径的运行时长;步骤s3015,所述终端确定运行时长时间满足第四预设条件的路径为关键路径。这里,一般情况下会将运行时间最长的路径确定为关键路径,但不限于这一种预设条件。步骤s302,如果所述关键路径需要优化,所述终端对所述关键路径进行优化;这里,步骤s302进一步包括:步骤s3021,所述终端判断所述关键路径上是否有单个运行时间超过预先设定的第一时间阈值的任务;步骤s3022,如果有单个运行时间超过预先设定的第一时间阈值的任务,所述终端对所述任务进行优化;步骤s3023,所述终端判断所述关键路径上是否有两个任务之间的空闲时间超过预先设定的第二时间阈值的空闲间隙;步骤s3024,如果所述关键路径上有两个任务之间的空闲时间超过预先设定的第二时间阈值的空闲时间,所述终端对所述关键路径进行优化。步骤s303,将优化前和优化后的所述关键路径的运行时长进行对比;步骤s304,输出对比结果,所述对比结果用于对优化后的所述关键路径的运行时长进行评估;步骤s305,所述终端判断所述对比结果是否满足第三预设条件;这里,第三预设条件可以根据实际情况进行设定,比如当优化后的所述关键路径的运行时长比优化前的所述关键路径的运行时长缩短了20%,则认为满足了第三预设条件。步骤s306,如果所述对比结果满足第三预设条件,则所述终端将所述优化后的关键路径确定为下一次执行的优选路径。实施例三本发明实施例先提供一种基于元数据的任务调度的优化方法,所述方法包括如下步骤:步骤s401,终端采集调度信息;从现有的系统中,采集与调度相关的以下信息(即调度信息):数据库结构信息、处理过程的运行日志、任务名、任务的开始时间、任务的结束时间、执行脚本、状态和记录数,其中所述数据库结构信息包括:表名、字段名、字段中文名、字段描述、字段类型和长度。步骤s402,所述终端解析所述调度信息;这里,对采集到的调度信息进行解析,输出以下元数据信息:表级关系、字段级关系、常量信息解析和条件字段解析,其中,表级关系包括:任务名、输入表和输出表,字段级关系包括任务名、输入表、输入字段、目标表、目标字段和转换规则。步骤s403,所述终端利用过渡依赖算法对步骤s402输出的元数据信息进行分析;这里,如图4-1所示,利用过渡依赖算法对步骤s402输出的元数据信息进行分析,根据所述过渡依赖算法的输出结果优化任务调度依赖策略,将原有表级依赖优化为更为精细的表和数据内容的依赖。所述步骤s403进一步包括:步骤s4031,所述终端对前置任务进行常量的提前解析;这里,如果所述前置任务往目标表生成数据时,存在某个字段写入的值是一个常量,记录这个常量字段。步骤s4032,所述终端对后置任务的条件字段进行解析;这里,对后置任务的条件字段进行解析,如果存在常量条件字段,则记录常量条件字段。步骤s4033,所述终端进行局部依赖判断;这里,如果所述前置任务的常量字段跟生成所述目标表的后置任务的常量条件字段一致,可以得出所述后置任务只局部依赖于前置某个任务。运行这个任务无需等待所述目标表的所有的前置任务都完成。步骤s404,根据任务依赖关系图,所述终端确定关键路径,并对所述关键路径进行优化;这里,步骤s404进一步包括:步骤s4041,所述终端根据任务依赖关系图,计算所述任务依赖关系图中各个任务节点的关联度;这里,所述任务节点的关联度=所述任务节点依赖的所有任务总数。如图4-2所示,任务1的关联度为0,任务2的关联度为0,任务3的关联度为0,任务4的关联度为1,任务5的关联度为5,任务6的关联度为5,任务7的关联度为4,任务8的关联度为0,任务9的关联度为8。由此可以得出,任务9的关联度最高。步骤s4042,所述终端尽量保证关联度高的节点能够优先被处理,从而保证处理后续任务的总体的及时性;步骤s4043,所述终端对关联度最高节点,按照所述任务依赖关系图,向上递归查找,计算所有节点的运行时长总和,总时长最高的即为关键路径。将所述关键路径作为优化的目标;如图4-2所示,对任务9进行向上递归查找,得到的任务路径有:任务1—>任务4—>任务6—>任务9;任务2—>任务5—>任务7—>任务9;任务3—>任务5—>任务7—>任务9;任务8—>任务7—>任务9。计算以上每个路径的运行总时长,运行总时长的确定为关键路径。这里选择的关键路径为任务3—>任务5—>任务7—>任务9。步骤s4044,所述终端对所述关键路径进行时序图分析,对所述关键路径进行优化;这里,对所述关键路径进行时序图进行分析,判断所述关键路径上是否存在运行时间较长的程序,是否存在两个任务节点间的空闲时间较长的时间间隙,如果存在对所述关键路径进行优化。根据如图4-2所示的关键路径任务3—>任务5—>任务7—>任务9的时序图,可以看出,任务5运行时间较长,并且任务5和任务7之间有较长的空闲时间间隙,对所述关键路径进行优化。步骤s405,所述终端对优化结果进行跟踪评估。这里,根据优化的算法的输出,对调度任务进行优化调整,并对优化结果进行评估。具体为对所述关键路径的总时间窗口进行对比。其中,对比的内容具体包括:关键路径上的每个任务的开始时间和结束时间优化前后的对比;关键路径总的开始时间、结束时间优化前后的对比。本发明实施例通过自动发现过渡依赖、关键路径的分析,自动发现调度任务的优化改进点和改进方案,可以大大缩短调度任务的时间窗口。实施例四本发明实施例提供一种基于元数据的任务调度的优化装置,图5为本发明实施例四基于元数据的任务调度的优化装置的组成结构示意图,如图5所示,所述装置500包括:第一获取模块501、第二获取模块502、第一确定模块503和第一优化模块504,其中:所述第一获取模块501,用于获取元数据信息;所述第二获取模块502,用于获取任务依赖关系图;这里,所述任务依赖关系图是有向无环图。所述第一确定模块503,用于根据所述元数据信息和所述任务依赖关系图,确定满足第一预设条件的任务,其中,所述第一预设条件为运行所述任务时仅需要依赖所述任务的前置任务中的部分任务;这里,所述第一确定模块503进一步包括:第一确定单元5031,用于根据所述元数据信息和所述任务依赖关系图,确定前置任务的写入字段是第一常量的字段;第二确定单元5032,用于根据所述元数据信息和所述任务依赖关系图,确定后置任务的条件字段为第二常量的字段;第一判断单元5033,用于判断所述第一常量和第二常量是否相同;第三确定单元5034,用于如果所述第一常量和所述第二常量相同,确定所述后置任务为满足第一预设条件的任务。所述第一优化模块504,用于优化所述满足第一预设条件的任务。这里需要指出的是:以上基于元数据的任务调度的优化装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本发明基于元数据的任务调度的优化装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解,为节约篇幅,因此不再赘述。实施例五本发明实施例提供一种基于元数据的任务调度的优化装置,图6为本发明实施例五基于元数据的任务调度的优化装置的组成结构示意图,如图6所示,所述装置600包括:第二确定模块601、第二优化模块602、第一对比模块603、第一输出模块604、第一判断模块605和第三确定模块606,其中:所述第二确定模块601,用于根据所述任务依赖图,确定关键路径;这里,所述第二确定模块601进一步包括:第一计算单元6011,用于根据所述任务依赖关系图,计算每个任务的关联度,其中,任务的关联度是所述任务所依赖的任务的总个数;第四确定单元6012,用于将关联度满足第二预设条件的任务节点确定为关键任务节点;第五确定单元6013,用于根据所述任务依赖关系图,以所述关键任务节点为终点,向上递归查找,确定以所述关键任务节点为终点的路径;第二计算单元6014,用于根据所述路径上起点任务的开始时间和所述路径上的终点任务的结束时间,计算所述路径的运行时长;第六确定单元6015,用于确定运行时长时间最长的路径为关键路径。所述第二优化模块602,用于如果所述关键路径需要优化,对所述关键路径进行优化;这里,所述第二优化模块602进一步包括:第二判断单元6021,用于判断所述关键路径上是否有单个运行时间超过预先设定的第一时间阈值的任务;第一优化单元6022,用于如果有单个运行时间超过预先设定的第一时间阈值的任务,对所述任务进行优化;第三判断单元6023,用于判断所述关键路径上是否有两个任务之间的空闲时间超过预先设定的第二时间阈值的空闲间隙;第二优化单元6024,用于如果所述关键路径上有两个任务之间的空闲时间超过预先设定的第二时间阈值的空闲时间,对所述关键路径进行优化。所述第一对比模块603,用于将优化前和优化后的所述关键路径的运行时长进行对比;所述第一输出模块604,用于输出对比结果,所述对比结果用于对优化后的所述关键路径的运行时长进行评估;所述第一判断模块605,用于判断所述对比结果是否满足第三预设条件;所述第三确定模块606,用于如果所述对比结果满足第三预设条件,则将所述优化后的关键路径确定为下一次执行的优选路径。这里需要指出的是:以上基于元数据的任务调度的优化装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本发明基于元数据的任务调度的优化装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解,为节约篇幅,因此不再赘述。应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1