部署kettle,由于可能对JDK版本有要求,所以我用的是低版本的
下载下来的包pdi-ce-6.1.0.1-196.zip
加压之后目录结构:pdi-ce-6.1.0.1-196\data-integration
需要注意的是 这里比较重要的执行文件是Spoon.bat(sh)、Kitchen.bat(sh)。
Pan.bat(sh)不常用,但是也留意一下
由于需要连接数据库(Oracle),因此需要将Oracle中ojdbc14.jar拷贝到data-integration\lib目录下作为驱动
然后给相应的文件赋可执行权限,chmod +x xxx.sh
或者最简单的就是 chmod 777 -R /xxx目录
图形化界面:
点击Spoon.bat在windows下进行转换和作业
界面如下:
转换是ktr,做成是kjb后缀
开发流程:
1.开发转换(ktr)
文件->新建->转换
右键DB连接,选择新建,设置数据库,要设置两个,一个作为源数据,另一个作为目标数据
或者新建数据源
配置方式是xg/type=yyyy(x/xx=yyy)
jndi名称为配置中的前面名称
可以测试一下:
切换到转换tab,选择核心对象,输入->表输入
双击表输入
选择输出->插入更新
双击插入更新
如果数据库选择的是JNDI方式,这里的目标模式可以不写
连接两个节点
选择第一个节点,按住shift,拖动到第二个节点
点击左上角,保存ktr,转换
测试转换
在转换执行的过程中,单击插入更新节点可以显示执行过程(状态)
测试结果:
2.开发作业
文件->新建->作业
选择通用下的start,依次按图所示拖拽到右侧作业kjb工作区
其中邮件是邮件中的发送邮件
点击转换,配置转换引用位置
配置邮件
保存kjb
测试结果
运行中:
最终结果:
节点上有对号,表示运行成功
部署:
最终上传到linux服务器的时候,将ktr、kjb放在同一位置
通过kitchen.sh -file命令设置kjb读取路径
可执行的sh如下:
测试环境暂时用不到一下三行
export JAVA_HOME=/usr/java/jdk1.7.0_17
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
主要是以下
#!/bin/bash
export LANG=en_US.UTF-8
kjb_path=/weblogic/start/pdi-ce
sh_path=/weblogic/start/pdi-ce/data-integration
nohup ${sh_path}/kitchen.sh -file=${kjb_path}/user_info.kjb >> ${kjb_path}/kettle_$(date +%Y%m%d).log &
tail -f ${kjb_path}/kettle_$(date +%Y%m%d).log
其中
#!/bin/bash
非常重要,可执行文件必须有
因为是用crontab执行定时任务,会出现中文乱码,因此设置字符集
设置变量,引用要用${}
crontab -e 编辑当前的定时任务
crontab -l 查看定时任务列表
设置定时任务:
每天6点执行
如果可执行的sh文件是在windows下编辑的,上传到linux执行时会出现报错:
–bash: ./xxx.sh: /bin/bash^M: bad interpreter: No such file or directory
问题原因:
其实这是由于在windows下编辑或者写的sh文件,由于sh文件的格式为dos格式。而linux只能执行格式为unix格式的脚本。
因此执行转换即可
1.安装dos2unix
apt install dos2unix
2.转换格式
dos2unix xxx.sh
参考地址:
https://blog.csdn.net/lan12334321234/article/details/70049526?locationNum=3&fps=1
https://blog.csdn.net/wy_97/article/details/78525533
https://blog.csdn.net/shuaishuai1234/article/details/82178731
下载地址:https://community.hitachivantara.com/docs/DOC-1009855
参考地址:https://sourceforge.net/projects/pentaho/
中文参考地址:https://www.oschina.net/p/pentaho
配置文档参考:https://blog.csdn.net/github_38806262/article/details/78404760
JNDI配置参考:https://blog.csdn.net/u012848709/article/details/79339419/