kettle使用教程(超详细)-程序员宅基地

技术标签: 数据仓库  ETL  etl  数据库  

今天详细详细说一下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插件,需要自己搞定,先看下官网提示:

https://help.hitachivantara.com/Documentation/Pentaho/8.1/Developer_Center/PDI/Extend/020

查找相关资料在githubs上找到源码,连接如下:

https://github.com/aaa8210/kettle2clickhouse

上面是自己查找的一些资料,下面分享安装包及插件:

kettle的9.2版本:

百度云链接如下(包含kettle安装包、连接mysql驱动和clickhouse插件):

https://pan.baidu.com/s/1CH5wYQjAxnuvOz-C0koO2w

提取码: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

 

这个版本使用还不错,这样做完调度在之后就可以了。 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Jmayday/article/details/102860582

智能推荐

am-u-sm-6 am-u-md-6 am-u-lg-3_am-u-sm-6 lg-fg-red-程序员宅基地

文章浏览阅读6.8k次。am-u-sm-6(或其他数字) am-u-md-6(或其他数字) am-u-lg-3(或其他数字)这些事什么意思呢?网站上查资料发现: am-u-sm-*  0-640px am-u-md-*  640px-1024px am-u-lg-*   1025px+.am-g表示行.am-u-sm(/md/lg_am-u-sm-6 lg-fg-red

Android 系统的安全性分析(6)--Android应用层权限的讨论-程序员宅基地

文章浏览阅读656次。最近工作上涉及到对Android系统安全性的改造,在改造之前先分析整理下目前Android系统自身的安全性;参考了一些文章及书籍,在这里大部分是对别人描述的提炼,我挑出一些对我有用的内容整理;如果你是一个APP开发者,想更深入了解Android权限机制,会对此篇更感兴趣。

Android 开发环境下载地址 adt-bundle android-studio sdk adt 下载_c0930-程序员宅基地

文章浏览阅读1.6k次。Android 开发环境介绍 : 目前 Android 有两种开发环境, 一种是传统的 Eclipse + ADT, 一种就是目前最新并且得到 Google 推荐的 Android Studio;-- Eclipse + ADT 开发环境 : 大多数开发者正在使用的, 正在逐渐被淘汰中, 目前我也在用这个环境;-- Android Studio 开发环境 : 该环境推出几年, 与_c0930

beego源码解析之路由_beego router 通配符-程序员宅基地

文章浏览阅读264次。目录简单的例子路由涉及的重要组件AppControllerRegisterControllerInfoTreeControllerInterfaceController路由表注册流程:路由匹配流程简单的例子func main() { beego.Router("/get", &MainController{}) beego.Run()}​type MainController struct { beego.C.._beego router 通配符

mysql游标统计_集成MySQL的自定义函数,存储过程,游标应用,实现分词功能和统计功能....-程序员宅基地

文章浏览阅读185次。使用MySQL中的函数,存储过程,游标,来实现,数据库里分词并且统计的功能。先看功能效果:有这么一个tempic表,其中有个字段 是keyword.这个字段的数据是用“,” 或者“,”隔开的. 现在我们实现的功能是将keyword中的数据,根据逗号“,”把她分开。并且统计相同分割后的词语的filedowntime的和.举个例 :id=1的数据,keyword是 宝宝,可爱,熊id=6的数据,ke..._mysql统计分词

app微信支付统一下单_crypto.createhmac('sha256', clientsecret).update(`-程序员宅基地

文章浏览阅读1.8k次。php版的需要注意的地方记录一下签名的加密方式为sha256返回给客户端的参数全小写,不是驼峰返回给客户端调起支付的签名统一下单的加密方式要一样,即sha256全部代码 参数记得替换 public function payFor() { header("Access-Control-Allow-Origin: *"); header("Access-Contr..._crypto.createhmac('sha256', clientsecret).update(`${appid}${time

随便推点

elasticsearch max virtual memory areas vm.max_map_count [65530] is too low, increase to at le-程序员宅基地

文章浏览阅读2.1k次。具体错误信息如下:jiankunking@ubuntu:~/software/elasticsearch$ ./bin/elasticsearch[2017-03-23T18:14:05,880][INFO ][o.e.n.Node ] [] initializing ...[2017-03-23T18:14:06,151][INFO ][o.e.e.NodeE..._max virtual memory areas vm.max_map_count [65530] is too low, increase to at

UDS(ISO14229)诊断服务功能及描述完结篇_uds14229-程序员宅基地

文章浏览阅读2.7w次,点赞76次,收藏614次。文章目录前言一、诊断和通信管理功能单元1. 0x10(DiagnosticSessionControl)2. 0x11(ECUReset)3. 0x27(SecurityAccess)4. 0x28(CommunicationControl)5. 0x3E(TesterPresent)6. 0x83(AccessTimingParameter)7. 0x84(SecuredDataTransmission)8. 0x85(ControlDTCSetting)9. 0x86(ResponseOnEvent)1_uds14229

理解红黑树及代码实现_红黑树代码实现-程序员宅基地

文章浏览阅读7.9k次,点赞18次,收藏116次。1.红黑树定义红黑树是一颗 红-黑的平衡二叉树,它具有二叉树的所有特性,是一颗自平衡的排序二叉树.(树中任何节点值都大于左子节点的值,而且都小于右子节点的值),其检索效率高,它是一颗空树或它的左右两个子树高度差的绝对值不超过1,并且左右子树都是平衡二叉树.最坏的情况下 是一边倒的情况在这种情况下,如果我们要在树中查找g节点,就需要顺着根节点往下找,时间复杂度约为O(n)常数级。那么红黑..._红黑树代码实现

html背景图片纵向拉伸,在css中设置图片的背景图,怎么设置图片纵向拉伸-程序员宅基地

文章浏览阅读908次。css中设置背景图拉伸填充,在css2.1之前这个背景的长宽值是不能被修改的。 实际的结果是只能重复显示,可以使用repeat,repeat-x,repeat-y,no-repeat这些属性来控制背景图片的显示。所以一般用作背景图片的有2类:1.是一整张大图,尺寸和区域大小刚好吻合2.一个很小的条状图,通过repeat后,形成一个很规则的大图背景。css3出现以后,可以用background-si..._background-size纵向拉伸

echo 3 > /proc/sys/vm/drop_caches 清理系统缓存_执行echo 3 >/proc/sys/vm/drop_caches,以下那种描述是正确的-程序员宅基地

文章浏览阅读4.5k次。清理系统缓存当服务器内存使用率高达90%以上时,且有较大耗内存操作时,可以考虑把系统的垃圾内存清理掉。方法如下linux23:~ # echo 3 > /proc/sys/vm/drop_cacheslinux23:~ # free -mtotalusedfreesharedbufferscached..._执行echo 3 >/proc/sys/vm/drop_caches,以下那种描述是正确的

经过测试synchronized并不会立即释放锁_synchronized类锁没释放-程序员宅基地

文章浏览阅读1.1w次,点赞7次,收藏3次。今天在测试进入偏向锁之后调用锁对象的hashCode()会不会升级为重量级锁,结果无意中测试出来了,synchronized进入重量级锁之后,即使临界代码执行完了也并不会立即释放锁先来看看对象头各个bit的含义上代码public class ObjectHeader { public static void main(String[] args) throws InterruptedException { Object monitor = new Object(); _synchronized类锁没释放

推荐文章

热门文章

相关标签