CN105868190B - 一种在etl中优化任务处理的方法及*** - Google Patents
一种在etl中优化任务处理的方法及*** Download PDFInfo
- Publication number
- CN105868190B CN105868190B CN201510025286.3A CN201510025286A CN105868190B CN 105868190 B CN105868190 B CN 105868190B CN 201510025286 A CN201510025286 A CN 201510025286A CN 105868190 B CN105868190 B CN 105868190B
- Authority
- CN
- China
- Prior art keywords
- task
- relation table
- time data
- current
- correlation
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种在ETL中优化任务处理的方法及***,其中,所述方法包括:根据ETL需调度的各个任务间的相互关系构造网络图,且所述网络图标识有各个任务的任务先后执行顺序;计算所述各个任务的执行时间段和/或所述执行时间段中涉及的具体时间点参数,得到用于标识各个任务时间的计算结果;按照预设规则扫描所述网络图中的所述各个任务间的相互关系及所述任务先后执行顺序,以生成第一关系表;根据所述计算结果对所述第一关系表中的任务先后执行顺序重新排序,得到包含关键任务的第二关系表,根据所述第二关系表优化调度所述关键任务的执行处理。
Description
技术领域
本发明涉及业务支撑领域的检测技术,尤其涉及一种在查询萃取转置加载(ETL,Extract-Transform-Load)中优化任务处理的方法及***。
背景技术
本申请发明人在实现本申请实施例技术方案的过程中,至少发现相关技术中存在如下技术问题:
所谓ETL指将数据从来源端经过萃取(extract)、转置(transform)、加载(load)至目的端的过程,主要应用于数据仓库技术,是该数据仓库中的关键技术,但其对象不限定于数据仓库。所述ETL主要包括数据的清洗、转换和加载,采用所述ETL技术,用户能从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。
以应用于数据仓库技术而言,由于ETL中包含众多的调度任务作业,如何有效管理这些调度,提高ETL执行效率,是提高整个数据仓库处理能力的关键。采用现有ETL解决方案和产品,大多使用分布式的架构和体系,通过并行增加服务器或者并行执行任务来提高ETL的处理速度,通过并行的方式来提高ETL的处理能力,通过增加硬件开销来换取处理能力的提升,也就是说,现有技术是通过额外增加硬件来换取处理能力的提升,以提高ETL调度多任务的效率,但是会存在增加硬件开销及提高制造成本的问题,对于这个问题,相关技术中并未存在有效的解决方案。
发明内容
有鉴于此,本发明实施例希望提供一种在ETL中优化任务处理的方法及***,至少解决了现有技术存在的问题。
本发明实施例的技术方案是这样实现的:
本发明实施例的一种在ETL中优化任务处理的方法,所述方法包括:
根据ETL需调度的各个任务间的相互关系构造网络图,且所述网络图标识有各个任务的任务先后执行顺序;
计算所述各个任务的执行时间段和/或所述执行时间段中涉及的具体时间点参数,得到用于标识各个任务时间的计算结果;
按照预设规则扫描所述网络图中的所述各个任务间的相互关系及所述任务先后执行顺序,以生成第一关系表;
根据所述计算结果对所述第一关系表中的任务先后执行顺序重新排序,得到包含关键任务的第二关系表,根据所述第二关系表优化调度所述关键任务的执行处理。
上述方案中,所述根据ETL需调度的各个任务间的相互关系构造网络图,包括:
获取各个节点的位置,至少两个节点构成一个任务;
根据所述各个节点的位置对应的位置关系和任务依赖因素来建立所述ETL需调度的各个任务间的相互关系。
上述方案中,所述计算所述各个任务的执行时间段,包括:
获取第一时间数据,所述第一时间数据用于表征符合第一条件所达到的任务最快可能完成时间;
获取第二时间数据,所述第二时间数据用于表征符合第二条件所达到的任务最可能完成时间;
获取第三时间数据,所述第三时间数据用于表征符合第三条件所达到的任务最慢可能完成时间;
根据所述第一时间数据、所述第二时间数据和所述第三时间数据得到所述各个任务对应的期望时间数据,并将所述期望时间数据作为所述各个任务的执行时间段。
上述方案中,所述按照预设规则扫描所述网络图中的所述各个任务间的相互关系及所述任务先后执行顺序,以生成第一关系表,包括:
所述预设规则为存在相互关系的各个任务中,在当前任务未完成时不允许所述当前任务后续的紧后任务开始执行;
提取存在相互关系的各个任务,得到所述当前任务和所述紧后任务;
按照所述任务先后执行顺序,建立包含所述当前任务和所述紧后任务的所述第一关系表;
所述第一关系表包含各个任务中所述当前任务的任务编号,和所述紧后任务的任务编号。
上述方案中,根据所述计算结果对所述第一关系表中的任务先后执行顺序重新排序,得到包含关键任务的第二关系表,包括:
根据所述计算结果遍历所述第一关系表中的各个任务,对任务先后执行顺序重新排序,判断出所述当前任务和所述紧后任务在所述第一关系表中排序靠前时,将所述当前任务和所述紧后任务确定为所述关键任务;
将所述当前任务和所述紧后任务***所述第二关系表,并从所述第一关系表中删除所述当前任务和所述紧后任务,同时更新所述第二关系表中的任务执行优先级;
所述第二关系表包含各个任务中所述当前任务的任务编号,所述紧后任务的任务编号,和任务执行优先级。
上述方案中,所述任务执行优先级不是固定不变的,是随着所述计算结果的变化重新排序后的动态调整结果。
上述方案中,所述根据所述第二关系表优选调度所述关键任务的执行处理,包括:
在判断出所述第一关系表为空时,结束对所述第一关系表的遍历后,读取所述第二关系表;
对所述第二关系表的各个任务中当前任务和紧后任务按照所述任务执行优先级的顺序进行任务优化,以优化调度所述关键任务的执行处理。
本发明实施例的一种在ETL中优化任务处理的***,所述***包括:
构造单元,用于根据ETL需调度的各个任务间的相互关系构造网络图,且所述网络图标识有各个任务的任务先后执行顺序;
计算单元,用于计算所述各个任务的执行时间段和/或所述执行时间段中涉及的具体时间点参数,得到用于标识各个任务时间的计算结果;
扫描单元,用于按照预设规则扫描所述网络图中的所述各个任务间的相互关系及所述任务先后执行顺序,以生成第一关系表;
表生成及调度单元,用于根据所述计算结果对所述第一关系表中的任务先后执行顺序重新排序,得到包含关键任务的第二关系表,根据所述第二关系表优化调度所述关键任务的执行处理。
上述方案中,所述计算单元,进一步包括:
第一获取子单元,用于获取第一时间数据,所述第一时间数据用于表征符合第一条件所达到的任务最快可能完成时间;
第二获取子单元,用于获取第二时间数据,所述第二时间数据用于表征符合第二条件所达到的任务最可能完成时间;
第三获取子单元,用于获取第三时间数据,所述第三时间数据用于表征符合第三条件所达到的任务最慢可能完成时间;
运算子单元,用于根据所述第一时间数据、所述第二时间数据和所述第三时间数据得到所述各个任务对应的期望时间数据,并将所述期望时间数据作为所述各个任务的执行时间段。
上述方案中,所述扫描单元,进一步包括:
提取子单元,用于在所述预设规则为存在相互关系的各个任务中,在当前任务未完成时不允许所述当前任务后续的紧后任务开始执行的情况下,提取存在相互关系的各个任务,得到所述当前任务和所述紧后任务;
第一关系表建立子单元,用于按照所述任务先后执行顺序,建立包含所述当前任务和所述紧后任务的所述第一关系表;所述第一关系表包含各个任务中所述当前任务的任务编号,和所述紧后任务的任务编号。
上述方案中,所述表生成及调度单元,进一步包括:
遍历及判断子单元,用于根据所述计算结果遍历所述第一关系表中的各个任务,对任务先后执行顺序重新排序,判断出所述当前任务和所述紧后任务在所述第一关系表中排序靠前时,将所述当前任务和所述紧后任务确定为所述关键任务;
***及更新子单元,用于将所述当前任务和所述紧后任务***所述第二关系表,并从所述第一关系表中删除所述当前任务和所述紧后任务,同时更新所述第二关系表中的任务执行优先级;所述第二关系表包含各个任务中所述当前任务的任务编号,所述紧后任务的任务编号,和任务执行优先级;
上述方案中,所述表生成及调度单元,进一步还包括:
读取子单元,在通过所述遍历及判断子单元判断出所述第一关系表为空时,结束对所述第一关系表的遍历后,读取所述第二关系表;
优化处理子单元,用于对所述第二关系表的各个任务中当前任务和紧后任务按照所述任务执行优先级的顺序进行任务优化,以优先调度所述关键任务的执行处理。
本发明实施例的在ETL中优化任务处理的方法包括:根据ETL需调度的各个任务间的相互关系构造网络图,且所述网络图标识有各个任务的任务先后执行顺序;计算所述各个任务的执行时间段和/或所述执行时间段中涉及的具体时间点参数,得到用于标识各个任务时间的计算结果;按照预设规则扫描所述网络图中的所述各个任务间的相互关系及所述任务先后执行顺序,以生成第一关系表;根据所述计算结果对所述第一关系表中的任务先后执行顺序重新排序,得到包含关键任务的第二关系表,根据所述第二关系表优化调度所述关键任务的执行处理。
采用本发明实施例,能构造得到网络图,网络图由各个任务间的相互关系构成并标识有各个任务的任务先后执行顺序,计算得到用于标识各个任务时间的计算结果,按照预设规则扫描所述网络图中的所述各个任务间的相互关系及所述任务先后执行顺序,以生成第一关系表,根据所述计算结果对所述第一关系表中的任务先后执行顺序重新排序,得到包含关键任务的第二关系表,根据所述第二关系表优化调度所述关键任务的执行处理,通过这些软件层面实现的技术,本发明实施例是一种无需增加硬件从而避免硬件开销高及避免提高制造成本的方案,解决了现有技术存在的问题。
附图说明
图1为本发明实施例的方法流程示意图;
图2为应用本发明实施例的一应用场景的ETL优化流程图;
图3为应用本发明实施例的另一应用场景的ETL优化流程图。
具体实施方式
下面结合附图对技术方案的实施作进一步的详细描述。
本发明实施例的在ETL中优化任务处理的方法,如图1所示,包括:
步骤101、根据ETL需调度的各个任务间的相互关系构造网络图,且所述网络图标识有各个任务的任务先后执行顺序。
步骤102、计算所述各个任务的执行时间段和/或所述执行时间段中涉及的具体时间点参数,得到用于标识各个任务时间的计算结果。
步骤103、按照预设规则扫描所述网络图中的所述各个任务间的相互关系及所述任务先后执行顺序,以生成第一关系表。
步骤104、根据所述计算结果对所述第一关系表中的任务先后执行顺序重新排序,得到包含关键任务的第二关系表,根据所述第二关系表优化调度所述关键任务的执行处理。
在本发明实施例一实施方式中,所述根据ETL需调度的各个任务间的相互关系构造网络图,包括:获取各个节点的位置,至少两个节点构成一个任务;根据所述各个节点的位置对应的位置关系和任务依赖因素来建立所述ETL需调度的各个任务间的相互关系。
在本发明实施例一实施方式中,所述计算所述各个任务的执行时间段,包括:获取第一时间数据,所述第一时间数据用于表征符合第一条件所达到的任务最快可能完成时间;获取第二时间数据,所述第二时间数据用于表征符合第二条件所达到的任务最可能完成时间;获取第三时间数据,所述第三时间数据用于表征符合第三条件所达到的任务最慢可能完成时间;根据所述第一时间数据、所述第二时间数据和所述第三时间数据得到所述各个任务对应的期望时间数据,并将所述期望时间数据作为所述各个任务的执行时间段。
在本发明实施例一实施方式中,所述按照预设规则扫描所述网络图中的所述各个任务间的相互关系及所述任务先后执行顺序,以生成第一关系表,包括:所述预设规则为存在相互关系的各个任务中,在当前任务未完成时不允许所述当前任务后续的紧后任务开始执行;提取存在相互关系的各个任务,得到所述当前任务和所述紧后任务;按照所述任务先后执行顺序,建立包含所述当前任务和所述紧后任务的所述第一关系表;所述第一关系表包含各个任务中所述当前任务的任务编号,和所述紧后任务的任务编号。
在本发明实施例一实施方式中,根据所述计算结果对所述第一关系表中的任务先后执行顺序重新排序,得到包含关键任务的第二关系表,包括:根据所述计算结果遍历所述第一关系表中的各个任务,对任务先后执行顺序重新排序,判断出所述当前任务和所述紧后任务在所述第一关系表中排序靠前时,将所述当前任务和所述紧后任务确定为所述关键任务;将所述当前任务和所述紧后任务***所述第二关系表,并从所述第一关系表中删除所述当前任务和所述紧后任务,同时更新所述第二关系表中的任务执行优先级;所述第二关系表包含各个任务中所述当前任务的任务编号,所述紧后任务的任务编号,和任务执行优先级。
在本发明实施例一实施方式中,所述任务执行优先级不是固定不变的,是随着所述计算结果的变化重新排序后的动态调整结果。
在本发明实施例一实施方式中,所述根据所述第二关系表优选调度所述关键任务的执行处理,包括:在判断出所述第一关系表为空时,结束对所述第一关系表的遍历后,读取所述第二关系表;对所述第二关系表的各个任务中当前任务和紧后任务按照所述任务执行优先级的顺序进行任务优化,以优化调度所述关键任务的执行处理。
本发明实施例的在ETL中优化任务处理的***,所述***包括:
构造单元,用于根据ETL需调度的各个任务间的相互关系构造网络图,且所述网络图标识有各个任务的任务先后执行顺序;
计算单元,用于计算所述各个任务的执行时间段和/或所述执行时间段中涉及的具体时间点参数,得到用于标识各个任务时间的计算结果;
扫描单元,用于按照预设规则扫描所述网络图中的所述各个任务间的相互关系及所述任务先后执行顺序,以生成第一关系表;
表生成及调度单元,用于根据所述计算结果对所述第一关系表中的任务先后执行顺序重新排序,得到包含关键任务的第二关系表,根据所述第二关系表优化调度所述关键任务的执行处理。
在本发明实施例一实施方式中,所述计算单元,进一步包括:
第一获取子单元,用于获取第一时间数据,所述第一时间数据用于表征符合第一条件所达到的任务最快可能完成时间;
第二获取子单元,用于获取第二时间数据,所述第二时间数据用于表征符合第二条件所达到的任务最可能完成时间;
第三获取子单元,用于获取第三时间数据,所述第三时间数据用于表征符合第三条件所达到的任务最慢可能完成时间;
运算子单元,用于根据所述第一时间数据、所述第二时间数据和所述第三时间数据得到所述各个任务对应的期望时间数据,并将所述期望时间数据作为所述各个任务的执行时间段。
在本发明实施例一实施方式中,所述扫描单元,进一步包括:
提取子单元,用于在所述预设规则为存在相互关系的各个任务中,在当前任务未完成时不允许所述当前任务后续的紧后任务开始执行的情况下,提取存在相互关系的各个任务,得到所述当前任务和所述紧后任务;
第一关系表建立子单元,用于按照所述任务先后执行顺序,建立包含所述当前任务和所述紧后任务的所述第一关系表;所述第一关系表包含各个任务中所述当前任务的任务编号,和所述紧后任务的任务编号。
在本发明实施例一实施方式中,所述表生成及调度单元,进一步包括:
遍历及判断子单元,用于根据所述计算结果遍历所述第一关系表中的各个任务,对任务先后执行顺序重新排序,判断出所述当前任务和所述紧后任务在所述第一关系表中排序靠前时,将所述当前任务和所述紧后任务确定为所述关键任务;
***及更新子单元,用于将所述当前任务和所述紧后任务***所述第二关系表,并从所述第一关系表中删除所述当前任务和所述紧后任务,同时更新所述第二关系表中的任务执行优先级;所述第二关系表包含各个任务中所述当前任务的任务编号,所述紧后任务的任务编号,和任务执行优先级;
在本发明实施例一实施方式中,所述表生成及调度单元,进一步还包括:
读取子单元,在通过所述遍历及判断子单元判断出所述第一关系表为空时,结束对所述第一关系表的遍历后,读取所述第二关系表;
优化处理子单元,用于对所述第二关系表的各个任务中当前任务和紧后任务按照所述任务执行优先级的顺序进行任务优化,以优先调度所述关键任务的执行处理。
以一个现实应用场景为例对本发明实施例阐述如下:
现有ETL方案和产品中,大多使用分布式的架构和体系,通过并行增加服务器或者并行执行任务来提高ETL的处理速度,很少通过考虑ETL任务自身的优化来缩短运行时间,这是会增加硬件成本和硬件开销的。对于这个问题,本应用场景采用本发明实施例,是设计一种软件算法,即:利用ETL中各个节点的位置关系和任务依赖,绘制节点和任务相互关系的网络图,然后以执行时间为主要计算单元,找出ETL中的关键任务和关键的执行过程,通过优化关键任务和关键的执行过程来达到降低整个ETL任务族的执行时间的目的。也就是说,是将软件算法引入ETL的任务处理中,通过时间参数的计算,找出关键工作,针对关键工作进行优化,可以缩短整个任务的总时间,来达到提高ETL执行效率的目的。另外,由于是将软件算法纳入到一个动态处理的体系里,达到实时计算、持续优化的目的。
举例来说,所述节点可以指两个数据表(表一和表二),在表一和表二之间存在一种关联或交互等,即在表一和表二间建立一种任务,执行该任务,也就是说,ETL中各个节点间存在位置关系,至少任意两个节点间构成一个任务,形成任务依赖,所以可以称之为;每个任务的最小单元是节点,节点可以是接口或者数据库表,而在每个任务中还包括执行存储过程或者SQL语句的控制流。通过ETL调度的配置,可以建立整个ETL任务之间的相互关系。
应用场景一:
如图2所示为应用本发明实施例的一应用场景的ETL优化流程图,包括:
步骤201:建立任务之间的相互关系,根据任务间的相互关系构造任务之间的网络图。
这里,通过配置ETL调度任务,可以得到所有任务之间的相互关系。通过有向图标注出各个任务之间的执行顺序和相互依赖关系。
步骤202:计算各个任务的执行时间。
这里,时间的计算可以利用经验采用最可能时间的方式,或者利用三点时间估计法确定的方式来实现。
针对所述利用三点时间估计法确定的方式而言,a为任务最快可能完成时间,m为任务最可能完成时间,b为任务最慢可能完成时间,利用这三个时间来确定每个任务的期望估计时间可以是
这里需要指出的是,本步骤得到的时间是一个由起点和终点所构成时间段的概念,而后续步骤203得到的时间是时间点的概念,该时间点可以是起点,可以是终端,也可以是位于时间段内的一个具***置点。
步骤203:计算涉及任务的各个时间参数。
这里,一个任务(i,j)的最早可能开始时间用tES(i,j)表示,需要指出是,这个时间并不是任务(i,j)的执行时间,而是任务(i,j)开始运行的时间,依赖于所有跟节点i有关的,在节点i之前的任务都完成以后才能开始的时间,所以是取的所有i之前的任务(k,i)的最早开始时间和任务(k,i)的执行时间之和的最大值。最早完成时间用tEF(i,j)表示,所述tES(i,j)和所述tEF(i,j)通过以下公式(1)计算。每个任务开始前,其前面依赖的任务必须全部执行完成。
公式(1)中的i,j,k代表节点标号,节点标号从1到n,如果节点i,j之间存在任务就标注为tij,如果节点k,i之间存在任务就标注为tki,则所述tES(k,i)表示节点k,i之间存在任务(k,i)对应的最早可能开始时间,所述tES(i,j)表示节点i,j之间存在任务(i,j)对应的最早可能开始时间;tES(0,j)表示一个起始,就是一个初始化的意思,0不是实际存在的节点,是一个虚节点,表示所有任务在开始的时候都由一个起始节点触发,就是一个开始符,这个节点和后续实际节点组成的虚任务的最早开始时间都是0;t(i,j)就是任务(i,j)的执行完成时间,就是算的时间;
这里,一个任务的最晚开始时间用tLS(i,j)表示,最晚必须完成时间用tLF(i,j)表示,所述tLS(i,j)和所述tLF(i,j)通过以下公式(2)计算。
公式(2)中的i,j,k,n代表节点标号,节点标号从1到n,如果节点i,n之间存在任务就标注为tin,如果节点j,k之间存在任务就标注为tjk,则所述tLS(j,k)表示节点j,k之间存在任务(j,k)对应的最晚可能开始时间,所述tLS(i,j)表示节点i,j之间存在任务(i,j)对应的最晚可能开始时间;t(i,j)就是任务(i,j)的执行完成时间,就是算的时间;tLF(i,n)是任务(i,n)的最晚结束时间,tEF(i,n)就是任务(i,n)的最早结束时间,这个节点n已经是最后一个节点了,它和前面的节点i组成的任务(i,n)其实就是最后要执行的任务了,这个任务执行的时候前面所有的任务都已经执行完了,这样,这个任务(i,n)最早结束和最晚结束没有什么区别,则tLF(i,n)=tEF(i,n)表示的意思就是二者时间也相等的意思;tLS(i,j)表示任务(i,j)对应的最晚可能开始时间,它表示的任务(i,j)最晚必须开始的时间,是依赖于所有跟节点j后续相关的节点k,取的是任务(j,k)的最晚开始时间减去任务(i,j)的执行时间的最小值。
任务的总时差用R(i,j)表示,通过以下公式(3)计算,表示延迟任务开始的最大时间幅度,R(i,j)=tLF(i,j)-tEF(i,j) (3)
任务的单时差用r(i,j)表示,通过以下公式(4)计算,表示不影响后面的任务的最早开始时间的条件下,这个任务可以延迟开始的最大时间幅度;
r(i,j)=tES(j,k)-tEF(i,j) (4)
步骤204:利用以下如程序代码段P1所揭示的软件算法原理构成的预设规则动态扫描任务相关关系,找到关键任务和关键执行过程。
这里,针对所述软件算法原理而言,该原理包括:
首先,建立为每个节点i标号,从1到n,如果节点i,j之间存在任务就标注为tij,然后建立只有任务和其紧后任务的关系表task_relation,该表包含两个字段,一个是某任务编号,另一个是该任务的紧后任务编号,这个表里***所有的ETL先后关系。
然后,建立一个关键任务关系表kpi_task_relation,该表是含有三个字段,任务编号、紧后任务编号和优先级,这个表初始为空。
接着,通过遍历task_relation,根据网络计划的方法,找到关键任务,***到kpi_task_relation,并且设置优先级为1。
最后,从task_relation表中删除已经***kpi_task_relation的任务关系,重新遍历task_relation,同样将结果***kpi_task_relation,并且设置优先级为2.依次类推,直到task_relation只有一条记录,将这一条记录***kpi_task_relation,设置最低优先级。
步骤205:进行持续的任务优化。
这里,根据kpi_task_relation的优先级,依次对任务进行优化,优化完成后,重新开始遍历task_relation,生成新的kpi_task_relation表再次对任务进行优化,直到kpi_task_relation里优先级高的任务无优化的可能为止,就达到了使ETL执行效率整体优化提高的目的。
应用场景二:
如图3所示为应用本发明实施例的一应用场景的ETL优化流程图,包括:
步骤301、构造任务之间的网络图,计算各任务执行时间。
步骤302、建立只包含任务和紧后任务的task_relation表。
步骤303、遍历task_relation表。
步骤304、判断该任务和紧后任务是否为关键任务,如果是,则执行步骤305;否则,不予处理。
步骤305、将任务和紧后任务***kip_task_relation表,并更新优先级。
步骤306、将任务和紧后任务从task_relation表中删除。
步骤307、判断task_relation是否为空,如果是,执行步骤308,否则,转入执行步骤303。
步骤308、根据kip_task_relation表中任务和紧后任务的优先级顺序进行任务优化。
这里需要指出的是,执行完本步骤后,转入步骤302,以持续优化,重新建立task_relation表来达到持续优化的目的。
这里需要指出的是,应用场景一中步骤204所述涉及的软件算法,及应用场景二中步骤304用于查找该任务和紧后任务是否为关键任务的算法都是通过以下程序代码段P1实现,该程序代码段P1为整个ETL优化过程找到关键任务的程序代码:
综上所述,本发明实施例主要包括:通过任务之间的关系,采用程序,找到ETL中的关键任务和关键执行过程,可以有针对性的对关键任务进行优化,提高ETL执行效率。并且该程序还可以实现实时计算、持续优化任务的目的。
采用本发明实施例的有益效果为:本发明实施例中查询关键任务,进一步还包括查询关键任务的关键执行过程,进而根据查询结果进行优化的技术是通过软件算法实现,该算法是“找出关键工作,针对关键工作进行优化”,从而,可以缩短整个任务的执行总时间,从而达到提高ETL执行效率的目的;而且,本发明实施例无需要像现有技术一般,必须额外增加硬件来提升ETL执行效率,可见,采用本发明实施例也不会增加制造成本,仅仅针对ETL任务本身进行优化,并没有硬件的开销;另外,本发明实施例的技术不只是一次性优化,而是利用软件算法实现持续优化任务的目的。
本发明实施例所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。
相应的,本发明实施例还提供一种计算机存储介质,其中存储有计算机程序,该计算机程序用于执行本发明实施例的在ETL中优化任务处理的方法。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (11)
1.一种在ETL中优化任务处理的方法,其特征在于,所述方法包括:
根据ETL需调度的各个任务间的相互关系构造网络图,且所述网络图标识有各个任务的任务先后执行顺序,其中,根据ETL需调度的各个任务间的相互关系构造网络图,包括:
获取各个节点的位置,至少两个节点构成一个任务;
根据所述各个节点的位置对应的位置关系和任务依赖因素来建立所述ETL需调度的各个任务间的相互关系;
计算所述各个任务的执行时间段和/或所述执行时间段中涉及的具体时间点参数,得到用于标识各个任务时间的计算结果;
按照预设规则扫描所述网络图中的所述各个任务间的相互关系及所述任务先后执行顺序,以生成第一关系表;
根据所述计算结果对所述第一关系表中的任务先后执行顺序重新排序,得到包含关键任务的第二关系表,根据所述第二关系表优化调度所述关键任务的执行处理,其中,所述关键任务包括当前任务和所述当前任务的紧后任务。
2.根据权利要求1所述的方法,其特征在于,所述计算所述各个任务的执行时间段,包括:
获取第一时间数据,所述第一时间数据用于表征符合第一条件所达到的任务最快可能完成时间;
获取第二时间数据,所述第二时间数据用于表征符合第二条件所达到的任务最可能完成时间;
获取第三时间数据,所述第三时间数据用于表征符合第三条件所达到的任务最慢可能完成时间;
根据所述第一时间数据、所述第二时间数据和所述第三时间数据得到所述各个任务对应的期望时间数据,并将所述期望时间数据作为所述各个任务的执行时间段。
3.根据权利要求1所述的方法,其特征在于,所述按照预设规则扫描所述网络图中的所述各个任务间的相互关系及所述任务先后执行顺序,以生成第一关系表,包括:
所述预设规则为存在相互关系的各个任务中,在当前任务未完成时不允许所述当前任务后续的紧后任务开始执行;
提取存在相互关系的各个任务,得到所述当前任务和所述紧后任务;
按照所述任务先后执行顺序,建立包含所述当前任务和所述紧后任务的所述第一关系表;
所述第一关系表包含各个任务中所述当前任务的任务编号,和所述紧后任务的任务编号。
4.根据权利要求3所述的方法,其特征在于,根据所述计算结果对所述第一关系表中的任务先后执行顺序重新排序,得到包含关键任务的第二关系表,包括:
根据所述计算结果遍历所述第一关系表中的各个任务,对任务先后执行顺序重新排序,判断出所述当前任务和所述紧后任务在所述第一关系表中排序靠前时,将所述当前任务和所述紧后任务确定为所述关键任务;
将所述当前任务和所述紧后任务***所述第二关系表,并从所述第一关系表中删除所述当前任务和所述紧后任务,同时更新所述第二关系表中的任务执行优先级;
所述第二关系表包含各个任务中所述当前任务的任务编号,所述紧后任务的任务编号,和任务执行优先级。
5.根据权利要求4所述的方法,其特征在于,所述任务执行优先级不是固定不变的,是随着所述计算结果的变化重新排序后的动态调整结果。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第二关系表优选调度所述关键任务的执行处理,包括:
在判断出所述第一关系表为空时,结束对所述第一关系表的遍历后,读取所述第二关系表;
对所述第二关系表的各个任务中当前任务和紧后任务按照所述任务执行优先级的顺序进行任务优化,以优化调度所述关键任务的执行处理。
7.一种在ETL中优化任务处理的***,其特征在于,所述***包括:
构造单元,用于根据ETL需调度的各个任务间的相互关系构造网络图,且所述网络图标识有各个任务的任务先后执行顺序,其中,根据ETL需调度的各个任务间的相互关系构造网络图,包括:
获取各个节点的位置,至少两个节点构成一个任务;
根据所述各个节点的位置对应的位置关系和任务依赖因素来建立所述ETL需调度的各个任务间的相互关系;
计算单元,用于计算所述各个任务的执行时间段和/或所述执行时间段中涉及的具体时间点参数,得到用于标识各个任务时间的计算结果;
扫描单元,用于按照预设规则扫描所述网络图中的所述各个任务间的相互关系及所述任务先后执行顺序,以生成第一关系表;
表生成及调度单元,用于根据所述计算结果对所述第一关系表中的任务先后执行顺序重新排序,得到包含关键任务的第二关系表,根据所述第二关系表优化调度所述关键任务的执行处理,其中,所述关键任务包括当前任务和所述当前任务的紧后任务。
8.根据权利要求7所述的***,其特征在于,所述计算单元,进一步包括:
第一获取子单元,用于获取第一时间数据,所述第一时间数据用于表征符合第一条件所达到的任务最快可能完成时间;
第二获取子单元,用于获取第二时间数据,所述第二时间数据用于表征符合第二条件所达到的任务最可能完成时间;
第三获取子单元,用于获取第三时间数据,所述第三时间数据用于表征符合第三条件所达到的任务最慢可能完成时间;
运算子单元,用于根据所述第一时间数据、所述第二时间数据和所述第三时间数据得到所述各个任务对应的期望时间数据,并将所述期望时间数据作为所述各个任务的执行时间段。
9.根据权利要求7所述的***,其特征在于,所述扫描单元,进一步包括:
提取子单元,用于在所述预设规则为存在相互关系的各个任务中,在当前任务未完成时不允许所述当前任务后续的紧后任务开始执行的情况下,提取存在相互关系的各个任务,得到所述当前任务和所述紧后任务;
第一关系表建立子单元,用于按照所述任务先后执行顺序,建立包含所述当前任务和所述紧后任务的所述第一关系表;所述第一关系表包含各个任务中所述当前任务的任务编号,和所述紧后任务的任务编号。
10.根据权利要求9所述的***,其特征在于,所述表生成及调度单元,进一步包括:
遍历及判断子单元,用于根据所述计算结果遍历所述第一关系表中的各个任务,对任务先后执行顺序重新排序,判断出所述当前任务和所述紧后任务在所述第一关系表中排序靠前时,将所述当前任务和所述紧后任务确定为所述关键任务;
***及更新子单元,用于将所述当前任务和所述紧后任务***所述第二关系表,并从所述第一关系表中删除所述当前任务和所述紧后任务,同时更新所述第二关系表中的任务执行优先级;所述第二关系表包含各个任务中所述当前任务的任务编号,所述紧后任务的任务编号,和任务执行优先级。
11.根据权利要求10所述的***,其特征在于,所述表生成及调度单元,进一步还包括:
读取子单元,在通过所述遍历及判断子单元判断出所述第一关系表为空时,结束对所述第一关系表的遍历后,读取所述第二关系表;
优化处理子单元,用于对所述第二关系表的各个任务中当前任务和紧后任务按照所述任务执行优先级的顺序进行任务优化,以优先调度所述关键任务的执行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510025286.3A CN105868190B (zh) | 2015-01-19 | 2015-01-19 | 一种在etl中优化任务处理的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510025286.3A CN105868190B (zh) | 2015-01-19 | 2015-01-19 | 一种在etl中优化任务处理的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105868190A CN105868190A (zh) | 2016-08-17 |
CN105868190B true CN105868190B (zh) | 2019-08-13 |
Family
ID=56622906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510025286.3A Active CN105868190B (zh) | 2015-01-19 | 2015-01-19 | 一种在etl中优化任务处理的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105868190B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203633B (zh) * | 2017-05-31 | 2020-09-01 | 北京京东尚科信息技术有限公司 | 数据表推数处理方法、装置及电子设备 |
CN110321107A (zh) * | 2018-03-30 | 2019-10-11 | 优酷网络技术(北京)有限公司 | 数据处理模块的生成方法和服务器 |
CN108509603B (zh) * | 2018-04-02 | 2019-01-29 | 焦点科技股份有限公司 | 一种数据仓库的自适应动态调度方法及*** |
CN109344239A (zh) * | 2018-09-20 | 2019-02-15 | 四川昆仑智汇数据科技有限公司 | 一种基于时序特征的业务过程模型查询方法及查询*** |
CN109582448B (zh) * | 2018-10-17 | 2021-03-16 | 中国电子科技集团公司第二十八研究所 | 一种面向关键度和时效性的边缘计算任务调度方法 |
CN111461356B (zh) * | 2019-01-03 | 2023-09-01 | 顺丰科技有限公司 | 资源管理方法、装置、设备及其存储介质 |
CN109857818B (zh) * | 2019-02-03 | 2021-09-14 | 北京字节跳动网络技术有限公司 | 确定生产关系的方法、装置、存储介质及电子设备 |
CN109902117B (zh) * | 2019-02-19 | 2021-07-06 | 新华三大数据技术有限公司 | 业务***分析方法和装置 |
US11487776B2 (en) | 2020-02-26 | 2022-11-01 | International Business Machines Corporation | Managing extract-transform-load operations |
CN112115191B (zh) * | 2020-09-22 | 2022-02-15 | 南京北斗创新应用科技研究院有限公司 | 一种大数据etl模型执行的分支优化方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7941397B2 (en) * | 2004-02-25 | 2011-05-10 | International Business Machines Corporation | Dynamically capturing data warehouse population activities for analysis, archival, and mining |
CN103034554A (zh) * | 2012-12-30 | 2013-04-10 | 焦点科技股份有限公司 | 一种纠错重启以及自动判断启动的etl调度***及方法 |
CN103530742A (zh) * | 2013-10-28 | 2014-01-22 | 金蝶软件(中国)有限公司 | 提高排程运算速度的方法及装置 |
CN104252381A (zh) * | 2013-06-30 | 2014-12-31 | 北京百度网讯科技有限公司 | 一种用于调度etl任务的方法与设备 |
-
2015
- 2015-01-19 CN CN201510025286.3A patent/CN105868190B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7941397B2 (en) * | 2004-02-25 | 2011-05-10 | International Business Machines Corporation | Dynamically capturing data warehouse population activities for analysis, archival, and mining |
CN103034554A (zh) * | 2012-12-30 | 2013-04-10 | 焦点科技股份有限公司 | 一种纠错重启以及自动判断启动的etl调度***及方法 |
CN104252381A (zh) * | 2013-06-30 | 2014-12-31 | 北京百度网讯科技有限公司 | 一种用于调度etl任务的方法与设备 |
CN103530742A (zh) * | 2013-10-28 | 2014-01-22 | 金蝶软件(中国)有限公司 | 提高排程运算速度的方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于MapReduce的分布式ETL调度优化方法;宋杰等;《指挥信息***与技术》;20130430;第17-20页 |
Also Published As
Publication number | Publication date |
---|---|
CN105868190A (zh) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105868190B (zh) | 一种在etl中优化任务处理的方法及*** | |
CN105095484B (zh) | 一种数据拉链方法 | |
CN109117429B (zh) | 数据库查询方法、装置和电子设备 | |
CN105652833B (zh) | 基于双向智能搜索的制造企业车间调度优化方法 | |
JP7098327B2 (ja) | 情報処理システム、関数作成方法および関数作成プログラム | |
CN108009642A (zh) | 分布式机器学习方法和*** | |
CN106487569B (zh) | 一种业务消息处理方法及装置 | |
CN110910237B (zh) | 区块链中的数据处理方法、装置及智能终端、存储介质 | |
CN106648839A (zh) | 数据处理的方法和装置 | |
CN106021296B (zh) | 核心银行***批量作业路径的检测方法及装置 | |
JP5678691B2 (ja) | 検索制御装置、検索制御プログラムおよび検索制御方法 | |
CN107463555A (zh) | 删除中间层数据的方法、***和装置 | |
US20160125095A1 (en) | Lightweight temporal graph management engine | |
CN106250501A (zh) | 报表处理方法及报表*** | |
CN105468726B (zh) | 基于本地计算和分布式计算的数据计算方法及*** | |
CN116737511A (zh) | 基于图的调度作业监控方法及装置 | |
KR101761177B1 (ko) | 상위 k 중요 패턴 마이닝 방법, 이를 수행하는 장치 및 이를 저장하는 기록매체 | |
CN108021688B (zh) | 一种数据处理方法及装置 | |
CN111144659A (zh) | 物流调度方法、装置、计算机设备及存储介质 | |
CN106326410A (zh) | 一种数据查询方法及装置 | |
CN111107493B (zh) | 一种移动用户位置预测方法与*** | |
CN104598567A (zh) | 一种基于Hadoop MapReduce编程框架的数据统计排重的方法 | |
JP5981382B2 (ja) | 部分木併合装置、部分木併合方法および部分木併合プログラム | |
WO2016106549A1 (en) | Distributed sequential pattern mining (spm) using static task distribution strategy | |
CN105550765B (zh) | 一种路网距离计算中的代表元选取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |