您的位置:首页 > 其它

【kettle 7.1】初体验

2018-03-05 00:00 176 查看

1. 目标

由于项目需要把老旧的数据进行抽取清洗,最终进行大数据分析,因此投入到了数据仓库建立的学习过程。kettle是一个开源的ETL工具,下面我们通过一个小的学习目标对kettle进行了解。

本文采用的kettle版本是7.1,下载地址:
https://sourceforge.net/projects/pentaho/files/Data%20Integration/7.1/
本文的目标实现

1、从CVS读取数据,输出数据

2、第一步的数据作为数据输入,通过js脚本,每行数据加上 "hello,"字符串,输出数据

3、第二步的数据作为第三步数据的输入,写入到XML文件中。

本文实现的效果:

在文件夹中存在三个文件,分别是 源数据文件 customer_list.csv 、kettle的工程文件 hello.ktr、数据转换后的文件 hello_customer.xml



输出的XML文件:



2、实现

2.1 准备

(1)在指定的目录下新建kettle/tutorial/hello文件夹

(2)准备CSV数据文件 customer_list.csv,填入下面的内容:



2.2 使用Spoon工具建立kettle的工程

在解压包中 打开 Spoon.bat 程序,由于它是基于JAVA的图形化程序,所以需要在运行环境中配置JDK。打开spoon后,我们可以看见这些一个界面



新建一个名为 hello 的转换



此时,将会在左侧的目录树下出现一些可拉拽的组件,我们为了完成上面的任务,重点关注下面箭头的几个组件



2.3 建立组件联系

分别从左边的step库中拖拽step组件到右边的窗口中,分别是

(1)输入-> CVS文件输入 ;(2)脚本-》javascript脚本;(3)output -> XML OUTPUT

然后选中CVS文件输入,右边有一个 click on this output connector xxxx,把它分别连接到下一级组件。



2.4 配置CVS文件输入

双击CVS文件输入,编辑step名称,选中CVS文件,点击获取字段,即可把 cvs中的name作为该step的输出,这时,我们可以点击预览,查看下输入的内容。



编辑后,我们可以右键 “客户名单输入” 这个step,然后点击“显示输出字段”预览一下。

2.5 配置js脚本

该脚本的目的是声明一个msg变量,并把前面输入的每行数据添加一些信息,然后作为该step的输出。



当我们在编辑框中写好脚本后,点击下方的“获取变量”即可作为该step的输出。当我们编辑完该step后,也可以通过右键step,点“显示输出字段”预览。

2.6 配置XML输出

按照下面配置输出文件路径和文件名



最关键的一步是配置输出字段,在字段选项卡中点击获取字段,删除多余的字段“name”,content type要选择element,熟悉XML的应该知道什么是element什么attibute吧。。。



3 验证、预览和运行

上面的step都配置完毕了,在数据转换之前我们可以通过预览每个step的输入和输出验证定义该step的配置正确,假设现在需要预览js转换这个step,选中JS的step,点击上面的“预览这个转换”的按钮:



在弹出框中点击快速启动



这时,就可以验证数据是否正确。

验证正确后,我们就可以执行该次转换,获取转换结果了。



我们可以在下方的窗口中获取本次转换的日志。

我们需要注意的是运行机制,当执行一个转换,几乎所有步骤是同时执行的,因为转换时异步执行的;行数据流按照设计步骤流转,每个处理流执行到下一个步骤无需等待其他步骤。实际开发时,不了解这个特性,可能出现和设想不一样的结果。

4 使用pan命令完成转换

除了可以在spoon中通过图形化的方式执行转换,我们还可以通过pan命令的方式完成。

通过命令切换到kettle安装目录下,使用命令执行转换

pan /file F:\kettle\tutorial\hello\hello.ktr

其中 /file 的含义是后面是文件名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据仓库 kettle ETL