[发明专利]一种ETL流程调度的方法和装置有效
申请号: | 202010782562.1 | 申请日: | 2020-08-06 |
公开(公告)号: | CN112148442B | 公开(公告)日: | 2023-07-21 |
发明(设计)人: | 梅纲;高东升;黄海明;陈琦 | 申请(专利权)人: | 武汉达梦数据库股份有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F16/25 |
代理公司: | 深圳市六加知识产权代理有限公司 44372 | 代理人: | 向彬 |
地址: | 430000 湖北省武汉市东湖新技术开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 etl 流程 调度 方法 装置 | ||
本发明涉及数据处理领域,特别是涉及一种ETL流程调度的方法和装置。主要包括:创建延迟队列;将需要定时执行的调度任务封装为调度元素,放入延迟队列中,调度元素包括调度时间、流程模型对象和调度模型对象;到达调度元素的调度时间时,从延迟队列中取出调度元素,执行调度元素的流程模型对象;根据调度元素的调度模型对象类型,在预设时间节点计算调度元素的调度时间,若下一次调度时间为有效时间,将调度元素的调度时间修改为下一次调度时间并放回延迟队列,以便于进行下一次调度。本发明通过延迟队列以及流程调度模型对象列表,能够很方便有效地管理流程周期性调度,确保流程调度运行的及时性及准确无误。
技术领域
本发明涉及数据处理领域,特别是涉及一种ETL流程调度的方法和装置。
背景技术
使用ETL进行数据处理、构建数据仓库时,异构数据源的抽取、清洗转换,加载的具体流程一般通过流程设计器来配置完成,并在服务端后台周期性调度执行。
现有的ETL工具中,一般使用编程语言自带的定时器Timer机制来管理流程的周期性调度,Timer对需要周期调度的流程模型对象进行间隔时间的计时,并在达到预定间隔时间后通知系统开始执行流程模型对象。但是, Timer基本处理模型是单线程调度的任务队列模型,当某个任务执行时间较长,会影响整个任务执行的实时性。同时,Timer任务如果抛出异常会导致整个Timer线程取消,无法再进行任务的调度。另外,还存在无法对任务队列中的任务流程模型对象进行查询和分析,无法动态调整有效的流程调度模型对象列表供流程对象周期性调度使用等问题。
鉴于此,如何克服该现有技术所存在的缺陷,避免使用Timer进行调度时存在的问题,是本技术领域待解决的问题。
发明内容
针对现有技术的以上缺陷或改进需求,本发明解决了使用Timer调度可能引起的调度时间间隔错误、调度实时性不够的问题。
进一步的,还解决了ETL调度中流程模型对象和调度模型对象动态变化引起的有效的流程调度模型对象需同步变化的问题,无法对流程调度模型对象进行查询的问题,以及无法处理异常的问题。
本发明实施例采用如下技术方案:
第一方面,本发明提供了一种ETL流程调度的方法,具体为:创建延迟队列;将需要定时执行的调度任务封装为调度元素,放入延迟队列中,调度元素包括调度时间、流程模型对象和调度模型对象;到达调度元素的调度时间时,从延迟队列中取出调度元素,执行调度元素的流程模型对象;根据调度元素的调度模型对象类型,在预设时间节点计算调度元素的调度时间,若下一次调度时间为有效时间,将调度元素的调度时间修改为下一次调度时间并放回延迟队列,以便于进行下一次调度。
优选的,在预设时间节点计算调度元素的调度时间,具体包括:若调度元素的调度模型对象类型为固定时间点或每间隔时间,以当前调度时间为基准计算下一次调度的调度时间;若调度元素的调度模型对象类型为每隔间隔时间,等待流程模型对象执行完成,当流程模型对象执行完成时,以流程模型对象执行完成的时间为基准计算下一调度时间。
优选的,还包括流程调度模型列表和先前流程调度模型列表;当系统调度任务发生变化时,根据流程调度模型列表和先前流程调度模型列表对延迟队列中相应的调度元素进行修改;将调度元素的调度时间修改为下一次调度时间并放回延迟队列前,判断需放回的调度元素是否存在于流程调度模型列表中;若调度元素所对应的流程调度模型对象存在于流程调度模型列表中,将调度元素放回延迟队列中;若调度元素所对应的流程调度模型对象不存在于流程调度模型列表中,调度元素不放回延迟队列中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉达梦数据库股份有限公司,未经武汉达梦数据库股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010782562.1/2.html,转载请声明来源钻瓜专利网。