ETL工具Kettle

本文详细介绍了Kettle的数据抽取过程,包括Job、JobEntry、JobHop、Transformation、Step和Hops的概念,展示了如何使用Kettle将文本文件转换为Excel并进行数据清洗和排序的实际操作。
摘要由CSDN通过智能技术生成

1 Kettle的基本概念

一个数据抽取过程,主要包括创建一个作业(Job),每个作业由一个或多个作业项(Job Entry)和连接作业项的作业跳(Job Hop)组成。每个作业项可以是一个转换(Transformation)或是另一个作业。一个转换由一个或多个步骤(Step)和连接步骤的(Hop)组成。

转换主要用于数据的抽取(Extraction)、转换(Transformation)以及加载(Load),比如读取文件、过滤输出行、数据清洗或加载到数据库等步骤。一个转换包含一个或多个步骤,每个步骤都是单独的线程,当启动转换时,所有步骤的线程几乎并行执行。步骤之间的数据以数据流方式传递。所有的步骤都会从它们的输入跳中读取数据,并把处理过的数据写到输出跳,直到输入跳里不再有数据就终止步骤的运行;当所有步骤都终止了,整个转换就终止了。由于转换里的步骤依赖前一个步骤获取数据,因此转换里不能有循环

相较于转换,作业是更加高级的操作。作业由一个或多个作业项(作业或转换)组成。所有的作业项是以某种自定义的顺序串行执行的。作业项之间可以传递一个包含了数据行的结果对象。当一个作业项执行完成后,再传递结果对象给下一个作业项。作业里可以有循环

跳是步骤之间带箭头的连接线,它定义了一个单向通道,用于连接两个步骤,实现将数据从一个步骤(写入数据到行集)流向另一个步骤(从行集中读取数据)。跳是两个步骤之间的被称为“行集”(Row Set)的数据行缓存(可以在转换设置中定义行集大小)。若行集满了,则向行集写数据的步骤将停止写入,直到行集里又有空间。若行集空了,则从行集读取数据的步骤就会停止读取,直到行集里又有可读取的数据行。跳对于向行集写入数据的步骤来说是输出跳,一个步骤可以拥有多个输出跳;跳对于从行集中读取数据的步骤来说是输入跳。

作业跳是作业项之间带箭头的连接线,它定义了作业的执行路径。

2 Kettle的基本功能

Kettle的基本功能包括转换管理作业管理。转换管理主要包括输入、输出、转换、应用、流程、脚本、查询、检验、作业、映射和批量加载等功能。作业管理主要包括通用、邮件、文件管理、条件、脚本、批量加载等功能。

3 安装Kettle

在Windows系统中打开浏览器,访问Kettle官网(https://sourceforge.net/projects/pentaho/),下载Kettle安装文件pdi-ce-9.1.0.0-324.zip。

把pdi-ce-9.1.0.0-324.zip解压缩到“D:\”目录下(或者也可以选择一个其他目录,比如“C:\”),会生成一个“data-integration”目录,该目录下就包含了Kettle。在data-integration目录里包含了Spoon的启动文件,即spoon.bat,双击该文件就可以启动Spoon,

4 数据抽取

1 把文本文件导入到Excel文件中
这里给出一个实例,演示如何使用Kettle把文本文件导入到Excel文件中,

具体包括如下步骤: 创建文本文件; 建立转换; 设计转换; 执行转换。

1.创建文本文件

在“D:\”目录下新建一个文本文件studentinfo.txt,其内容如图7-4所示,文件的第1行是字段名称,包括sno、name、sex和age,字段之间用“|”隔开,其余行都是记录,字段之间也是用“|”隔开。

2.建立转换

在Spoon主界面的“主对象树”栏目中,在“转换”上面单击鼠标右键,在弹出的菜单中点击“新建”。点击Spoon主界面左上角的“保存”图标,把这个转换保存到某个路径下并且名称为“text_to_excel”。

3.设计转换

在“核心对象”栏目中,在“输入”控件里把“文本文件输入”拖到右侧设计区域,然后在“输出”控件里把“Excel输出”拖到右侧设计区域,然后为这两个控件建立连线

放置文本文件输入和Excel输出两个控件

这里的连线就是前文介绍过的“跳”。为这两个控件建立连线的方法是,按住键盘上的Shift键,然后用鼠标左键单击“文本文件输入”控件图标,再用鼠标左键单击“Excel输出”控件图标,最后在其他空白区域单击鼠标左键,这样就建立了一条从“文本文件输入”到“Excel输出”的连线。

双击设计区域的“文本文件输入”控件,打开设置界面,点击“文件”选项卡,点击“文件或目录”右侧的“浏览”按钮,把studentinfo.txt文件添加进来,然后点击“增加”按钮,studentinfo.txt文件就会被增加到“选中的文件”中,增加后的效果如图7-8所示。

点击增加,成功添加文件,继续设置内容选项卡,修改分隔符和编码

获取字段

预览记录

双击设计区域的“Excel输出”控件图标,打开设置界面,在“文件”选项卡中,设置“文件名”为“D:\file”。

在“字段”选项卡中,点击界面底部的“获取字段”按钮,成功获取字段以后的效果,

然后把“sno”和“age”字段的“格式”设置为“#”。最后,点击“确定”按钮完成“Excel输出”控件的设置。全部设置完成以后,需要保存设计文件。

4. 执行转换

在转换设计界面中,点击三角形按钮开始执行转换,

在界面中点击“启动”,如果转换执行成功,

,在两个控件图标上都会显示绿色的勾号。

这时,到D盘根目录下就可以看到新生成的文件file.xls,可以使用Excel软件打开file.xls查看内容

这样,就完成了把文本文件导入到excel文件中

5.数据清洗

这里给出一个实例,演示如何使用Kettle实现数据排序,具体包括如下步骤: 创建文本文件; 建立转换; 设计转换; 执行转换。

1.创建文本文件

在“D:\”目录下新建一个文本文件score.txt,文件的第1行是字段名称,包括name和score,字段之间用分号隔开,其余行都是记录,字段之间也是用分号隔开。

2.建立转换

在Spoon主界面的“主对象树”栏目中,在“转换”上面,单击鼠标右键,在弹出的菜单中点击“新建”。点击Spoon主界面左上角的“保存”图标,把这个转换保存到某个路径下并且名称为“sort_data”。

3.设计转换

在“核心对象”栏目中,在“输入”控件里把“文本文件输入”拖到右侧设计区域,然后在“转换”控件里把“排序记录”拖到右侧设计区域,然后为这两个控件建立连线。

双击设计区域的“文本文件输入”控件图标,打开设置界面,点击“文件或目录”右侧的“浏览”按钮,添加文件“D:\score.txt”,然后,点击“增加”按钮,

在“内容”选项卡中,设置分隔符为分号“;”

在“字段”选项卡中,点击“获取字段”按钮,成功获取字段以后的效果

这时,点击界面底部的“预览记录”按钮,就可以预览数据。最后,点击界面底部的“确定”按钮,完成“文本文件输入”控件的设置。

双击设计区域的“排序记录”控件图标,打开设置界面,在“字段名称”下拉列表中选择“score”,在“升序”下拉列表中选择“是”,然后点击“确定”按钮完成设置。全部设置完成以后,需要保存设计文件。

​​​​​​​

4.执行转换

在转换设计界面中,点击三角形按钮开始执行转换,在弹出的界面中点击“启动”,如果转换执行成功,在两个控件图标上都会显示绿色的勾号。这时,在“执行结果”的“Preview data”选项卡中就可以预览排序后的数据

​​​​​​​

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~羊yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值