This website requires JavaScript.

Kettle 使用笔记

参数化

参数化的几个方法

  • 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"
0条评论
avatar