发明名称 一种纠错重启以及自动判断启动的ETL调度系统及方法
摘要 本发明公开了一种纠错重启以及自动判断启动的ETL调度方法及系统,本发明的系统结构包括业务系统数据库服务器、数据仓库服务器、ETL调度监控服务器、ETL调度平台服务器,本发明的方法是将数据仓库ETL任务分为若干主题任务,每个主题任务包含若干子任务,按预设执行顺序配置信息以及前置关联子任务成功执行完成时间自动判断,执行后续子任务,当子任务执行发生异常后,根据子任务关联关系停止后续关联子任务的执行,并记录异常子任务,以多次自动重启的方式,只对异常子任务及相关联后续子任务进行处理;本发明解决ETL任务调度中由于前置子任务出错时而后续子任务依然执行的问题,提高任务执行效率,减少人工干预,减少运行损耗。
申请公布号 CN103034554B 申请公布日期 2015.11.18
申请号 CN201210585144.9 申请日期 2012.12.30
申请人 焦点科技股份有限公司 发明人 何昌桃;黄建鹏;徐晓冬;陈静
分类号 G06F11/07(2006.01)I;G06F9/48(2006.01)I 主分类号 G06F11/07(2006.01)I
代理机构 南京理工大学专利中心 32203 代理人 朱显国
主权项 一种纠错重启以及自动判断启动的ETL调度方法,其特征在于,纠错重启以及自动判断启动的ETL调度方法的装置包括业务系统数据库服务器、数据仓库服务器、ETL调度监控服务器、ETL调度平台服务器;数据仓库服务器包括任务配置存储器、数据仓库数据存储器、ETL任务处理器、执行记录存储器,ETL任务处理器分别与数据仓库数据存储器和执行记录存储器相连;所述的业务系统数据库服务器与数据仓库服务器的ETL任务处理器相连,数据仓库服务器的ETL调度监控服务器包括任务执行监控处理器、任务异常信息存储器、异常信息发送器,任务异常信息存储器分别与任务执行监控处理器和异常信息发送器相连;ETL调度平台服务器包括启动判断处理器、任务启动处理器,启动判断处理器与任务启动处理器相连;其中,数据仓库服务器的ETL任务处理器分别与业务系统数据库服务器和ETL调度平台服务器的任务启动处理器相连,ETL调度平台服务器的启动判断处理器分别与数据仓库服务器的任务配置存储器、执行记录存储器、以及ETL调度监控服务器的异常信息发送器相连,数据仓库服务器的执行记录存储器与ETL调度监控服务器的任务执行监控处理器相连,所述的启动判断处理器包括任务配置信息抽取单元、配置信息处理单元、任务执行信息抽取单元、任务执行标志计算单元、任务标志发送单元,其中配置信息处理单元与任务配置信息抽取单元、任务执行信息抽取单元、任务执行标志计算单元相连,任务执行标志计算单元分别与配置信息处理单元、任务执行信息抽取单元、任务标志发送单元相连;纠错重启以及自动判断启动的ETL调度方法包括以下步骤:步骤一:安排任务、子任务的执行顺序,配置子任务之间的关联关系,把任务执行的先后顺序,任务包含的子任务,子任务执行的先后顺序,子任务之间的关系保存在数据仓库服务器的任务配置存储器中,且每个子任务对应数据仓库中的一张表,根据业务需要来安排任务在执行时间上的先后顺序,安排任务所包含的子任务的执行顺序时,子任务采用以下原则进行排序:(1)当一个子任务与其它子任务之间具有关联关系时,必须在一个或者若干个前置子任务成功执行之后才能执行该子任务;(2)在此基础上,按照子任务的重要程度进行排序,对业务影响较大的子任务优先执行;(3)最后根据子任务执行的时间长度进行排序,执行时间较短的子任务优先执行;步骤二:由启动判断处理器从任务配置存储器读取待执行子任务及其前置子任务信息;由启动判断处理器从执行记录存储器中读取待执行子任务及其前置子任务最近一次成功执行的结束时间;根据这些信息,通过启动判断处理器的计算,得出待执行子任务的执行标志,待执行子任务执行标志生成流程如下:(1)通过任务配置信息抽取单元,从任务配置存储器获取任务配置信息,通过配置信息处理单元获取当前待执行的子任务及其前置子任务的信息,将这些信息发送到任务执行标志计算单元;(2)任务执行信息抽取单元通过配置信息处理单元获取当前待执行的子任务及其前置子任务的信息,再从执行记录存储器获取当前待执行的子任务及其前置子任务最近一次成功执行的结束时间;若最近一次成功执行的结束时间不存在,则表明当前子任务是第一次执行,直接得出“可执行”标志;(3)任务执行标志计算单元计算出待执行子任务所对应的所有前置子任务中最近一次成功执行的结束时间中的最早值,将这个最早值与待执行子任务的最后一次成功执行结束时间进行对比,对比方法如下:这个最早值若晚于待执行子任务的最后一次成功执行结束时间,则表明待执行子任务可以执行,返回“可执行”标志;这个最早值若早于待执行子任务的最后一次成功执行结束时间,则表明待执行子任务的前置子任务中存在着执行异常的情况,返回“不可执行”标志;步骤三:将启动判断处理器中任务标志发送单元的执行标志结果发送到任务启动处理器;任务启动处理器分以下两种情况:若任务启动处理器获取“可执行”标志后,将启动指令发送至数据仓库服务器的ETL任务处理器中,继续执行步骤四;若任务启动处理器获取“不可执行”标志后,不进行动作,跳至步骤二;步骤四:ETL任务处理器获取启动指令开始执行相应的子任务;若ETL任务处理器执行相应的子任务未发生异常,继续执行步骤五;若ETL任务处理器执行相应的子任务发生异常而被终止,直接跳到步骤八;步骤五:执行记录存储器在子任务开始执行时,记录该子任务的名称;开始时间,把子任务设置为“fail”状态,表示此任务还未成功完成,执行记录存储器在子任务成功执行结束时,记录子任务结束时间,以及更新数据量等信息,把此任务设置为“success”状态,表示此任务成功完成;步骤六:任务执行监控处理器读取执行记录存储器中的子任务执行情况信息,以便于系统管理员监控;步骤七:如果任务配置存储器中所有任务还未全部执行,则跳至步骤二;如果任务配置存储器中所有任务都已执行,则跳至步骤十三;步骤八:执行记录存储器记录该子任务的状态信息,包括开始执行时间、异常终止时间、运行状态等;步骤九:任务执行监控处理器从执行记录存储器中获取任务执行情况信息,并把该异常子任务的信息放置到任务异常信息存储器中保存,同时对这个异常子任务信息的保存次数增加一次;步骤十:由于前置任务发生异常,将不执行与其具有关联关系的后续子任务,跳至步骤七;步骤十一:异常信息发送器依照执行的先后顺序从任务异常信息存储器中读取发生异常问题的子任务信息,并把它发送给启动判断处理器;步骤十二:启动判断处理器从任务配置存储器中读取这个异常子任务的前置子任务,如果这个异常子任务不存在前置子任务,那么发送“可执行”指令给任务启动处理器;如果这个异常子任务存在前置子任务,则需要从执行记录存储器读取这个前置子任务的执行状态,如果判断这个前置子任务的执行状态是成功的,那么启动判断处理器发送“可执行”指令给任务启动处理器;否则,启动判断处理器发送“不可执行”指令给任务启动处理器;步骤十三:任务启动处理器接收到“可执行”执行标志结果,将启动指令发送至数据仓库服务器的ETL任务处理器中;步骤十四:ETL任务处理器开始重新执行相应的异常子任务;步骤十五:执行记录存储器在此异常子任务开始执行时,记录此异常子任务的名称;开始时间,把此任务设置为“fail”状态,表示此子任务还未成功完成;执行记录存储器在此子任务成功执行结束时,记录此子任务结束时间,把此子任务设置为“success”状态,表示此子任务成功完成,以及更新数据量等信息;如果这个异常子任务在这次执行过程中还是发生了异常,则把这个异常子任务信息通过任务执行监控处理器仍然保存到任务异常信息存储器中,同时对这个异常子任务信息的保存次数加1;步骤十六:这个异常子任务成功执行后,启动判断处理器从任务配置存储器中读取与这个子任务有关联关系的后续子任务,由于这个子任务已经被成功执行,那么计算后续子任务得到“可执行”的执行标志结果,把“可执行”的执行标志结果传递给任务启动处理器,进而通过ETL任务处理器执行这些后续子任务;如果这些后续子任务在执行过程中发生异常,则把异常子任务信息通过任务执行监控处理器仍然保存到任务异常信息存储器中,同时对此异常子任务信息的保存次数增加1;步骤十七:当这个异常子任务所关联的所有后续任务都执行后,启动判断处理器接收异常信息发送器发送的异常子任务,开始处理新的异常子任务;步骤十八:当所有的异常子任务都处理后,异常信息发送器开始把仍存在的异常子任务信息发送给启动判断处理器,开始新一轮处理过程;步骤十九:如果某个异常子任务经过3轮处理后还是发生异常,那么对这个异常子任务不再执行,把这个异常子任务的信息发送给系统管理员来进行紧急处理。
地址 210061 江苏省南京市高新区星火路软件大厦A座12楼