本周项目上用到了kettle并且需要做任务调度,听老师说用kettle自带的调度不大稳定于是便baidu了下,参照这篇文章完成了通过kitchen的调度,简单说就是通过windows的计划任务来调用.bat的批处理文件来开始kettle作业。
转自:http://hi.baidu.com/phplinuxmysql/item/f5885685d2397b1cc31627e6
先普及一点知识
Kettle是一个开源的ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)项目,项目名很有意思,水壶。按项目负责人Matt的说法:把各种数据放到一个壶里,然后呢,以一种你希望的格式流出。Kettle包括三大块:
   Spoon——转换/工作(transform/job)设计工具 (GUI方式)
   Kitchen——工作(job)执行器 (命令行方式)
   Span——转换(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下的执行方式:
建立一个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 作业调度相关推荐

  1. kettle教程---kettle作业调度,根据更新时间增量更新

    附:Kettle实战视频教程,需要的朋友可以看看学习下哈~~ kettle实战第一讲-文件和数据库表的互相转换处理_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili kettle实战第二讲-数据库单 ...

  2. 【开源免费】kettle作业调度—自动化运维—数据挖掘—informatica-批量作业工具taskctl

    关注公众号"taskctl",关键字回复"领取" 即可获权 产品简介 taskctl是一款由成都塔斯克信息技术公司历经10年研发的etl作业集群调度工具,该产品 ...

  3. kettle视频教程

    kettle实战视频教程分享,有需要的自取哈~ kettle视频教程播放地址 具体内容如下: 文件和数据库表的互相转换处理 数据库单表的全量同步开始学习 数据库单表的增量同步 数据库同步错误原因记录到 ...

  4. Linux下安装kettle及作业调度

    #前提jdk环境已完成安装,最好1.8以上版本 [my@Hadoop102 .kettle]$ java -version java version "1.8.0_321" Jav ...

  5. 批量处理作业调度工具Taskctl的Kettle转换作业类型的使用(soap服务驱动)

    工具下载:去公众号[taskctl]回复内容 "软件" 即可 TASKCTL默认采用pan命令方式调度kettle转换作业.除此之外,我们还提供了taskctl-plugin-ke ...

  6. kettle中的switch_Kettle学习笔记(二)— 基本操作

    目录 打开Kettle 打开时间略长,请耐心等待. 常用的控件说明 这里先对控件做下简单说明,方便后面使用. 通用控件 通用--START:作业开始: 通用--作业:指定某个作业循环执行: 通用--转 ...

  7. KETTLE初学者使用教程

    Kettle的建立数据库连接.使用kettle进行简单的全量对比插入更新:kettle会自动对比用户设置的对比字段,若目标表不存在该字段,则新插入该条记录.若存在,则更新. Kettle简介:Kett ...

  8. 基于SSM的作业调度平台-java作业调度平台

    基于SSM的作业调度平台 支持时间调度.作业依赖触发.手工执行三种调度方式. 时间调度:底层基于quartz实现,支持cron命令,实现灵活的时间调度方式. 作业依赖触发:一个子作业可以依赖多个父作业 ...

  9. Kettle数据库资源库

    一.创建一个资源库 以8.1版本为例,创建一个Kettle数据库资源库 我们以数据库作为资源库来存储我们的Kjb和Ktr,用以版本的控制. 这里我们添加一个mysql数据库的连接(或者可以使用其他的数 ...

最新文章

  1. 100道 Dubbo面试题及答案(2021最新)
  2. UIBezierPath的使用(持续更新)
  3. Maven教程(3)--Maven导入工程常见问题(编码、MavenArchiver、Lifecycle Mapping、maven install 没有反应)...
  4. 任天堂新音樂遊戲上市
  5. 异常:javax.servlet.jsp.PageContext cannot be resolved to a type
  6. 2 0 2 0 年 第 十 一 届 蓝 桥 杯 - 省赛 - CC++大学B组 - B.既约分数
  7. golang 对象 struct 类型转json
  8. c语言回文字符串原理,回文串(c语言)注意字符串比较和字符比较的区别
  9. .net core redis 驱动推荐,为什么不使用 StackExchange.Redis
  10. opengl渲染4k数据提高效率
  11. 隐藏html和php后缀的简易方法
  12. 黑客都怎么制作外挂?C++黑客编程收集的源码集合
  13. pass 软件_PASS软件非劣效Logrank检验的h1参数如何设置?
  14. 盛唐领土争夺战读后感
  15. 英雄联盟LOL JAVA版
  16. 一行代码让图形秒变「手绘风」
  17. 2_PY基本数据类型
  18. Vue 的属性、方法和生命周期
  19. 如何理解c语言中的回调函数
  20. 比较SQL Server Always On Cluster Mirroring

热门文章

  1. macOS Ventura 13 正式版系统在线安装镜像
  2. 考研路上的那些一战二战三战成功与失败的故事系列之三
  3. 全国职业院校技能大赛网络建设与运维赛项赛题(三)
  4. 学习微信小程序踩过的坑
  5. 2018 ATEC NLP比赛 15th 总结
  6. 数据中台 -- 学习笔记(一)
  7. Z-stack3.0 Power Green的使用
  8. 酷派7295A青春版刷机包 基于官方固件精简流畅实用版
  9. sqli-lab闯关第5关---第10关
  10. MUI开发记录——我的考勤