kettle中调度kitchen.bat定时执行任务

转载 2018年04月17日 10:20:13
Kettle是一个开源的ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)项目,项目名很有意思,水壶。按项目负责人Matt的说法:把各种数据放到一个壶里,然后呢,以一种你希望的格式流出。Kettle包括三大块:
   Spoon——转换/工作(transform/job)设计工具 (GUI方式)
   Kitchen——工作(job)执行器 (命令行方式)
   Pan——转换(trasform)执行器 (命令行方式)
Kettle是一款国外开源的etl工具,纯Java编写,绿色无需安装,数据抽取高
效稳定。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。


因为最近工作需要所以不得不研究下调用kitchen.bat后面接参数的问题。
经过一段时间的研究终于知道传参的方法了。
如下:
kitchen.bat   后面可以是-也可以是/然后再加options
Options:
/rep        : Repository name
/user       : Repository username
/pass       : Repository password
/job        : The name of the job to launch
/dir        : The directory (dont forget the leading /)
/file       : The filename (Job XML) to launch
/level      : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing)
/logfile    : The logging file to write to
/listdir    : List the directories in the repository
/listjobs   : List the jobs in the specified directory
/listrep    : List the available repositories
/norep      : Do not log into the repository
/version    : show the version, revision and build date
/param      : Set a named parameter <NAME>=<VALUE>. For example -param:FOO=bar
/listparam : List information concerning the defined parameters in the specified job.
/export     : Exports all linked resources of the specified job. The argument is the name of a ZIP
file.


而options 后面可以是=也可以是:也可以是空格
kitchen.bat /file d:\   或者 -file=D:\ 或者/file:D:\等等都可以。。。
定时执行的代码参考如下【原创】,可以执行的实例
1、windows下的执行方式:


pan /file C:\AddExample.ktr /level Detailed /logfile C:\1.log

a) /file:表示要执行的转换文件
b) /level 日志级别 (Basic, Detailed, Debug, Rowlevel, Error, Nothing)
c)/logfile 日志文件(append方式添加)


建立一个mySQL.dat的文件,里面写入

cd D:/Kettle-3.0.2
kitchen.bat /norep -file=D:/kettledata/mysal2orcle.kjb >> kitchen_%date:~0,10%.log
exit
保存文件。
解释一下上面的语句
cd D:/Kettle-3.0.2 这句的含义是跳转到kettle的根目录,因为kitchen.bat 文件在根目录下
kitchen.bat /norep -file=D:/kettledata/mysal2orcle.kjb >> kitchen_%date:~0,10%.log

上面的含义是,使用kitchen.bat 命令来执行job文件,job文件的存放路径是D:/kettledata/mysal2orcle.kjb,并且将执行的结果输出到 kitchen_%date:~0,10%.log文件中。

2、Linux下的书写格式:
创建mysqldb.sh
内容如下
cd /home/Kettle-3.0.2 这句的含义是跳转到kettle的根目录,因为kitchen.bat 文件在根目录下
./kitchen.sh -file=/home/etl/mysql.kjb >> /home/etl/log/kettle.log
然后这个文件在crontab中去执行
注意:linux执行shell过程中,由于linux对权限要求很严格,所以kitchen.sh必须有可执行的权限。前面必须加上./,也就是./kitchen.sh才能执行,否则会提示找不到此命令。


kitchen.bat的使用方法:


Kitchen.bat /file:D:\job_name.kjb /level:Basic>>D:\etl.log


使用心得:


1.file和level都是前面有‘/’,后面有‘:’,任何一个都不能丢。


2.此语句要在一行上完成,中间不能有换行符之类的。
博主从昨天就开始调试的几个bat文件,始终不能在我指定的文件里面记日志,一直在dos界面记录,苦思不得其果,偶然的一个把bat文件全屏之后,发现原来语句被换行了,修改到同一行之后可以顺利的运行。


3.此语句后面不能接任何语句,就算你在bat文件里面添加了别的语句,也不会得到执行,查阅了好多资料,没有发现解决办法,逼不得已,我只能把job做成了一个一个单独的bat文件,这个有点儿杯具。


4.JDK或者JRE很重要。
博主因为服务器上没有配置java环境,吃了不少苦。
先是没装java环境,无法运行kettle;接着装好了java环境之后,job和转换可以正常运行,但是kitchen.bat语句不能正常运行,又查阅了一堆资料后发现,原来是环境变量的问题,设置了环境变量之后总算可以正常运行了。


有一篇介绍
Kitchen——作业执行器     是一个作业执行引擎,用来执行作业。这是一个命令行执行工具,没啥可讲的,就把它的参数说明列一下。
    -rep      : Repository name   任务包所在存储名
    -user     : Repository username   执行人
    -pass     : Repository password   执行人密码
    -job      : The name of the job to launch 任务包名称
    -dir      : The directory (don''t forget the leading / or \) 
    -file     : The filename (Job XML) to launch 
    -level    : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing) 指定日志级别
    -log      : The logging file to write to  指定日志文件
    -listdir  : List the directories in the repository 列出指定存储中的目录结构。
    -listjobs : List the jobs in the specified directory 列出指定目录下的所有任务
    -listrep  : List the defined repositories 列出所有的存储
    -norep    : Don''t log into the repository  不写日志
    嗯,居然不支持调度。看了一下文档,建议使用操作系统提供的调度器来实现调度,比如:Windows可以使用它的任务计划工具。

kettle执行定时任务,使用pan.bat和kitchen.bat

1.    运行cmd,进入kettle的目录cd C:\soft\kettle\data-integration  2.    运行start pan.bat命令 Pan—转换执行器(命令行方式)...
  • huiweizuotiandeni
  • huiweizuotiandeni
  • 2017-01-12 22:22:36
  • 12135

kettle 定时任务(使用资源库)

转自:http://blog.csdn.net/feng19821209/article/details/5800960 1,Kettle跨平台使用。     例如:在AIX下(AIX...
  • david412306524
  • david412306524
  • 2016-03-19 11:07:35
  • 4848

kettle中调度kitchen.bat后面接参数,写定时更新任务

先普及一点知识 Kettle是一个开源的ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)项目,项目名很有意思,水壶。按项目负责人Matt的说法:把各种数...
  • QQzyb
  • QQzyb
  • 2013-05-17 14:04:03
  • 3868

kettle在Win下执行trans和job的批处理示例

1、kettle_rep_pan.bat   d: D:\Professional\pdi-ce-3.2.0-stable\data-integration\Pan.bat /rep:"kett...
  • nisjlvhudy
  • nisjlvhudy
  • 2012-05-17 09:31:33
  • 6761

jenkins 执行kettle 任务

kettle中start的位置设置计划任务, 如果执行比较频繁,每次启动kitchen.bat,比较耗费资源,不如一直挂着执行. @echo off   set KETT...
  • a22698488
  • a22698488
  • 2017-05-04 18:14:34
  • 688

windows使用计划任务定时执行kettle资源库中的job

通常情况下,在工作中在数据抽取过程中,会使用到job进行定时抽取。本文主要介绍kettle在windows下定时执行job。       备注:我用的kettle版本是5.1.0 1、准备编写ke...
  • huangqiude
  • huangqiude
  • 2015-07-31 16:43:04
  • 9501

Kettle定时执行(ETL工具)

Kettle定时执行(ETL工具)
  • feng19821209
  • feng19821209
  • 2010-08-10 11:49:00
  • 27317

kettle设计一些ETL任务时一些常见问题

摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. Join 我得到A 数据流(不管是基于文...
  • lhy55040817
  • lhy55040817
  • 2012-11-21 09:43:03
  • 1144

linux下使用crond定时执行kettle的job任务

部署kettle        1.         将pdi-ce-4.1.0-stable.zip上传到linux服务器 2.         使用unzip命令解压pdi-ce-4.1....
  • zh_alen
  • zh_alen
  • 2016-10-26 15:21:52
  • 1999

【Kettle从零开始】第九弹之Kettle定时任务介绍

在数据仓库环节ETL定时任务是一个必不可少的一个环节,因为定时任务取决与你的ETL程序抽取业务数据的频率程度(日、周、季、月、年),一般情况下都采用T+1方式来抽取数据。 关于Kettle定时任务需要...
  • yvigmmwfn
  • yvigmmwfn
  • 2014-03-11 16:45:58
  • 9759
收藏助手
不良信息举报
您举报文章:kettle中调度kitchen.bat定时执行任务
举报原因:
原因补充:

(最多只允许输入30个字)