使用kettle上传文件到SFTP案例

一、安装环境

1.操作系统:Ubuntu  14.04 64位

2.JDK版本:1.8

3.工具:Xshell5、Xftp5

4.说明:本文是通过Xshell5工具远程连接Linux操作,如果是直接在Linux可视化界面操作那就更方便了,原理一样

二、操作步骤

1.从网站下载kettle,可到我的百度网盘下载,提取码:gfa7

2.下载完成后先放到本地目录后解压

3.解压后可直接运行spoon.bat

使用kettle上传文件到SFTP案例_第1张图片

4.打开界面后进件转换,并且配置数据库连接

使用kettle上传文件到SFTP案例_第2张图片

 

5.在右边的核心对象里面输入下面找到表输入后拖出来如图所示效果

使用kettle上传文件到SFTP案例_第3张图片

6.双击拖出来的表输入,填入sql查询语句

7.进行xml输出,我这里是转换为xml文件,可以转换为其他文件,双击xml文件配置相关信息

使用kettle上传文件到SFTP案例_第4张图片

 

8.如果要测试,,可以将文件名称改为本地文件夹进行测试,我这里是直接放为linux中你路径了,后面说到linux部署

我本地测试如图

9.如上第一步所说,新建作业,如图,找到所示组间

使用kettle上传文件到SFTP案例_第5张图片

10.双击打开transformation后配置刚才生成的转换文件的路径,我这里是linux路径,和上面一样,可改为本地路径测试

11.双击打开sftp配置连接信息

使用kettle上传文件到SFTP案例_第6张图片

12.配置好之后本地执行结果如图所示

使用kettle上传文件到SFTP案例_第7张图片

13.本地通过后可以开始在linux中部署了

将刚才下载的文件上传至linux后并解压

并且将其移动到usr/local/kettle下面(我的目录为此,可以改变)

14.启动并且配置kettle转换,我这里在移动后的目录下面建立了kettle_file用来存放各种转换文件及脚本

14.如图所示将本地生成的ktr和kjb文件放在kettle_file目录下面(注:新建文件夹后可用chmod -R 777 fileName进行授权)

15.开始配置定时任务执行对应的转换文件,由于我用的是ubuntu所以需要执行select-editor出来后选择3使crontab -e可以编辑

使用kettle上传文件到SFTP案例_第8张图片

16.在刚才目录下面建立一个可执行的.sh脚本内容如下:

#!/bin/sh
JAVA_HOME=/usr/java/jdk1.8.0_11
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
exe_date=`date +%Y%m%d` 
export JAVA_HOME
export CLASSPATH
export PATH
echo $exe_date
/usr/local/kettle/data-integration/kitchen.sh -file=/usr/local/kettle/kettle_file/ftpFileUpload.kjb

上面所示的路径为自己的实际路径,建立好脚本文件后如果不能执行,则需要使用(chmod +x *.sh 来授权)

如果授权后还不能执行,则需要使用dos2unix filename进行linux转换,仅是unbutu系统,如果此命令执行不了

可以使用apt-get dos2unix进行在线下载后再次执行即可(注:上面所示kjb文件用kitchen.sh,如果是ktr文件则使用pan.sh)

17.脚本内容配置成功后则配置定时任务,使用crontab -e进入编辑,我这里为每一分钟执行一次

配置成功后使用service cron start/restart/stop启动/重启/停止,并且使用service cron status查看定时状态

也可以用tail -f var/log/cron.log查看实时日志,如果没有则/etc/rsyslog.d/50-default.conf使用此名称执行后

再重启service rsyslog restart 日志服务,再重启定时即可查看到日志

18到此配置kettle成功,最终结果

使用kettle上传文件到SFTP案例_第9张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(使用kettle上传文件到SFTP案例)