本文长期保持更新状态,也欢迎大家和我探讨:
- kettle为java语言编写,使用前必须保证已配置好java环境,包括jdk,jre。具体可以参考百度不赘述。
- 下载地址:http://jaist.dl.sourceforge.net/project/pentaho/Data%20Integration
或者:http://download.csdn.net/download/mh942408056/9665716 - kettle通常用来抽取数据,使用者需要一定的SQL基础,它分为三大模块:
> Spoon——转换/工作(transform/job)设计工具 (GUI方式)
> Kitchen——工作(job)执行器 (命令行方式)
> Span——转换(trasform)执行器 (命令行方式)
我们通常通过GUI方式来使用kettle,而kettle中有两种脚本文件,transformation和job,前者完成针对数据的基础转换,后者则完成整个工作流的控制。基本的数据操作请参考我网盘的视频教程:http://pan.baidu.com/s/1i5QOt1N - 关于作业我们可以在kettle中手动点击start来执行,但是鉴于大部分使用情况是对不同业务下的数据进行定时增量抽取工作,所以通常是设置定时任务来自动执行job的。在这里我使用到了Kitchen(作业执行器),首先介绍一下它内部的配置参数:
-rep : Repository name 任务包所在存储名(即Job所在的文件夹名)
-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 不写日志
- 考虑到需要记录执行任务的日志,我们首先需要在任意盘符下新建相应的日志文件夹,如:D:ETLlog\,接着新建批处理存放文件夹并建立后缀名为.bat的批处理文件(Windows环境),记下当前文件的路径,如:D:\ETL\test.bat,内部的具体参数可以参考:
>完整的.bat配置:START D:\ETL\test.bat -rep 111.11.11.12 -user admin -pass admin -dir /ETL -job 测试任务 -level basic -logfile D:ETLlog\测试任务_%date:~0,4%%date:~5,2%%date:~8,2%.log
配置好批处理文件后需要在计算机的计划任务里添加,右击计算机->管理->计算机管理->系统工具->任务计划程序->任务计划程序库,创建任务、新建触发器选择定时频率及时间,新建操作,选择上面创建好的.bat批处理文件,确定即可。 - 关于日志还可以在kettle里直接双击job或trans创建日志文件以及设定日志表,日后详述。