Kettle
是一款由纯Java语言开发的免费开源的ETL工具,ETL即是Extract-Transform-Load的缩写,用来描述将数据从来源端通过萃取(Extract)、转换(Transform)、加载(Load)到目标端的过程,通常用于数据清洗、数据迁移等.
下载地址:https://sourceforge.net/projects/pentaho/files/
GitHub地址:https://github.com/pentaho/pentaho-kettle
Java doc地址:https://javadoc.pentaho.com/
文档地址:https://help.pentaho.com/
转换组件文档:https://help.pentaho.com/Documentation/8.2/Products/Data_Integration/Transformation_Step_Reference
作业组件文档:https://help.pentaho.com/Documentation/8.2/Products/Data_Integration/Job_Entry_Reference
由于Kettle
是由Java语言开发,因此,我们在安装Kettle之前需要安装Java运行所需环境JDK
window环境中的安装这里不再多做说明,只需要下载JDK的exe可运行文件,一直点击下一步即可安装,安装成功后再设置JAVA_HOME
环境变量即可,非常简单
在Linux环境中,我们首先需要下载JDK的安装文件,本篇博客中安装的版本为JDK1.8
解压文件
tar -xvf jdk-8u144-linux-x64.tar.gz -C /usr/local/java
配置环境变量vim /etc/profile
,编辑加入JDK路径
export JAVA_HOME=/usr/local/java/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
编译
source /etc/profile
查看是否安装成功
[root@izbp1ad1jbc6ftdure2mpnz ~]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
Kettle
实战100篇系列博客下载的版本是当前最新版本Pentaho 8.3
下载目录地址:https://sourceforge.net/projects/pentaho/files/Pentaho%208.3/client-tools/下的pdi-ce-8.3.0.0-371.zip
目前我们都是在Windows环境中使用Kettle
的Spoon
图形化界面程序进行ETL的开发,
Kettle是用Java开发的纯绿色版程序,因此我们只需要将下载的文件解压到指定目录即可,
我本机解压目录D:\Users\xiaoymin\Bin\data-integration\data-integration 8.3
解压完成后,我们需要关注Kettle的几个关键目录和文件
.ktr
结尾,而Pan
是转换的命令行执行程序,.kjb
结尾,而Kitchen
是作业的命令行执行程序Carte
也可用于分布式和协调跨机器执行作业,即Kettle集群方式.我们通过上面的步骤即可安装成功Kettle,此时我们可以运行Spoon程序创建转换或者作业,初始化界面如下:
Kettle中两个核心的组件服务:转换和作业
${user}
的方式来获取变量的值,通过:文件 -> 新建 -> 转换用以创建转换由于本系列博客是以实战为主,因此很多Kettle的概念会以实战中的篇幅中介绍,不单独说明,当然,对于某些核心的组件会单独再博客中说明
我们访问CSDN的博客RSS地址:https://blog.csdn.net/u010192145/rss/list,响应内容如下:
目前我们需要通过网络访问该RSS地址,然后解析XML最终输出到Excel文件中,从XML中剥离出来id、标题、发布时间、作者、简介等字段
这个过程涉及到了请求RESTful地址,数据解析,数据转换(输出到Excel),因此我们通过Kettle中的转换来实现此过程
生成记录
从Kettle的转换核心对象树中拖拽生成记录组件,定义url地址,如下图:
REST client组件
第二步是需要用到REST client组件,帮助我们发送地址请求获取得到XML的内容,如下图:
GET data from XML
我们通过REST组件请求得到了XML内容,因此我们需要使用GET data from XML组件来接收,接收后定义输出映射字段
Excel 输出
通过上一个组件的字段映射定义,接下来我们就可以将请求得到的XML结果循环输出到Excel中了,选择对象树中的Excel 输出组件,设置相关属性,如下图:
运行
整个转换过程创建完后如下图:
此时,我们点击Spoon界面的运行按钮,运行我们的转换,输出日志:
此时,我们打开已经下载好的本地Excel文件,看是否将Xml的结果已经导入到本地
至此,整个过程已经完成了,如果你是开发人员的话,通过Kettle来完成此操作会大大提升你的工作效率
因为,假设您是一名Java开发人员,你需要用到的技术栈如下:
但是通过Kettle来操作的话,上面的技术栈我们就可以省略了(虽然我都会:),无奈~~~)
看到这里,您是否想跃跃欲试呢?