关于Kettle日志是很重要的一部分,因为不管是任何信息都只能通过日志的方式来查找自己所关心的信息。
日志存储有两种方式:一种是文本文件存储日志,另一种是资源库存储日志(注:Kettle资源库日志分两类,一类是Job日志,一类是Trans日志)。
日志级别有七类:
序号 | 级别 | 描述 |
1 | 没有日志(Nothing) | 基本不使用 |
2 | 错误日志(Error) | 偶尔使用 |
3 | 最小日志(Minimal) | 基本不使用 |
4 | 基本日志(Basic) | 经常使用(默认) |
5 | 详细日志(Detailed) | 偶尔使用 |
6 | 调试(Debug) | 偶尔使用 |
7 | 行级日志(Row Level) | 偶尔使用 |
文本日志Vs 资源库日志
功能比较 | 本文日志 | 资源库日志 |
日志查看 | 直接打开文件查找 | 需要连接数据库查看 |
归档 | 简单快捷 | 需要通过相应的语法备份 |
分析 | 比较麻烦 | 直接通过SQL语句分析 |
日志性能 | 无 | 如果记录数越大导致打开Job与转换加载较慢,可通过参数设置解决。 |
注:虽然资源库日志比较麻烦,但是可以通过资源库日志很快的查找出哪些Job与Trans执行效率底,可以很快速定位进行优化。(目前我们在项目中两种日志一起使用)
资源库日志创建
1、 RotKang_Test Job日志创建,如下图:
(图10.0)
说明:
日志数据库连接:填写日志产生数据源名称,一般使用目标数据源。
日志表:填写日志表名称,如:ETL_JOB_LOGS
log size limit in lines:当打开Job时显示多少条记录日志,默认全部显示。建议填写10
其它参数则默认设置,最后点击“SQL”按钮生成ETL_JOB_LOGS表 DDL脚本。如下图:
(图10.1)
然后点击“Execute”按钮执行DDL脚本语句,生成Job日志表。
2、 Set_Param与RotKang_Test01转换日志创建与设置,如下图
(图10.2)
说明:
日志数据库连接:填写日志产生数据源名称,一般使用目标数据源。
日志表:填写日志表名称,如:ETL_TRANS_LOGS
log size limit in lines:当打开Job时显示多少条记录日志,默认全部显示。建议填写10
其它参数则默认设置,最后点击“SQL”按钮生成ETL_JOB_LOGS表 DDL脚本。如下图:
(图10.3)
然后点击“Execute”按钮执行DDL脚本语句,生成Trans日志表。
配置RotKang_Test01转换时与配置Set_Param转换一样,但是不需要再创建日志表步骤。
配置完成后运行后,Job日志在UI中如下图:
(图10.4)
说明:
每运行一次JOB产生一条日志记录,可以根据日志记录回放日志。
配置完成后运行后,Trans日志在UI中如下图:
(图10.5)
说明:
每运行一次JOB产生两条日志记录,可以根据日志记录回放日志。
最后在Etl_Sch.bat脚本中指定文本日志,脚本修改内容如下:
@echo off
set KETTLE_PATH=H:\pentaho\data-integration3.2.0
set JOB_PATH=H:\Txt\Pentaho\从零开始\实例
set LOG_PATH=H:\Txt\Pentaho\从零开始\LOGS
rem 根据当前日期生成日志文件:LOGYYYYMMDD.txt
set LOG_FILE=LOG_%date:~0,4%%date:~5,2%%date:~8,2%.txt
rem 默认T+1方式参数传递,默认日志级别是:基本日志,可能通过level来设置日志级别
CALL %KETTLE_PATH%\Kitchen.bat -file=%JOB_PATH%\RotKang_Test.kjb -logfile=%LOG_PATH%\%LOG_FILE%
rem 指定参数日期传递
rem CALL %KETTLE_PATH%\Kitchen.bat -file=%JOB_PATH%\RotKang_Test.kjb -param:YESTERDAY=2014-03-08
这时在ETL抽取数据时也会生产文本日志与资源库日志。