Kettle的运行可以是基于文件或数据库的资源库方式,也可以是非资源库的文件方式,下面分别说明:
资源库方式:我们一般在Windows平台下进行设计,新建资源库的时候会提示选择文件方式还是数据库方式,无论哪种方式,建立的资源库信息都会存储到当前用户的个人文件夹的.kettle文件夹下,文件名为:repositories.xml,部署也相对简单,把这个文件部署到Linux系统个人文件夹下的.kettle文件夹(需手动创建),例如root用户,应部署到:/root/.kettle/文件夹。这个文件只是一个索引,告诉kitchen.sh到哪里去找job和transformation。对应的job和transformation还是要部署的,分两种情况:
–如果当初创建的基于文件的资源库,则需要把资源库文件夹下的所有文件及文件夹上传到Linux服务器上。注意:同时要更高上一步部署的repositories.xml,这是个文本文件,把里面的路径信息更改为Linux下的真实路径,如:
<repository> <id>KettleFileRepository</id> <name>File Demo</name> <description>File Demo</description> <base_directory>C:\Users\Johnnie\Documents\demo_repos</base_directory> <read_only>N</read_only> </repository> </repositories>
–如果当初创建的基于数据库的资源库,则需要把存储kettle资源库的数据库恢复到Linux服务器上(如果可以的话,设计和运行时使用相同的数据库,就不用备份恢复了),同时要更改repositories.xml,把里面涉及到数据库连接的改为Linux环境下适用的数据库连接参数。
运行:基于资源库的Kettle在运行时执行下列命令即可:
./kitchen.sh -rep=”My Kettle” -user=admin -pass=admin -dir=”/TEST/” -job=”Job 1″
其中My Kettle是在 repositories.xml中定义的资源库名称,要和[respository/name]中的一致,否则会提示找不到资源库。有一次我把connection的name当成资源库名称传给kitchen.sh,一直提示找不到资源库,查了半天才发现名字传错了。
基于文件的Kettle部署和执行相对简单,参考另一篇文章。
部署到Linux以后,如果Shell编码设置不正确,中文显示乱码,所以最好让Kettle显示英文Log,处理方式是把.kettle文件夹下.languageChoice文件也部署到服务器上去,内容是以下两行:
#Language Choice
#Mon Dec 03 12:01:57 CST 2012
LocaleDefault=en_US
LocaleFailover=en_US