kettle(PDI)安装使用过程,并部署到Linux下执行定时作业


前言

ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少,这里我要学习的ETL工具是Kettle!

本文使用工具及版本:

  • kettle:pdi-ce-9.1.0.0-324
  • jdk:1.8
  • mysql:msyql8
  • Linux:centos7.2
  • ftp工具:xftp5

一、kettle是什么?

  • Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。
  • Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
  • Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。
  • Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
  • Kettle(现在已经更名为PDI,Pentaho Data Integration-Pentaho数据集成)。

二、使用步骤

1.下载kettle及MySQL依赖

kettle下载地址:https://sourceforge.net/projects/pentaho/files/
MySQL依赖下载地址:https://dev.mysql.com/downloads/connector/j/
以上文件附百度网盘地址
链接:https://pan.baidu.com/s/1bD-hkilrcYfaUwo1zkIXTg
提取码:zjgl

2.解压缩下载的pdi压缩包

kettle是绿色版无需安装,可直接使用。在根目录下找到Spoon.bat,双击即可运行kettle。
在这里插入图片描述
将mysql的依赖放入根目录下的lib目录中
在这里插入图片描述

3.创建一个简单的转换

  1. 在主对象树中,双击转换
    在这里插入图片描述

  2. 在核心对象,点击输入,双击输入中的表输入
    在这里插入图片描述

  3. 双击右侧的表输入,新建要输入的数据库连接
    在这里插入图片描述
    在这里插入图片描述

  4. 在核心对象,输出中,双击插入/更新
    在这里插入图片描述

  5. 双击右侧插入/更新,新建要输出的数据库连接

  6. 点击浏览,选择要输出的表,分别获取字段并编辑字段
    在这里插入图片描述

  7. 运行转换,直接点击启动,运行前需要先保存转换
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  8. 最后转换成功
    在这里插入图片描述

4.Linux安装kettle

  1. 直接将windows本地下载的pdi压缩包使用ftp工具上传到Linux中。
  2. 进入文件所在目录,使用 unzip pdi-ce-9.1.0.0-324.zip 命令将文件解压缩。
  3. 将windows上编辑好的转换文件(以.ktr结尾的文件)上传到Linux的pdi目录下。我这里把 test_20210811.ktr 文件上传到了 /kettle/data-integration/files/ 目录下。
  4. 测试是否安装成功,在pdi根目录下,输入 ./pan.sh,显示如下信息表示安装成功。
    在这里插入图片描述
  5. 测试转换是否能正常执行,在pdi根目录下输入
./pan.sh -file=/kettle/data-integration/files/test_20210811.ktr

如下图显示则表示成功执行。
在这里插入图片描述
6. 在pdi目录下输入 vi test.sh 命令,新建一个test.sh文件,在test.sh内输入如下内容:

export JAVA_HOME=/jdk/jdk1.8.0_92
export JRE_HOME=/jdk/jdk1.8.0_92/jre
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

/kettle/data-integration/pan.sh -file=/kettle/data-integration/files/test_20210811.ktr > /kettle/data-integration/files/$(date "+%Y%m%d%H%M%S").log

其中kettle的目录和jdk的目录替换成自己的,并保存。
7. 修改test.sh权限,给他执行权限:chmod a+x *.sh
8. 编辑定时任务:crontab -e

56 10 * * * /kettle/data-integration/jobs/test.sh

cron表达式从左到右依次表示分钟、小时、日、月、周。
我这里设置的意思时每天的10:56执行test.sh,test.sh目录设置成自己的目录。
9. 保存并退出后,重启crond.service服务:systemctl restart crond.service
10. 到数据库验证并查看log文件,验证是否成功。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了kettle的使用,而kettle还有更多的用法需要去进一步学习。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值