Kettle 使用笔记
默认分类
2019-11-29
555
0
参数化
参数化的几个方法
- kettle.properties,文件位于 java 的 user.home 目录下
如果不知道自己user.home的,可以在我GitHub下载编译好的SystemProp.class执行后找到user.home
变量就可以了.
java SystemProp
根目录下有.kettle
目录,其中就有kettle.properties
文件
- 自定义 properties 文件,通过 属性文件输入 步骤读取。
- 使用参数表 (把所有参数放在一个表里,可以参考Kettle Solution这本书)
参数表的结构 Environment parameter_name parameter_value valid_from valid_to Dev host_name localhost 2011-01-01 2099-01-01 Test host_name 192.168.12.10 2011-01-01 2013-05-01 Test host_name 192.168.12.11 2011-05-02 2099-01-01
命令行运行
Pan命令行
参数列表:(前五个需要使用资源库的时候才用)
/rep : 资源库名称
/user : 资源库用户名
/pass : 资源库密码
/trans : 要启动的转换名称
/dir : 目录(不要忘了前缀/)
/file : 要启动的文件名(转换文件)
/level : 日志级别 (Error, Nothing, Minimal, Basic , Detailed, Debug, Rowlevel)
/logfile : 要写入的日志文件
/listdir : 列出资源库里的目录
/listtrans : 列出指定目录下的转换
/listrep : 列出可用资源库
/exprep : 将资源库里的所有对象导出到 XML 文件中
/norep : 不要将日志写到资源库中
/safemode : 安全模式下运行: 有额外的检查
/version : 显示转换的版本,校订和创建日期
/param : 设置参数,参数格式<NAME>=<VALUE>,例如-param:FOO=bar
/listparam: 列出转换里已经设置好的参数。
/maxloglines:内存中保存日志的最大日志行数
/maxlogtimeout:内存中保存日志的最长时间
Kitchen命令行
参数列表:(前五个需要使用资源库的时候才用)
/rep : 资源库名称
/user : 资源库用户名
/pass : 资源库密码
/job : 要启动的作业名称
/dir : 目录(不要忘了前缀 /)
/file : 要启动的文件名(转换文件)
/level : 日志级别 (Error, Nothing, Minimal, Basic , Detailed, Debug, Rowlevel)
/logfile : 要写入的日志文件
/listdir : 列出资源库里的目录
/listjobs : 列出指定目录下的作业
/listrep : 列出可用资源库
/norep : 不要将日志写到资源库中
/version : 显示转换的版本,校订和创建日期
/param : 设置参数,参数格式<NAME>=<VALUE>,例如-param:FOO=bar
/listparam: 列出转换里已经设置好的参数
/export: 把作业依赖的所有资源导出到一个zip 文件里
/maxloglines:内存中保存日志的最大日志行数
/maxlogtimeout:内存中保存日志的最长时间
参数格式说明
有两种参数格式,建议使用第一种参数格式.
/参数名:值 或 -参数名=值
例子
1.执行test.ktr 文件 日志保存在D:\log.txt 中, 默认日志级别是Basic
Pan /file:D:\AppProjects\nxkh\test.ktr /logfile:D:\log.txt
2.执行test.ktr 文件 日志保存在D:\log.txt 中, 日志级别是Rowlevel
Pan /file:D:\AppProjects\nxkh\test.ktr /logfile:D:\log.txt /level: Rowlevel
3.导出一个 job 文件,以及该 job 文件依赖的转换及其他资源
kitchen /file:c:/job1.kjb /export:c:/a.zip
4.直接执行一个导出的 zip 文件
Kitchen.bat /file:"zip:file:///c:/a.zip!job1.kjb"
5.kitchen资源库执行
kitchen /rep:repository1 /user:admin /pass:admin /job:myjob /dir:/
文件日志
- 命令行的 /logfile 参数,将日志导出到指定的文件中。
- Linux 管道符将屏幕输出转成日志。
- 默认的日志文件保存在 java.io.tmpdir 目录下(可以用上文的Class文件查看),文件名类似spoon_xxx.log
- 为便于调试,Spoon 里的有日志窗口,内容和日志文件相同。
### 日志相关参数设置 内存中的日志太多,可能会引起 OutOfMemory 的错误 kettle.properties
文件里设置 KETTLE_MAX_LOG_SIZE_IN_LINE
变量KETTLE_MAX_LOG_TIMEOUT_IN_MINUTES
变量
Linux GUI界面碰到问题处理
1.java: cairo-misc.c:380: _cairo_operator_bounded_by_source: Assertion `NOT_REACHED' failed.
在spoon.sh
中找到下面这段文字段,在后面添加-Dorg.eclipse.swt.internal.gtk.cairoGraphics=false
参数。
OPT="$OPT $PENTAHO_DI_JAVA_OPTIONS -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2 -Djava.library.path=$LIBPATH -DKETTLE_HOME=$KETTLE_HOME -DKETTLE_REPOSITORY=$KETTLE_REPOSITORY -DKETTLE_USER=$KETTLE_USER -DKETTLE_PASSWORD=$KETTLE_PASSWORD -DKETTLE_PLUGIN_PACKAGES=$KETTLE_PLUGIN_PACKAGES -DKETTLE_LOG_SIZE_LIMIT=$KETTLE_LOG_SIZE_LIMIT -DKETTLE_JNDI_ROOT=$KETTLE_JNDI_ROOT"