Kettle操作学习笔记

发布时间 2023-08-21 03:09:40作者: ganwong99

许多操作建议去找个视频教程学来的清晰。下面的仅仅是做的重点笔记。
推荐一个很好的视频教程:
尚硅谷 大数据技术之Kettle视频教程
下述笔记基于此教程。

概念

Kettle中有转换作业
转换负责数据输入、转换、校验和输出工作,使用转换完成数据ETL(Extract-Transform-Load)的全部工作。转换由步骤构成,如文本文件输入、过滤输出、执行sql脚本等。步骤之间使用Hop连接。Hop定义了一个数据流通道,即数据由一个步骤流向下一个步骤。Kettle中数据的最小单位是数据行row,数据流中流动的是缓存的行集Rowset.
作业负责定义一个完成整个工作流的控制。
Kettle是图形界面,主要的操作通过拖拽完成。

kettle转换

输入控件

csv文件输入

img
步骤名称:可以修改,但是在同一个转换里面要保证唯一性;
文件名:选择对应的csv文件;
列分隔符:默认是逗号;
封闭符:结束行数据的读写;
NIO缓存大小:文件如果行数过多,需要调整此参数;
包含列头行:意思是文件中第一行是字段名称行,表头不进行读写;
行号字段:如果文件第一行不是字段名称或者需要从某行开始读写,可在此输入行号。
并发运行?:选择并发,可提高读写速度;
字段中有回车换行?:不要选择,会将换行符做数据读出;
文件编码:如果预览数据出现乱码,可更换文件编码;

操作步骤
1.在Kettle中新建一个转换,然后选择转换下面的“csv文件输入”和“Excel输出”控件。
2.双击CSV文件输入文件控件,在弹出的设置框里找到对应路径里的的csv文件,设置好分隔符、列头行等信息,然后点击下面的获取字段按钮,将我们需要的字段加载到kettle中。
3.按住键盘SHIFT键,并且点击鼠标左键将两个控件链接起来,链接时选择“主输出步骤”。
4.双击Excel输出控件,在弹出的设置框里设置文件输出路径和文件名称,然后点击上面的字段框,依次点击下面的获取字段和最小宽度,获取到输出字段。
5.点击左上角的启动按钮,在弹出的设置框里点击启动,执行该转换。

tips
kettle下方有执行结果日志。如果报错日志图标下的第一个图标可以查看错误原因。

文本文件输入

例如提取服务器上的日志信息是公司里ETL开发很常见的操作,日志信息基本上都是文本类型。操作步骤
1.添加需要转换的日志文件。浏览找到目标文件后要点增加
2.按照日志文件格式,指定分隔符 。
3.获取字段,并给字段设置合适的格式。
4.最后点预览记录,看看能否读到数据。

tips:
1.如果输出的时候,没有选定路径,只是设置了输出文件名,那么这个文件输出位置在启动spoon的文件夹里。(让我好找,本来它提示的文件夹叫LOCAL)
2.输入、输出等一应的设置,不要漏掉其中任何一个操作步骤,不然会报奇怪的错误。尤其是输出时的 内容-获取字段

excel文件输入

要注意的点:
1.如果是xlsx文件的话,选择Excel 2007 XLSX (Apache POI).在路径中选择好文件以后点击添加
2.在工作表中选择sheet。如果不做选取则默认全部。
3.获取字段。 就我目前的理解是,字段代表的是输出的新表的表头

xml输入

<?xml version="1.0" encoding="UTF-8"?>
<students Description="students of atguigu">
    <group groupID="1">
         <student>
            <name>孙悟空</name>
            <gender>男</gender>
            <age>500</age>
         </student>
         <student>
            <name>猪八戒</name>
            <gender>男</gender>
            <age>250</age>
         </student>
         <student>
            <name>沙和尚</name>
            <gender>男</gender>
            <age>150</age>
         </student>
    </group>
    <group groupID="2">
         <student>
            <name>武大郎</name>
            <gender>男</gender>
            <age>48</age>
         </student>
         <student>
            <name>潘金莲</name>
            <gender>女</gender>
            <age>18</age>
         </student>
    </group>
</students>  

XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。
XPath 使用路径表达式在 XML 文档中选取节点。
img
拖入Get data from XML,选取好路径目标文件并增加。
重点在于循环读取路径/students/group/student
img
添加描述和分组:
img

JSON输入

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。JSON对象本质上就是一个JS对象,但是这个对象比较特殊,它可以直接转换为字符串,在不同语言中进行传递,通过工具又可以转换为其他语言中的对象。
JSON核心概念:数组:[ ] 对象:{ } 属性:key:value

JSONPath类似于XPath在xml文档中的定位,JsonPath表达式通常是用来路径检索或设置Json的。其表达式可以接受“dot–notation”(点记法)和“bracket–notation”(括号记法)格式.
点记法:$.store.book[0].title
括号记法:$[‘store’][‘book’][0][‘title’]
img

文件路径尽量不要有中文,会出现无法读取等错误。

获取字段
img
进一步进行第二次剖析:
img
img