【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 的含义是后面是文件名
相关文章推荐
- 马宁的Windows Phone 7.1初体验——XNA与Silverlight集成
- Kettle7.1在CentOS7下连接资源库报错No more handles [MOZILLA_FIVE_HOME=''] 等解决办法
- Kettle7.1 创建数据库资源库方法整理
- 马宁的Windows Phone 7.1初体验——XNA与Silverlight集成
- Kettle7.1 学习笔记
- Kettle7.1 学习笔记
- 马宁的Windows Phone 7.1初体验(二)——Push Notification
- 马宁的Windows Phone 7.1初体验(二)——Push Notification
- Kettle 7.1 share.xml中文乱码解决
- 【kettle 7.1】data grid -> 数据库表输出
- 马宁的Windows Phone 7.1初体验——XNA与Silverlight集成
- 马宁的Windows Phone 7.1初体验(三)——Tile
- 马宁的Windows Phone 7.1初体验——XNA与Silverlight集成
- Kettle7.1 无法连接sqlserver2014
- kettle7.1连接sqlserver连不上报异常解决
- 【kettle 7.1】data grid 输入 -> txt文本输出
- 马宁的Windows Phone 7.1初体验(三)——Tile
- kettle7.1的资源库配置变为灰色,且没有了Connect按钮
- 【kettle 7.1】简介
- 马宁的Windows Phone 7.1初体验(三)——Tile