文章目录

  • 前言
  • 一、kettle是什么?
  • 二、使用步骤
    • 1.下载kettle及MySQL依赖
    • 2.解压缩下载的pdi压缩包
    • 3.创建一个简单的转换
    • 4.Linux安装kettle
  • 总结

前言

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还有更多的用法需要去进一步学习。

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

  1. 【云服务器部署】---Linux下安装MySQL

    [云服务器部署]---Linux下安装MySQL 有关如何阿里云ECS建网站,推荐一片文章,我是是通过这篇文章安装tomcat和jdk的 网址:阿里云ECS建网站(建站)超详细全套完整图文教程! 注意 ...

  2. 使用oracle安装jdk1.7,【Java】Linux下安装配置Oracle JDK 1.7版本

    1 环境 Vmware虚拟机中的Ubuntu 12.04 32位系统 2具体安装步骤 ①下载最新的jdk包 注意jdk区分32位版本和64位版本,要与Ubuntu兼容才行 下载地址 http://ww ...

  3. 如何将javaweb项目部署到linux下

    以下是对将javaweb项目部署到linux下的方法进行了详细的分析介绍 一般都在windows下开发的现在部署到linux下 将项目达成war包(用eclipse项目右键>Export> ...

  4. java web 连接linux_如何将javaweb项目部署到linux下

    以下是对将javaweb项目部署到linux下的方法进行了详细的分析介绍 一般都在windows下开发的现在部署到linux下 将项目达成war包(用eclipse项目右键>Export> ...

  5. linux使用oracal11g详细过程,很给力的linux下Oracle11g的安装过程及图解.doc

    很给力的linux下Oracle11g的安装过程及图解 我的linux版本是centos5.5,内核版本是2.6.18-194.el5 ,linux下安装oracle系统最好是1G内存,2G的swap ...

  6. python3怎么安装gmpy2_python2/3 模块gmpy2在linux下安装

    !!!首先建议在Windows下安装 因为很方便!!! gmpy2是解密RSA时所用脚本的一个模块python下输入 import gmpy2  ,提示 Traceback (most recent ...

  7. Linux下数据库连接超时时长,关于.Net Core 部署在Linux下连接SqlServer数据库超时解决办法...

    .Net Core 在 Linux 下连接 SqlServer 需要 SqlServer2008 SP3或以上版本,或SqlServer2012,或SqlServer2014. 如果SqlServer ...

  8. 在Ubuntu18.04安装GMT-6.1.1(在 Linux 下编译 GMT 源代码)

    参考:GMT中文社区 写本文的目的:参考了CSDN上面许多安装GMT方法但是安装过程出现了各种问题,可能因为下载了官网的最新版本,而CSDN都是老版的安装方法有些地方不适用,走了好多弯路.后来才发现G ...

  9. linux安装基于PHP的web软件,Linux下Web服务器应用之基于LAMP构建phpwind论坛

    Linux下Web服务器应用之 基于LAMP构建phpwind论坛 v什么是LAMP Ü目前最为成熟的一种企业网站应用模式,可提供动态Web站点应用及开发环境 v构成组件 ÜLinux.Apache. ...

  10. 在linux下安装python3_【转】在Linux下安装python3

    原文链接:http://www.cnblogs.com/feng18/p/5854912.html 1.linux下安装python3 a. 准备编译环境(环境如果不对的话,可能遇到各种问题,比如wg ...

最新文章

  1. geohash java github_GitHub - GongDexing/Geohash: GeoHash是目前比较主流实现位置服务的技术,用最简洁的Java实现GeoHash算法...
  2. java Servlet学习笔记
  3. php读取usb设备信息,急,请问如何获取USB设备的路径,非HID类型
  4. 使用Certbot 生成 https 证书
  5. android xml通知栏权限配置,Android开发中 AndroidManifest.xml配置之service,receiver标签配置详解...
  6. 【刷题】BZOJ 2194 快速傅立叶之二
  7. JQuery学习笔记(1)
  8. 三星 S7562i 一键 Root
  9. 计算机工程 学什么,依然很火的计算机工程专业学什么?
  10. 病毒式传播ip_病毒式传播后网络安全实践的简单指南
  11. Java尚能饭否?10月编程排行榜告诉你!
  12. Field [price] of type [text] is not supported for aggregation [avg]
  13. h5应用数据加密_在线视频加密用H5加密方案有哪些优点?
  14. Git之(三)Git中常用命令——分支管理
  15. 关于无线wifi漫游设置
  16. HDU 1873 优先队列
  17. kodi 下载插件失败/无法刮削
  18. 2017.1直播类APP排行:斗鱼第一、YY第二、映客第三
  19. 百度智能小程序巡检调度方案演进之路
  20. 手机网站支付(公钥证书方式)

热门文章

  1. 分子动力学模拟软件_实惠的分子动力学模拟个人台式机装机和测试
  2. 研磨设计模式笔记之简单工厂模式
  3. 《线性代数》同济六版 总结
  4. readelf命令解析及演示
  5. PDF怎么转换成Word文字
  6. 学会提问pdf_原来只要1分钟,Word、PPT、PDF文件就能随意互相转换,快学学
  7. 如何在Azure Data Studio中导出数据库?
  8. Python 高等数学问题的符号解
  9. Chrome最新离线安装包下载
  10. 单片机编程:软件定时器