今天详细详细说一下kettle 的安装,安装的版本:
jdk:jdk-8u152-windows--x64
kettle:KETTLE-5.4
一、环境部署
1、安装JDK,按默认值安装即可
2、设置环境变量,如图下图
-
具体步骤:
-
1.右击我的电脑-属性-高级系统设置-环境变量-系统变量-新建
-
2.变量名:JAVA_HOME
-
3.变量值: JDK安装目录
3、 Kettle程序打开(无需安装),如下图:
二、资源库
1、连接开发方案,选择资源库方式,如图
2、录入资源库信息, 如下图:
-
数据库:
-
主机名称:
-
数据库名称:
-
端口号:
-
账号:
-
密码:
3、选择并登录资源库,如下图:
账号:
密码:
三、资源管理
1、文件夹建立
2、配置数据库连接(数据源/数据仓库)
四、方案开发
1、新建转换,更改转换名称,选择转换归属
2、建立表输入
-
步骤:
-
1在组件组-输入中找到组件-表输入
-
2.选择数据库连接(数据源)
-
3.填写SQL语句,可预览结果
3、建立表输出
-
步骤:
-
1、在组件组-输出中找到组件-表输出
-
2.建立表输入和表输出的连接
-
3.选择数据库连接(数据仓库)
-
4.录入目标表名,指定数据库字段
-
5.获取字段
-
6.执行SQL(建表)
4、建立清理SQL
-
*步骤:
-
1在组件组-脚本中找到组件-执行SQL脚本
-
2.选择数据库连接(数据仓库)#此处选择必须谨慎,避免清理了数据源的数据
-
3.填写SQL语句
-
4.建立与表输入的关系
5、测试转换是否能正常工作
6、新建作业,更改作业名称,选择作业归属
7、添加组件
-
*步骤:
-
1在组件组-通用中找到组件-START(作业开始,用于作业调度设置)
-
2.在组件组-通用中找到组件-转换(如有多个可以多次添加)
-
3.通过引用指定转换文件
-
4.在组件组-通用中找到组件-成功(作业结束)
-
5.按执行顺序建立组件间的关系
8、作业定时调度及测试,
这样就算你可以入门了,我相信在不断的探索中你会有更多的心得的。在此也要提醒一点,KETTLE的性能可能会有不稳定的情况出现,所以注意保存你已经做过的东西。
更新:
很早之前写的文章,发现大家许多人想要下载安装包,我就给大家把链接顺便也找到了
jdk下载地址:
https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html
Kettle下载地址:
Pentaho from Hitachi Vantara - Browse /Data Integration at SourceForge.net
以为这就完了,no,再附加个人网盘地址:
kettle下载链接:
链接:https://pan.baidu.com/s/1tmFK1sdU7DDTT3YzoJVnwQ
提取码:76yw
点击下方链接,输入上方提取码即可
链接:https://pan.baidu.com/s/1tmFK1sdU7DDTT3YzoJVnwQ
升级版本:
最近由于需要连接clickhouse数据库,kettle目前的版本没有clickhouse驱动,所以没法连接,需要自定义插件,又重新安装了kettle的9.2版本尝试一下,应该是比较新的了所以就把资源也更新一下,希望对你有帮助的小伙伴可以点赞支持。
由于kettle的连接中暂时没有clickhouse插件,需要自己搞定,先看下官网提示:
Creating Database Plugins - Hitachi Vantara Lumada and Pentaho Documentation
查找相关资料在githubs上找到源码,连接如下:
GitHub - aaa8210/kettle2clickhouse: kettle connect clickhouse plug
上面是自己查找的一些资料,下面分享安装包及插件:
kettle的9.2版本:
百度云链接如下(包含kettle安装包、连接mysql驱动和clickhouse插件):
提取码:4sy0
链接:https://pan.baidu.com/s/1CH5wYQjAxnuvOz-C0koO2w
提取码:4sy0
注:连接clickhouse版本kettle版本需要对应.
1、下载分享资源
2、解压 kettle 安装包后将驱动包里的 clickhouse-plugins文件夹复制到 kettle 的 data-integration\plugins文件夹里
看一下clickhouse-plugins 里就是自定义的插件jar包
3、复制驱动中的其余jar包
粘贴到 kettle 的 data-integration\libswt\win64 目录下(根据自己的系统而定,我的是win64)
4、启动kettle,选择新建连接就可以选择Clickhouse了 目前感觉使用还不错,虽然kettle自带调度任务,但是前提是保持kettle打开,并且作业和转换在运行状态,这个不太适用与远程服务器安装windows客户端,或者一些学习的同学可以在本地windows设置调度任务也可以,在linux上安装部署kettle并调度是一个比较合适的方法。
参考如下步骤:
运用crontab执行kettle程序
1.建立目录存放kettle文件
# mkdir /data/kettle/kettle_job // 存放作业文件
# mkdir /data/kettle/kettle_transition // 存放转换
# mkdir /data/kettle/kettle_sh // 存放执行脚本
# mkdir /data/kettle/kettle_log // 存放执行kettle产生的日志文件
将从windows上配置好的.ktr和.kjb程序分别放在transition目录和job目录下
(或linux下编写后直接保存到该目录下),注意:job中的转换对应的目录需要做相应修改
2:编写执行脚本
# cd /data/kettle/kettle_sh
# vi ceshi.sh
文本内容如下:
#!/bin/bash
#执行job程序
cd /data/kettle/data-integration
export JAVA_HOME=/usr/local/jdk1.8.0_201/
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
./kitchen.sh -file=/data/kettle/kettle_job/testjob.kjb >>/data/kettle/kettle_log/ceshi_$(date +%Y%m%d).log
注:(因为crond是个守护进程,它不归属于任何用户,虽然之前以root用户配置了java环境变量,
但是crond一样找不到java命令,所以,当crond执行kettle任务时,
需要动态设置java环境变量,否则会出现手动执行.sh没问题,放crontb里面执行后无效果)
保存ceshi.sh,执行赋予执行权限的命令
# chmod +x ceshi.sh
测试ceshi.sh是否可以正常执行
# sh -x ceshi.sh
3:设定crontab 定时执行任务
# crontab -e
*/1 * * * * /data/kettle/kettle_sh/ceshi.sh //每分钟执行一次ceshi.sh
# systemctl restart crond
# systemctl enable crond
注意:
在linux中,如果是通过图形界面执行程序的话,点击那个绿色的三角即可。
如果是命令行启动,后台执行进行进程不能中断。
因此,在linux中不推荐使用kettle里面的自动执行,使用操作系统的定时执行要稳定的多。
Windows下使用定时任务计划,linux下使用crontab。
/usr/share/java /data/java/jdk1.8.0_141/bin/java
这个版本使用还不错,这样做完调度在之后就可以了。