Pentaho Data Integration(Kettle) 简单使用

3,533 阅读3分钟

Kettle是一款开源的ETL工具,可以用它来对数据进行抽取、清洗和转换操作,从而获得我们想要的数据。

Kettle下载

要使用Kettle当然得先下载才行,Kettle的官网提供了下载超链接:

Paste_Image.png

当前最新版本是v7.1,点击绿色按钮即可跳转到sourceforge网站下载,这里默认的提供的下载版本就是最新版的,如果要选择历史版本可以点击这里选择合适的版本下载。

Kettle启动

Kettle没有安装包,绿色版无需安装,下载完成后会得到一个zip压缩包,解压后会生成一个文件夹:

Paste_Image.png

这个文件夹就是kettle的主目录,打开文件夹可以看到Kettle的启动脚本和快捷方式。Windows系统点击Spoon.bat即可启动,类Unix系统需通过命令的形式启动,我们切换到Kettle主目录,然后执行spoon.sh脚本,如下:

cd data-integration
./spoon.sh

启动完成界面:

Paste_Image.png

运行第一个转换

在开始第一个转换之前我们还得做一些准备工作,因为选择连接的数据库是MySQL,所以需要MySQL的连接驱动,Kettle默认是没有的,至少在7.1还没,所以需要去添加一个mysql-connector-java-***.jar,把他放在libswt的对应操作系统目录下:

Paste_Image.png

osx64目录下

Paste_Image.png

重新启动kettle。

kettle分转换和作业两种,转换是作业的子集,一个作业由许许多多转换构成的,双击左侧主对象树下面的转换即可添加一条转换,先保存下:

Paste_Image.png

然后双击ts1下的DB连接,填写连接名称,连接类型选择MySQL,连接方式按需选择,jdbc应该没什么好说的,如果选择jndi就要多提一句,本地测试的话需要编辑Kettle主目录下的simple-jndi/jdbc.properties配置,如下:

Paste_Image.png

这里的填的名称都是/前的名字,之后点击测试按钮可以检测配置是否正确。 配置完数据库连接之后就可以真正开始写一个转换了,我们选择核心对象,这里面有许多的转换组件,且帮我们分好了类别,我们可以拖拽他们到主面板上:

Paste_Image.png

以上是一个转换示例,一下做一个简单说明

  1. 清空item表:主要是执行一条SQL语句:

Paste_Image.png

  1. 自定义常量数据:定义一些需要用到的数据,这个不是必须的:

Paste_Image.png

3.从bas_item表抽取数据:

Paste_Image.png

  1. 过滤记录:过滤一些无效数据

Paste_Image.png

  1. 去除不需要字段:这个功能比较实用,可以给字段改名,删除字段,修改字段格式等

Paste_Image.png

  1. JavaScript代码:一些简单的JavaScript代码,主要还是用来做数据辨别的

Paste_Image.png

  1. 更新item维度表:把抽取出来的数据用来更新另一张表

Paste_Image.png

最后,可以运行这个示例来测试了:

Paste_Image.png

顺便提一下这里可以添加一些运行转换会用到的变量,点击启动即可:

Paste_Image.png

执行成功会在对应步骤的右上角显示成功标记。

以上。