CN108629052A - Kettle任务调度方法、系统、计算机设备和存储介质 - Google Patents
Kettle任务调度方法、系统、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN108629052A CN108629052A CN201810487074.0A CN201810487074A CN108629052A CN 108629052 A CN108629052 A CN 108629052A CN 201810487074 A CN201810487074 A CN 201810487074A CN 108629052 A CN108629052 A CN 108629052A
- Authority
- CN
- China
- Prior art keywords
- parameter
- kettle
- database
- item
- tasks
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种Kettle任务调度方法、系统、计算机设备和存储介质,其中所述方法包括:创建数据库;启动Kettle,创建数据库资源库;从数据文件获取参数项,所述参数项包括参数值和参数前缀,根据所述参数值和参数前缀进行数据拼接;使用Python作为脚本语言进行自动化配置;对所述Kettle任务的完成状态设置标识,用于标记所述Kettle任务在所述数据库中的完成状态;匹配对应的Paramiko包,所述Paramiko包从服务器上提取日志;判断日志所需的Paramiko包是否空闲,如被占用,则放置于等待队列中,如空闲,则启动Paramiko包将日志放置于调度信息配置库中,存储于调度信息配置库中的日志通过Web网页进行实时查询和日志管理。本发明实现个性化定制参数,满足多种场景需求,提高任务调度的效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种Kettle任务调度方法、系统、计算机设备和存储介质。
背景技术
Kettle是一款开源的ETL工具,采用纯Java进行编写,可以在Window、 Linux、Unix上运行,其数据抽取高效稳定,能够允许管理来自不同数据库中的数据。Kettle蕴含两种脚本文件,即transformation和job,其中transformation用来完成针对数据的基础转换,job则用来完成控制整个工作流。任务调度则是任务分配和调度系统的统称,属于组合优化问题,主要分为静态分配策略和动态分配策略,静态调度的自适应性、可伸缩性等较差,动态适应了应用程序可变化、可伸缩等特点。现有的Kettle在进行任务调度时,主要是通过固定的SHELL接口来进行,此种调度方式虽能在一定程度上能够实现 Kettle的任务调度,但是仍存在一些弊端,其弊端具体如下:
1、Kettle在进行任务调度时,主要通过固定的shell接口进行调度,shell 接口进行支持固定的参数个数和固定的参数名称;
2、参数数量和参数名称的固定化,限制了参数开发、且无法满足多种开发场景的需求和个性化定制的需求;
3、在实际运行环境中,参数数量和参数名称的固定哈,无法实现LINKDO 等各类调度平台的产品化和对外推广;
4、Kettle在投入生产环境进行使用时,动辄需要管理上百或者几百个job,造成管理难度大。
发明内容
基于此,有必要针对现有Kettle任务调度的弊端,提供一种Kettle任务调度方法、系统、计算机设备和存储介质。
一种Kettle任务调度方法,所述方法包括:
创建数据库;
启动Kettle,创建数据库资源库,指向数据库,所述Kettle是一种数据库工具,用于管理来自不同数据库中的数据;
从数据库的数据文件获取参数项,所述参数项包括参数值和参数前缀,根据所述参数值和参数前缀进行数据拼接,生成参数列表;
使用Python作为脚本语言进行自动化配置,所述Python包括Paramiko包;
根据所述参数列表,执行Kettle任务,对所述Kettle任务的完成状态设置标识,用于标记所述Kettle任务在所述数据库中的完成状态;
Kettle触发Python调度进程,匹配对应的Paramiko包,所述Paramiko包从服务器上提取日志;判断日志所需的Paramiko包是否空闲,如被占用,则放置于等待队列中,如空闲,则启动Paramiko包将日志放置于调度信息配置库中,存储于调度信息配置库中的日志通过Web网页进行实时查询和日志管理。
在其中一个实施例中,所述启动Kettle,创建数据库资源库,指向数据库,所述Kettle是一种数据库工具,用于管理来自不同数据库中的数据包括:
创建数据库资源库,在所述资源库中设置参数模板表和参数路由表;
根据参数模板表对调度信息进行定义,获取Kettle调度任务的参数项信息,所述Kettle任务包含时间和源数据;
根据参数路由表,配置参数项下所需的参数信息,完成对Kettle任务调度参数信息的配置。
在其中一个实施例中,所述从数据库的数据文件获取参数项,所述参数项包括参数值和参数前缀,进一步包括:
数据库的数据文件根据Kettle下发的任务类型循环筛选参数路由表中的每一个参数项,获取与所述任务类型相关的参数项;
根据所述参数项,从所述参数路由表中获取每个参数项下包含的参数值以及每个参数项的前缀。
在其中一个实施例中,所述根据所述参数列表,执行Kettle任务进一步包括:
利用Python中的Deamon程序轮询满足调度条件的Kettle任务,根据所述参数列表,执行Kettle任务。
在其中一个实施例中,所述标识包括文字标识和符号标识。
一种Kettle任务调度系统,所述Kettle任务调度系统包括:
创建单元,用于创建数据库;
启动单元,用于启动Kettle,创建数据库资源库,指向数据库,所述Kettle 是一种数据库工具,用于管理来自不同数据库中的数据;
获取单元,用于从数据库的数据文件获取参数项,所述参数项包括参数值和参数前缀,根据所述参数值和参数前缀进行数据拼接,生成参数列表;
配置单元,用于使用Python作为脚本语言进行自动化配置,所述Python 包括Paramiko包;
设置单元,用于根据所述参数列表,执行Kettle任务,对所述Kettle任务的完成状态设置标识,用于标记所述Kettle任务在所述数据库中的完成状态;
判断单元,用于Kettle触发Python调度进程,匹配对应的Paramiko包,所述Paramiko包从服务器上提取日志;判断日志所需的Paramiko包是否空闲,如被占用,则放置于等待队列中,如空闲,则启动Paramiko包将日志放置于调度信息配置库中,存储于调度信息配置库中的日志通过Web网页进行实时查询和日志管理。
在其中一个实施例中,所述启动单元还包括:
创建模块,用于创建数据库资源库,在所述资源库中设置参数模板表和参数路由表;
获取模块,用于根据参数模板表对调度信息进行定义,获取Kettle调度任务的参数项信息,所述Kettle任务包含时间和源数据;
配置模块,用于根据参数路由表,配置参数项下所需的参数信息,完成对 Kettle任务调度参数信息的配置。
在其中一个实施例中,所述获取单元还包括:
筛选模块,用于数据库的数据文件根据Kettle下发的任务类型循环筛选参数路由表中的每一个参数项,获取与所述任务类型相关的参数项;
获取模块,用于根据所述参数项,从所述参数路由表中获取每个参数项下包含的参数值以及每个参数项的前缀。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述方法的步骤。
一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述方法的步骤。
上述Kettle任务调度方法、系统、计算机设备和存储介质,通过创建数据库,启动Kettle,创建数据库资源库,指向数据库,所述Kettle是一种数据仓库工具,用于管理来自不同数据库中的数据,从数据库的数据文件获取参数项,所述参数项包括参数值和参数前缀,根据所述参数值和参数前缀进行数据拼接,生成参数列表,使用Python作为脚本语言进行自动化配置,所述Python包括 Paramiko包,根据所述参数列表,执行Kettle任务,对所述Kettle任务的完成状态设置标识,用于标记所述Kettle任务在所述数据库中的完成状态,Kettle 触发Python调度进程,匹配对应的Paramiko包,所述Paramiko包从服务器上提取日志;判断日志所需的Paramiko包是否空闲,如被占用,则放置于等待队列中,如空闲,则启动Paramiko包将日志放置于调度信息配置库中,存储于调度信息配置库中的日志通过Web网页进行实时查询和日志管理,实现个性化定制参数,满足多种场景需求,提高任务调度的效率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
图1为一个实施例中Kettle任务调度方法的流程图;
图2为一个实施例中启动Kettle创建数据库资源库方法的流程图;
图3为一个实施例中从数据库的数据文件获取参数项方法的流程图;
图4为一个实施例中Kettle任务调度系统的结构框图;
图5为一个实施例中启动单元的结构框图;
图6为一个实施例中获取单元的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
作为一个较好的实施例,如图1所示,一种Kettle任务调度方法,所述 Kettle任务调度方法包括以下步骤:
步骤S101,创建数据库;
配置Kettle调度任务的参数信息,选定一调度平台,在所述调度平台上创建数据库,在所述数据库中设置参数模板表和参数路由表,参数模板表用来对基本调度信息进行定义,获取Kettle调度任务的基本调度信息,参数路由表用来对基本调度信息进行定义,配置参数项下所需的参数信息,完成对Kettle任务调度的参数信息的配置,根据Kettle调度任务的需求来配置Kettle调度任务的基本调度信息,根据参数模板表对基本调度信息进行定义,获取Kettle调度任务的参数项信息,根据参数路由表,配置参数项下所需的参数信息,完成对Kettle任务调度的参数信息的配置。
步骤S102,启动Kettle,创建数据库资源库,指向数据库,Kettle是一种数据仓库工具,用于管理来自不同数据库中的数据;
根据Kettle任务需求来配置Kettle基本调度信息,启动Kettle任务,所述Kettle任务中包含有其任务调度的需求,根据前述需求即可配置Kettle的基本调度信息。例如,Kettle任务包含有“时间”、“源数据”等要求,根据时间和源数据,即可将其配置为对应的Kettle基本调度信息,分别为“时间参数”和“源数据库”。根据参数模板表对基本调度信息进行定义,获取Kettle调度任务的参数项信息,例如,基本调度信息为“时间参数”和“源数据库”,根据“时间参数”和“源数据库”获取对应的参数项信息,分别为“inc_time”和“target_db”。根据参数路由表,配置参数项下所需的参数信息,完成对Kettle 任务调度的参数信息的配置;例如,参数项为“inc_time”,根据“inc_time”即可知晓“inc_time”包含两个项目类别,分别为“inc_start”和“inc_end”。调度平台包括linkdo、zookeeper,基本调度信息包括任务名称、程序名称、调度时间、调度频度和所属调度服务器,数据库采用Oracle,参数信息包括时间、源、目标数据库等。
步骤S103,从数据库的数据文件获取参数项,参数项包括参数值和参数前缀,根据参数值和参数前缀进行数据拼接,生成参数列表;
Kettle下发任务以生成参数列表;根据前述Kettle下发的任务,生成一条可运行的任务;数据库会根据Kettle下发的任务类型来循环筛选前述参数路由表中的每一个参数项,以获取与所述任务类型相关的参数项;根据获取的参数项去所述参数路由表中获取每个参数项下包含的参数值,以及每个参数项的前缀;根据获取的参数值和参数前缀进行数据拼接,以生成参数列表。
步骤S104,使用Python作为脚本语言进行自动化配置,Python包括 Paramiko包;
部署python程序并执行任务;选定一支持python程序运行的操作系统,在所述操作系统上安装好Python程序,所述Python程序中包含有Python Paramiko包以及其他需要的包。
步骤S105,根据参数列表,执行Kettle任务,对Kettle任务的完成状态设置标识,用于标记Kettle任务在数据库中的完成状态;
利用Python程序中的Deamon程序轮询满足调度条件的Kettle任务,根据前述参数列表,执行所述Kettle任务;对所述Kettle任务的完成状态设置一标识,用于标记所述Kettle任务在所述数据库中的完成状态。
步骤S106,Kettle触发Python调度进程,匹配对应的Paramiko包,Paramiko 包从服务器上提取日志;判断日志所需的Paramiko包是否空闲,如被占用,则放置于等待队列中,如空闲,则启动Paramiko包将日志放置于调度信息配置库中,存储于调度信息配置库中的日志通过Web网页进行实时查询和日志管理。
选定一组配置相同的Kettle服务器和与所述Kettle服务器相对应的 Python程序,所述Kettle服务器和所述Python程序均采用集群的方式进行部署,所述Kettle中触发Python程序触发调度进程,日志将会通过算法找到与 Python程序相对应的Paramiko包,所述Paramiko包会从Kettle服务器上取出日志,日志取出之后,判断日志所需的Paramiko包是否空闲,如果被占用,则暂时放置在等待队列中,如果空闲,则启动Paramiko包将日志放置调度信息配置库中,存储在调度信息配置库中的日志,则可通过Web网页的形式进行实时查询和管理日志。
如图2所示,在一个实施例中,启动Kettle,创建数据库资源库,指向数据库,所述Kettle是一种数据仓库工具,用于管理来自不同数据库中的数据包括:
步骤S201,创建数据库资源库,在资源库中设置参数模板表和参数路由表;
在数据库中设置参数模板表和参数路由表,所述参数模板表是根据存储在数据库中的有关参数的历史记录,采用一个参数对应一条记录的方式而生成的表格,如下表1所示:
表1
所述参数路由表包含有每个参数其有多少个项目以及每个项下信息的获取路径,所述参数路由表如下表2所示:
TEMPLET_NAME | PARAM_ITEM | FIELD_KEY | TABLE_NAME | PARAM_LIST_NAME | |
1 | COM_KTL | inc_time | Inc_start | Etl_inc_time_config | Param:incStart |
2 | COM_KTL | inc_time | Inc_end | Etl_inc_time_config | Param:IncEnd |
3 | COM_KTL | Source_job | host | Etl_db_config | Param:Ssname |
4 | COM_KTL | Source_job | port | Etl_db_config | Param:sdbport |
5 | COM_KTL | Source_job | Db_sid | Etl_db_config | Param:Sdbname |
6 | COM_KTL | Source_job | Db_user | Etl_db_config | Param:Suser |
7 | COM_KTL | Source_job | Db_pwd | Etl_db_config | Param:Spwd |
8 | COM_KTL | Target_db | host | Etl_db_config | Param:Tsname |
9 | COM_KTL | Target_db | port | Etl_db_config | Param:Tdbport |
10 | COM_KTL | Target_db | Db_sid | Etl_db_config | Param:Tdbname |
11 | COM_KTL | Target_db | Db_user | Etl_db_config | Param:Tuser |
12 | COM_KTL | Target_db | Db_pwd | Etl_db_config | Param:Tpwd |
表2
步骤S202,根据参数模板表对调度信息进行定义,获取Kettle调度任务的参数项信息,Kettle任务包含时间和源数据;
根据Kettle任务需求来配置Kettle基本调度信息,启动Kettle任务,所述Kettle任务中包含有其任务调度的需求,根据前述需求即可配置Kettle的基本调度信息,例如,Kettle任务包含有“时间”、“源数据”等要求,根据时间和源数据,即可将其配置为对应的Kettle基本调度信息,分别为“时间参数”和“源数据库”。根据参数模板表对基本调度信息进行定义,获取Kettle调度任务的参数项信息;例如,基本调度信息为“时间参数”和“源数据库”,参考上述表1所展示的参数模板表,根据“时间参数”和“源数据库”获取对应的参数项信息,分别为“inc_time”和“target_db”。
步骤S203,根据参数路由表,配置参数项下所需的参数信息,完成对Kettle 任务调度参数信息的配置。
根据参数路由表,配置参数项下所需的参数信息,完成对Kettle任务调度的参数信息的配置;例如,参数项为“inc_time”,参考上述表2所展示的参数路由表,根据“inc_time”即可知晓“inc_time”包含两个项目类别,分别为“inc_start”和“inc_end”。上述步骤所述调度平台包括linkdo、zookeeper,基本调度信息包括任务名称、程序名称、调度时间、调度频度和所属调度服务器,数据库采用Oracle,参数信息包括时间、源、目标数据库等。
如图3所示,在一个实施例中,从数据库的数据文件获取参数项,参数项包括参数值和参数前缀,进一步包括:
步骤S301,数据库的数据文件根据Kettle下发的任务类型循环筛选参数路由表中的每一个参数项,获取与任务类型相关的参数项;
根据前述Kettle下发的任务,生成一条可运行的任务,数据库根据下发的任务类型来循环筛选前述参数路由表中的每一个参数项,获取与所述任务类型相关的参数项。
步骤S302,根据参数项,从参数路由表中获取每个参数项下包含的参数值以及每个参数项的前缀。
根据所述参数项,从所述参数路由表中获取每个参数项下包含的参数值以及每个参数项的前缀,根据获取的参数值和参数前缀进行数据拼接,生成满足所述Kettle任务要求的参数列表。
在一个实施例中,根据参数列表,执行Kettle任务进一步包括:
利用Python中的Deamon程序轮询满足调度条件的Kettle任务,根据参数列表,执行Kettle任务。
选定一支持python程序运行的操作系统,在所述操作系统上安装好python 程序,所述python程序中包含有python Paramiko包以及需要的包,在所述 python程序安装完成之后,也即python Paramiko包安装成功,利用python程序中的deamon程序轮询满足调度条件的Kettle任务,根据前述参数列表,执行所述Kettle任务。
在一个实施例中,标识包括文字标识和符号标识。
在Kettle任务执行完毕之后,则对其完成状态设置一标识,用于标记所述 Kettle任务在所述数据库中的完成状态,标识包括文字标识、符号标识。
如图4所示,在一个实施例中,提供一种Kettle任务调度系统,该调度系统包括:
创建单元,用于创建数据库;
启动单元,用于启动Kettle,创建数据库资源库,指向数据库,所述Kettle 是一种数据仓库工具,用于管理来自不同数据库中的数据;
获取单元,用于从数据库的数据文件获取参数项,所述参数项包括参数值和参数前缀,根据所述参数值和参数前缀进行数据拼接,生成参数列表;
配置单元,用于使用Python作为脚本语言进行自动化配置,所述Python 包括Paramiko包;
设置单元,用于根据所述参数列表,执行Kettle任务,对所述Kettle任务的完成状态设置标识,用于标记所述Kettle任务在所述数据库中的完成状态;
判断单元,用于Kettle触发Python调度进程,匹配对应的Paramiko包,所述Paramiko包从服务器上提取日志;判断日志所需的Paramiko包是否空闲,如被占用,则放置于等待队列中,如空闲,则启动Paramiko包将日志放置于调度信息配置库中,存储于调度信息配置库中的日志通过Web网页进行实时查询和日志管理。
如图5所示,在一个实施例中,所述启动单元还包括:
创建模块,用于创建数据库资源库,在所述资源库中设置参数模板表和参数路由表;
获取模块,用于根据参数模板表对调度信息进行定义,获取Kettle调度任务的参数项信息,所述Kettle任务包含时间和源数据;
配置模块,用于根据参数路由表,配置参数项下所需的参数信息,完成对 Kettle任务调度参数信息的配置。
如图6所示,在一个实施例中,,所述获取单元还包括:
筛选模块,用于数据库的数据文件根据Kettle下发的任务类型循环筛选参数路由表中的每一个参数项,获取与所述任务类型相关的参数项;
获取模块,用于根据所述参数项,从所述参数路由表中获取每个参数项下包含的参数值以及每个参数项的前缀。
在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行所述计算机程序时实现以下步骤:
创建数据库;启动Kettle,创建数据库资源库,指向数据库,所述Kettle 是一种数据仓库工具,用于管理来自不同数据库中的数据;
从数据库的数据文件获取参数项,所述参数项包括参数值和参数前缀,根据所述参数值和参数前缀进行数据拼接,生成参数列表;
使用Python作为脚本语言进行自动化配置,所述Python包括Paramiko包;
根据所述参数列表,执行Kettle任务,对所述Kettle任务的完成状态设置标识,用于标记所述Kettle任务在所述数据库中的完成状态;
Kettle触发Python调度进程,匹配对应的Paramiko包,所述Paramiko包从服务器上提取日志;判断日志所需的Paramiko包是否空闲,如被占用,则放置于等待队列中,如空闲,则启动Paramiko包将日志放置于调度信息配置库中,存储于调度信息配置库中的日志通过Web网页进行实时查询和日志管理。
在其中一个实施例中,所述启动Kettle,创建数据库资源库,指向数据库,所述Kettle是一种数据仓库工具,用于管理来自不同数据库中的数据包括:
创建数据库资源库,在所述资源库中设置参数模板表和参数路由表;
根据参数模板表对调度信息进行定义,获取Kettle调度任务的参数项信息,所述Kettle任务包含时间和源数据;
根据参数路由表,配置参数项下所需的参数信息,完成对Kettle任务调度参数信息的配置。
在其中一个实施例中,所述从数据库的数据文件获取参数项,所述参数项包括参数值和参数前缀,进一步包括:
数据库的数据文件根据Kettle下发的任务类型循环筛选参数路由表中的每一个参数项,获取与所述任务类型相关的参数项;
根据所述参数项,从所述参数路由表中获取每个参数项下包含的参数值以及每个参数项的前缀。
在其中一个实施例中,所述根据所述参数列表,执行Kettle任务进一步包括:
利用Python中的Deamon程序轮询满足调度条件的Kettle任务,根据所述参数列表,执行Kettle任务。
在其中一个实施例中,所述标识包括文字标识和符号标识。
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:
创建数据库;启动Kettle,创建数据库资源库,指向数据库,所述Kettle 是一种数据仓库工具,用于管理来自不同数据库中的数据;
从数据库的数据文件获取参数项,所述参数项包括参数值和参数前缀,根据所述参数值和参数前缀进行数据拼接,生成参数列表;
使用Python作为脚本语言进行自动化配置,所述Python包括Paramiko包;
根据所述参数列表,执行Kettle任务,对所述Kettle任务的完成状态设置标识,用于标记所述Kettle任务在所述数据库中的完成状态;
Kettle触发Python调度进程,匹配对应的Paramiko包,所述Paramiko包从服务器上提取日志;判断日志所需的Paramiko包是否空闲,如被占用,则放置于等待队列中,如空闲,则启动Paramiko包将日志放置于调度信息配置库中,存储于调度信息配置库中的日志通过Web网页进行实时查询和日志管理。
在其中一个实施例中,所述启动Kettle,创建数据库资源库,指向数据库,所述Kettle是一种数据仓库工具,用于管理来自不同数据库中的数据包括:
创建数据库资源库,在所述资源库中设置参数模板表和参数路由表;
根据参数模板表对调度信息进行定义,获取Kettle调度任务的参数项信息,所述Kettle任务包含时间和源数据;
根据参数路由表,配置参数项下所需的参数信息,完成对Kettle任务调度参数信息的配置。
在其中一个实施例中,所述从数据库的数据文件获取参数项,所述参数项包括参数值和参数前缀,进一步包括:
数据库的数据文件根据Kettle下发的任务类型循环筛选参数路由表中的每一个参数项,获取与所述任务类型相关的参数项;
根据所述参数项,从所述参数路由表中获取每个参数项下包含的参数值以及每个参数项的前缀。
在其中一个实施例中,所述根据所述参数列表,执行Kettle任务进一步包括:
利用Python中的Deamon程序轮询满足调度条件的Kettle任务,根据所述参数列表,执行Kettle任务。
在其中一个实施例中,所述标识包括文字标识和符号标识。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明一些示例性实施例,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种Kettle任务调度方法,其特征在于,包括以下步骤:
创建数据库;
启动Kettle,创建数据库资源库,指向数据库,所述Kettle是一种数据库工具,用于管理来自不同数据库中的数据;
从数据库的数据文件获取参数项,所述参数项包括参数值和参数前缀,根据所述参数值和参数前缀进行数据拼接,生成参数列表;
使用Python作为脚本语言进行自动化配置,所述Python包括Paramiko包;
根据所述参数列表,执行Kettle任务,对所述Kettle任务的完成状态设置标识,用于标记所述Kettle任务在所述数据库中的完成状态;
Kettle触发Python调度进程,匹配对应的Paramiko包,所述Paramiko包从服务器上提取日志;判断日志所需的Paramiko包是否空闲,如被占用,则放置于等待队列中,如空闲,则启动Paramiko包将日志放置于调度信息配置库中,存储于调度信息配置库中的日志通过Web网页进行实时查询和日志管理。
2.根据权利要求1所述的Kettle任务调度方法,其特征在于,所述启动Kettle,创建数据库资源库,指向数据库,所述Kettle是一种数据库工具,用于管理来自不同数据库中的数据包括:
创建数据库资源库,在所述资源库中设置参数模板表和参数路由表;
根据参数模板表对调度信息进行定义,获取Kettle调度任务的参数项信息,所述Kettle任务包含时间和源数据;
根据参数路由表,配置参数项下所需的参数信息,完成对Kettle任务调度参数信息的配置。
3.根据权利要求1所述的Kettle任务调度方法,其特征在于,所述从数据库的数据文件获取参数项,所述参数项包括参数值和参数前缀,包括:
数据库的数据文件根据Kettle下发的任务类型循环筛选参数路由表中的每一个参数项,获取与所述任务类型相关的参数项;
根据所述参数项,从所述参数路由表中获取每个参数项下包含的参数值以及每个参数项的前缀。
4.根据权利要求1所述的Kettle任务调度方法,其特征在于,所述根据所述参数列表,执行Kettle任务包括:
利用Python中的Deamon程序轮询满足调度条件的Kettle任务,根据所述参数列表,执行Kettle任务。
5.根据权利要求1所述的Kettle任务调度方法,其特征在于,所述标识包括文字标识和符号标识。
6.一种Kettle任务调度系统,其特征在于,所述Kettle任务调度系统包括:
创建单元,用于创建数据库;
启动单元,用于启动Kettle,创建数据库资源库,指向数据库,所述Kettle是一种数据库工具,用于管理来自不同数据库中的数据;
获取单元,用于从数据库的数据文件获取参数项,所述参数项包括参数值和参数前缀,根据所述参数值和参数前缀进行数据拼接,生成参数列表;
配置单元,用于使用Python作为脚本语言进行自动化配置,所述Python包括Paramiko包;
设置单元,用于根据所述参数列表,执行Kettle任务,对所述Kettle任务的完成状态设置标识,用于标记所述Kettle任务在所述数据库中的完成状态;
判断单元,用于Kettle触发Python调度进程,匹配对应的Paramiko包,所述Paramiko包从服务器上提取日志;判断日志所需的Paramiko包是否空闲,如被占用,则放置于等待队列中,如空闲,则启动Paramiko包将日志放置于调度信息配置库中,存储于调度信息配置库中的日志通过Web网页进行实时查询和日志管理。
7.根据权利要求6所述的任务调度系统,其特征在于,所述启动单元还包括:
创建模块,用于创建数据库资源库,在所述资源库中设置参数模板表和参数路由表;
获取模块,用于根据参数模板表对调度信息进行定义,获取Kettle调度任务的参数项信息,所述Kettle任务包含时间和源数据;
配置模块,用于根据参数路由表,配置参数项下所需的参数信息,完成对Kettle任务调度参数信息的配置。
8.根据权利要求6所述的任务调度系统,其特征在于,所述获取单元还包括:
筛选模块,用于数据库的数据文件根据Kettle下发的任务类型循环筛选参数路由表中的每一个参数项,获取与所述任务类型相关的参数项;
获取模块,用于根据所述参数项,从所述参数路由表中获取每个参数项下包含的参数值以及每个参数项的前缀。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至5中任一项所述方法的步骤。
10.一种存储有计算机可读指令的存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至5中任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810487074.0A CN108629052B (zh) | 2018-05-21 | 2018-05-21 | Kettle任务调度方法、系统、计算机设备和存储介质 |
PCT/CN2018/104358 WO2019223172A1 (zh) | 2018-05-21 | 2018-09-06 | Kettle任务调度方法、系统、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810487074.0A CN108629052B (zh) | 2018-05-21 | 2018-05-21 | Kettle任务调度方法、系统、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108629052A true CN108629052A (zh) | 2018-10-09 |
CN108629052B CN108629052B (zh) | 2023-06-02 |
Family
ID=63693762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810487074.0A Active CN108629052B (zh) | 2018-05-21 | 2018-05-21 | Kettle任务调度方法、系统、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108629052B (zh) |
WO (1) | WO2019223172A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110196876A (zh) * | 2019-06-05 | 2019-09-03 | 浪潮软件股份有限公司 | 一种基于Web管理和调度Kettle抽数工具的方法 |
CN111176856A (zh) * | 2018-11-09 | 2020-05-19 | 商派软件有限公司 | 一种智能控制消费脚本通道的方法 |
CN113297312A (zh) * | 2021-06-22 | 2021-08-24 | 中关村科学城城市大脑股份有限公司 | 一种基于bs和cs架构的数据etl构建方法和系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113204419B (zh) * | 2021-05-26 | 2024-06-14 | 深圳市领星网络科技有限公司 | 一种超大规模任务调度分发处理方法、系统及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120265726A1 (en) * | 2011-04-18 | 2012-10-18 | Infosys Limited | Automated data warehouse migration |
CN107193903A (zh) * | 2017-05-11 | 2017-09-22 | 上海斐讯数据通信技术有限公司 | 高效处理ip地址区域定位的方法和系统 |
CN107368503A (zh) * | 2016-05-13 | 2017-11-21 | 北京京东尚科信息技术有限公司 | 基于Kettle的数据同步方法和系统 |
CN107463589A (zh) * | 2016-08-24 | 2017-12-12 | 上海幸福九号网络科技有限公司 | 一种数据仓库系统及使用方法 |
CN107992552A (zh) * | 2017-11-28 | 2018-05-04 | 南京莱斯信息技术股份有限公司 | 一种数据交换平台及数据交换方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100280990A1 (en) * | 2009-04-30 | 2010-11-04 | Castellanos Maria G | Etl for process data warehouse |
CN106446144A (zh) * | 2016-09-21 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种基于kettle的大数据平台数据抽取和统计方法 |
CN107045538B (zh) * | 2017-02-07 | 2019-11-12 | 浪潮云信息技术有限公司 | 一种基于kettle的web端交换管理方法 |
-
2018
- 2018-05-21 CN CN201810487074.0A patent/CN108629052B/zh active Active
- 2018-09-06 WO PCT/CN2018/104358 patent/WO2019223172A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120265726A1 (en) * | 2011-04-18 | 2012-10-18 | Infosys Limited | Automated data warehouse migration |
CN107368503A (zh) * | 2016-05-13 | 2017-11-21 | 北京京东尚科信息技术有限公司 | 基于Kettle的数据同步方法和系统 |
CN107463589A (zh) * | 2016-08-24 | 2017-12-12 | 上海幸福九号网络科技有限公司 | 一种数据仓库系统及使用方法 |
CN107193903A (zh) * | 2017-05-11 | 2017-09-22 | 上海斐讯数据通信技术有限公司 | 高效处理ip地址区域定位的方法和系统 |
CN107992552A (zh) * | 2017-11-28 | 2018-05-04 | 南京莱斯信息技术股份有限公司 | 一种数据交换平台及数据交换方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176856A (zh) * | 2018-11-09 | 2020-05-19 | 商派软件有限公司 | 一种智能控制消费脚本通道的方法 |
CN110196876A (zh) * | 2019-06-05 | 2019-09-03 | 浪潮软件股份有限公司 | 一种基于Web管理和调度Kettle抽数工具的方法 |
CN113297312A (zh) * | 2021-06-22 | 2021-08-24 | 中关村科学城城市大脑股份有限公司 | 一种基于bs和cs架构的数据etl构建方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108629052B (zh) | 2023-06-02 |
WO2019223172A1 (zh) | 2019-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108629052A (zh) | Kettle任务调度方法、系统、计算机设备和存储介质 | |
US9800675B2 (en) | Methods for dynamically generating an application interface for a modeled entity and devices thereof | |
US9417926B2 (en) | Optimized multi-component co-allocation scheduling with advanced reservations for data transfers and distributed jobs | |
CN102739770B (zh) | 一种基于云计算的资源调度方法及系统 | |
KR20180027326A (ko) | 확장 가능한 멀티-스테이지 데이터 처리 시스템들에서의 효율적인 데이터 캐싱 관리 | |
CN105700948A (zh) | 一种用于在集群中调度计算任务的方法与设备 | |
US8468496B2 (en) | Flexible attribute management in workflow processing systems | |
CN102567838A (zh) | 一种协同开发系统及协同开发方法 | |
CN109614138A (zh) | 一种基于容器云的应用集成和发布方法及系统 | |
CN104850583A (zh) | 海量气候模式输出数据的分布式协同分析系统及方法 | |
CN102325061A (zh) | 网络监控方法、设备及系统 | |
CN112835714A (zh) | 云边环境中面向cpu异构集群的容器编排方法、系统及介质 | |
US20140040303A1 (en) | Enablement of Quasi Time Dependency in Organizational Hierarchies | |
US20170193409A1 (en) | Business resource modeling | |
KR102153259B1 (ko) | 데이터 도메인 추천 방법 및 추천된 도메인을 이용하여 통합 데이터 저장소 관리 시스템을 구축하는 방법 | |
EP2343658A1 (en) | Federation as a process | |
CN113836121B (zh) | 一种数据库控制方法及目标服务器 | |
CN113485894A (zh) | 一种数据采集方法、装置、设备及可读存储介质 | |
CN101488872B (zh) | 生物信息计算网格系统 | |
CN105590133B (zh) | 针对it系统运营维护的知识管理方法 | |
CN110389954A (zh) | 一种基于软件监控的表格自动生成方法及相关设备 | |
US20120303647A1 (en) | Method and system for implementing an on-demand scheduler | |
CN104572835A (zh) | 一种过程元模型构建方法及装置 | |
CN113448693B (zh) | 一种数字化工厂saas云平台 | |
CN113504955A (zh) | 一种基于bpmn的航天工作流管理系统 |
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 |