核心控件(【步骤】)

转换

输入控件

介绍

输入是【转换】里的的第一个分类,输入控件也是【转换】中的第一大控件,用来抽取数据或生成数据。输入是ETL中的E(Extract),主要做“数据提取”的工作 常用控件

CSV文件输入

窗口介绍

步骤名称

此控件的名称,可以修改,但是在一个转换里不能与其他控件重名 文件名

选择需要打开的csv文件,可通过后面的浏览按钮选择,也可以直接在输入框中输入 分隔符号

csv文件的分割符号,一般为逗号有时为分号,视情况进行修改 封闭符

每行数据的界限,一般为双引号,无需修改 NIO缓存大小

需要根据文件行数的大小调整此参数,若行数不多无需修改 包含列头行

勾选的话说明csv文件的首行为每列的标题,读写数据时将会跳过首行 行号字段

若文件第一行不是目标数据,可在此处输入开始的行号,即跳过输入的行号前的行 并发运行?

选择并发,可提高读写速度 字段中有回车换行?

若数据中有换行符则需要勾选,否则不要选择,不然会将换行符当数据读出 文件编码

若浏览数据出现乱码,可以更换文件编码 Excel输入

使用步骤

1.按照读取的原文格式配置对应的表格类型为xls还是xlsx 2.选择并添加对应的excel文件

1.通过“浏览”按钮选择文件2.通过“增加”按钮将选择的文件加入“选中的文件”列表 3.获取excel的sheet工作表

1.打开“工作表”面板2.点击”获取工作表名称…“按钮,在弹窗中从”可用项目“中选择目标工作表加入”你的选择“中,点击确定3.根据实际情况配置“起始行”、“起始列” 4.获取字段,并给每个字段设置合适的格式

1.打开“字段”面板2.点击“获取来自头部数据的字段…”按钮获取字段 5.预览数据 Get data from XML

使用步骤

1.添加需要转换的文件

1.通过“浏览”按钮选择文件2.通过“增加”按钮将选择的文件加入“选中的文件”列表 2.获取xml文档的所有路径,设置合适的循环读取路径

1.打开“内容”面板 2.点击“获取XML文档的所有路径“按钮获取文档的xpath 3.选择需要循环读取的xpath 4.手写需要自定义的字段及对应xpath

如id为当前节点的属性

xml路径设为“@id”节点设为”属性“ 如desc为父节点的属性

xml路径设为“…/@desc”节点设为”属性“ 3.获取字段,设置需要的字段及格式

1.打开“字段”面板2.点击“获取字段”按钮3.根据需要设置字段属性 4.预览数据 JSON input

使用步骤

1.添加需要转换的文件

1.通过“浏览”按钮选择文件2.通过“增加”按钮将选择的文件加入“选中的文件”列表 2.获取需要的字段并设置字段格式

1.需要注意json文件的路径中不能有中文 2.打开“字段”面板 3.点击“select fields”按钮,打开选择字段面板 4.选择相同层级的字段(不同层级的字段无法关联) 5.若需要的字段在不同的层级,则第一个json input选择处于外层的字段以及在这个层级中其他字段的父层级字段 6.新建一个json input 勾选“源定义在一个字段里”,之后将”从字段获取源“设置为上一步选择的父层级字段 7.打开新的json input的“字段”面板 8.点击“select fields”按钮,打开选择字段面板 9.选择需要的字段

若面板中无内容,则需要自己在“字段”面板中手工录入 3.预览字段

无法通过“select fields”按钮,打开选择字段面板的情况

json文件路径中有中文使用一个字段作为json的输入源 文本文件输入

使用步骤

1.添加需要转换的文件

1.通过“浏览”按钮选择文件2.通过“增加”按钮将选择的文件加入“选中的文件”列表 2.按照文件格式配置分隔符

1.打开“内容"面板2.根据文件类型设置“文件类型”3.根据文件内容设置“文件分隔符” 3.获取字段,并给字段设置合适的格式

1.打开“字段”面板 2.点击“获取字段”按钮获取字段

若获取的字段与文件不符,很大可能是分隔符配置错误,需要返回上一步骤修改分隔符 3.给各字段设置合适的格式 4.预览记录,查看是否能读到数据

1.留在(打开)“字段”面板2.点击“预览记录”按钮3.选择预览的数量并确定 表输入

使用步骤

1.创建数据连接

1.在spoon主面板左侧的树状目录处打开“主对象树” 2.在目录中有一个“DB链接”,在其上右键选择新建便会打开数据库连接框 3.填写一个便于记忆和区分的"链接名称“,如mysql_localhost_kettle_test_schema,说明连接的是【本地】的【mysql】数据库,schema的名字为【kettle_test】 4.“连接类型”选择mysql 5.“连接方式”选择Native(JDBC)

需要提前将jdbc的jar包加入kettle的lib目录 6.输入“主机名称”(ip地址)、“数据库名称”、“端口号”、“用户名”、“密码” 7.点击“测试”按钮,查看数据库链接情况,若无问题数据连接创建完成 8.若想要在其他【转换】中也能看到此链接,可在此链接上右键选择“共享”便可 输出控件

介绍

输出是【转换】里的第二个分类,输出控件也是【转换】中的第二大控件,用来存储数据。输出是ETL中的L(Load),主要做“数据加载”的工作 常用控件

Excel输出

仅能输出xls文件(Excel2003) 使用步骤

1.通过“浏览”按钮选择输出路径

需要注意选择输出路径后路径中一般回带.xls后缀,此处需要删掉,否则最终生成的文档会有两个xls后缀 2.打开“字段”面板 3.点击“获取字段”按钮获取上一【步骤】传来的数据字段 4.点击“最小宽度”按钮设置字段的格式 5.点击确定 Microsoft Excel输出

可以输出xls和xlsx文件 使用步骤

1.通过“浏览”按钮选择输出路径

需要注意选择输出路径后路径中一般回带.xls后缀,此处需要删掉,否则最终生成的文档会有两个xls后缀 2.选择“扩展名” 3.打开“字段”面板 4.点击“获取字段”按钮获取上一【步骤】传来的数据字段 5.点击“最小宽度”按钮设置字段的格式 6.点击确定 SQL文件输出

使用步骤

1.选择或创建合适的“数据库连接”2.选择“目标表”3.勾选“增加创建表语句”和"每个语句另起一行“4.填写输出文件的路径和“文件名”5.“扩展名”默认为sql 删除

删除数据库表中指定条件的数据,一般用做数据删除或两个表的数据对比去重操作 操作步骤

1.选择“数据库连接"2.选择"目标表"3.设置数据流跟目标表要删除数据的对应字段 更新

将数据库表中的数据和数据流中的数据做对比,若不同就更新,若数据流中的数据比数据库表中的数据多则报错 使用步骤

1.选择正确的“数据库连接”2.选择“目标表”3.输入两个表“用来查询值的关键字”(一般都是用主键来进行比较)4.输入要更新的字段 插入/更新

功能与【更新】一样,不过若数据苦衷数据不存在会执行插入 文本文件输出

使用步骤

1.设置对应的目录和"文件名称" 2.设置合适的"扩展名"

如txt.csv等 3.在“内容"面板里设置合适的”分隔符"

如分号,逗号,tab等 4.在“字段”面板里“获取字段”,并且给每个字段设置合适的格式 表输出

使用步骤

1.选择合适的“数据库连接”2.选择"目标表”,目标表可提前在数据库中创建好,也可以仅输入表名然后点击下面的sql按钮,利用kettle创建表3.指定数据表字段对应关系 转换控件

介绍

转换控件是【转换】里的第四个分类,也是【转换】中的第三大控件,用来转换数据。转换是ETL里面的T(Transform),主要做数据转换,数据清洗的工作ETL过程中T的工作量最大,耗时也最久,大概可以占到整个ETL的三分之二 常用控件

Concat fields

将多个字段连接起来形成一个新的字段,类似于mysql的contract 操作步骤

1.指定Target Field Name(拼接后的字段名) 2.指定Separator(拼接符)

最好是常用的比如逗号,分号或者空;如果用特殊符号可能导致异常 3.在“Fields”中设定要拼接的字段 值映射

把字段的一个值映射成其他的值 操作步骤

1.选择映射的字段“使用的字段名”2.若需要通过“目标字段名”自定义映射完以后的新字段名3.设置“不匹配时的默认值”4.设置映射值 增加常量

在本身的数据流里添加一列数据,该列的数据都是相同的值 操作步骤

1.输入字段名称2.输入字段类型3.选择字段格式4.设置字段内容 增加序列

给数据流添加一个序列字段,可以自定义该序列字段的递增步长;设定最大值后便会从起始值到最大值之间不断循环

注意

“使用数据库来生成序列”仅支持oracle数据库 操作步骤

1.通过“值得名称”设置字段名称2.勾选“使用计数器来计算sequence?”3.设置字段“起始值”4.通过“增长根据”设置步长5.设置字段的最大值 字段选择

从数据流中选择字段、改变名称、修改数据类型 操作步骤

1.“获取选择的字段” 2.根据需求在“选择和修改”面板修改字段的名称、长度、精度 3.若需要“列映射”,每次仅支持一个字段,且不能指定“移除”和“元数据” 4.在“移除”面板选择需要移除的字段 5.在“元数据”面板可以修改字段的更多属性:名称、类型、长度、精度、格式、编码类型等等

需要注意:想在“元数据”面板修改的字段需要先添加到“选择和修改”面板中 计算器

是一个函数集合,可用来创建新的字段,也可用来设置字段是否移除。主要用来进行字段之间的计算

需要注意,计算器无法直接实现字段与常量的计算,若需要与常量进行计算,可以在前面加一步“增加常量”,将常量设为一个字段,便可进行运算了 操作步骤

1.设定计算结果的字段名称——“新字段”2.选择“计算"方式3.选择需要计算的“字段A”4.选择需要计算的“字段B” 剪切字符串

指定输入流字段裁剪的位置剪切出新的字段 操作步骤

1.选择要剪切的字符串—“输入流字段” 2.选择存储剪切结果的字段名称—“输出流字段” 3.设置“起始位置”

即字符串起始下标 4.设置“结束位置”

即要剪切字符串长度 字符串替换

搜索内容并替换,若输入流的字段匹配上搜索内容就进行替换生成新字段 操作步骤

1.选择要替换的字段—“输入流字段”2.指定替换结果的字段名称—“输出流字段”3.设置被替换的内容—“搜索”4.设置替换内容—“使用··替换”5.设置“整个单词匹配”,若为是则只有字段为搜索内容时才进行替换,否则仅替换字段完全等于搜索的内容 字符串操作

可用于去除字符串两端的空格、大小写转换,并生成新字段 操作步骤

1.选择要操作的字段—“In stream field” 2.指定操作后的字段名称—“Out stream field” 3.设置去除字符串两端空格的格式—“Trim type”

none

不做操作 both

两边空格都去掉 left

去掉左边空格 right

去掉右边空格 4.设置大小写转换—“Lower/Upper”

none

不做操作 lower

转换为小写 upper

转换为大写 5.设置间隔—“Padding”

none

不做操作 left

左边增加间隔 right

右边增加间隔 排序记录

可以按照指定字段的升序或者降序对数据流进行排序 操作步骤

1.选择排序字段-“字段名称” 2.设置排序方式-“升序”

按照升序排列 否

按照降序排列 3.设置是否“大小写敏感” 去除重复记录

去除数据流里相同的数据行

使用之前要求必须先对数据进行排序

排序使用的是【排序记录】 操作步骤

1.选择去重时对照的字段-“字段名称”

需注意这个字段需要在【排序记录】里进行过排序 唯一行(哈希值)

删除数据流重复的行,效果等同于【排序记录】+【去除重复记录】

原理

给每一行数据建立哈希值,通过哈希值比较来进行去重 操作步骤

指定去重对照字段-“字段名称” 拆分字段

把字段按照分隔符拆分成两个或多个字段

需注意

拆分后原字段就会从数据流中消失

若要保留原字段,可通过其他控件将字段复制一份 拆分字段类型应为String

若要拆分其他类型的字段可在前一步通过【字段选择】将此字段类型改为String 拆分后的字段必须指定“类型”,否则拆分会报错 操作步骤

1.选择“需要拆分的字段”2.设定“分隔符”3.配置被分割后的新字段名称-“新的字段”4.设置被分割后的新字段的“类型” 列拆分为多行

把指定字段按照指定分隔符进行拆分为多行,其他字段直接复制补全

拆分字段类型应为String

若要拆分其他类型的字段可在前一步通过【字段选择】将此字段类型改为String 操作步骤

1.选择“要拆分的字段” 2.设定“分隔符” 3.输入“新字段名" 4.勾选“输出中包括行号”

可选 5.设定“行号字段”

即上面选中后用于存储行号的字段名称 行扁平化

把同一组的多行数据合并为一行,列拆分为多行的逆操作

注意

使用前需要使用【排序记录】对数据进行排序 每个分组的数据条数要保证一致,否则数据会有错乱

因而此控件比较鸡肋 操作步骤

1.选择“需要扁平化的字段” 2.输入“扁平化后的目标字段”的字段名称“目标字段”

合并几行就写几个字段 列转行

多列转一行:若数据有一列是完全相同的,则按照指定的字段将其中一列的字段内容变成不同的列,然后把多行数据转换为一行数据

注意

列转行之前数据流必须按照分组字段(即完全相同的字段)进行排序,否则数据会错乱 操作步骤

1.设定“关键字段”

从数据内容变成列名的字段 2.设定“分组字段”

列转行,转变以后的分组字段(即完全相同的字段) 3.设定“目标字段”

增加的列的列名字段

“关键字段”中的内容生成的对应字段名 4.设定“数据字段”

目标字段的数据字段 5.设定“关键字值”

数据字段查询时的关键字,可以理解为key

“关键字段”中的内容 6.设定“类型”

要给目标字段设置合适的类型,否则会报错 行转列

一行转多列,即把数据字段的字段名转换为一列,把数据行变为数据列,可以当做【列转行】的逆操作 操作步骤

1.设置“Key字段”

行转列生成的字段名 2.设置“字段名称”

原本数据流中的字段名称 3.设置“Key值”

类似【列转行】的数据字段查询时的关键字新字段的内容 4.设置“Value字段”

对应Key值数据列的列名 应用控件

介绍

应用控件是【转换】里的第五个分类,是kettle提供的一些工具类 常用控件

替换NULL值

将数据里面的null值替换成其他的值 操作步骤

可选择替换数据流中所有字段的null值

直接设置“值替换为”便可将所有字段的null值都替换为指定值 可以在下面的字段框中根据不同的字段替换null值

1.勾选“选择字段”2.在“字段”列表中填写要替换的“字段”名称3.设置该字段“值替换为” 写日志

主要是调试的时候使用,可将数据流的每行数据打印到控制台 操作步骤

1.选择“日志级别”2.通过“写日志”自定义输出的语句3.选择要输出打印的“字段” 流程控件

介绍

流程是【转换】中的第六个分类,主要用来控制数据流程和数据流向 常用控件

Swith/case

最典型的数据分类空间,可以利用某个字段的数据的不同的值,让数据流分为多路 使用步骤

1.选择需要判断的字段-“Switch字段”2.选择判断字段的值的类型-“Case值数据类型”3.填写分类数据的判断条件-“case值”4.设置“目标步骤”及“默认目标步骤” 过滤记录

相当于if-else,基于自定义的一个判断条件将数据流分为两路 使用步骤

1.填写数据的判断“条件”2.在外面选择判断条件为true和false对应的输出步骤 空操作

什么也不做,一般作为数据流的终点 使用步骤

关联上一步骤边可 中止

数据流的终点,若有数据流到此控件处,则整个转换程序中止,并在控制台输出报错信息;此控件一般用来校验数据或调试程序 使用步骤

1.设置“Options”

Abort the running transformation

中止转换流程 Abort and log as an error

立刻中止并报错 Stop input processing

停止输入流程 2.设置“中止信息” 查询控件

介绍

查询是【转换】里面的第九个分类,用来查询数据源里面的数据并合并到主数据流中 常用控件

数据库查询

从数据库中查询出数据,跟数据流中的数据进行左连接;数据库查询控件查询出来的数据不一定会全部列出,只能按照输入的匹配条件进行关联。 操作步骤

1.选择“数据库连接”2.选择待查询的“表名”3.输入数据表与数据流进行左连接的连接条件-“查询所需的关键字”4.设置“查询表返回的值” 流查询

流查询控件就是查询两条数据流中的数据,然后按照指定的字段做等值匹配

注意

流查询在查询前把数据都加载到内存中流查询只能进行等值查询 操作步骤

1.设置次表-“Lookup step”2.输入两个流进行匹配的字段(等值匹配)3.输入查询出的字段并指定“新的名称” 链接控件

介绍

连接是【转换】里面的第十个分类,一般是用来将多个数据集通过关键字进行连接形成一个数据集 常用控件

合并记录

用于将两个不同来源的数据合并,这两个来源的数据分别为“旧数据”和“新数据”,该步骤将旧数据和新数据按照指定的关键字匹配、比较、合并。

注意

旧数据和新数据需要事先按照关键字段排序 旧数据和新数据需要有完全相同的字段 合并后的数据将包括两个数据源的所有数据

变化的数据将会使用新数据替换,同时在结果里用一个标志字段指定新旧数据的比较结果 一般用于两张表的对比 操作步骤

1.设置“旧数据源” 2.设置“新数据源” 3.设置“标志字段”名称

标志字段用于保存比较的结果

identical

新旧数据一样 changed

新数据发生了变化 new

新数据中有旧数据中没有的记录 deleted

旧数据中有而新数据中没有的记录 4.设置“关键字段”

用于定位判断两个数据源中的同一条记录的字段 5.设置“比较字段”

对于两个数据源中的同一条记录,指定需要比较的字段 记录集连接

可以对两个数据流机型左连接、右连接、内连接、外连接

注意

连接前需要对两个数据流进行排序排序字段需要选两个表关联用的字段,否则容易出现数据错乱、空值等问题 操作步骤

1.选择需要连接的两个数据流的步骤 2.选择连接类型

INNER

仅展示两个数据流都有的数据 LEFT OUTER

以第一个数据流为主的连接 RIGHT OUTER

以第二个数据流为主的连接 FULL OUTER

展示两个数据流所有数据 3.从两个数据流里选出连接字段 统计控件

介绍

统计是【转换】里面的第十三个分类,可以提供数据的采样和统计功能 常用控件

分组

功能类似于GROUP BY,可以按照指定的几个字段进行分组,其余字段可以按照聚合函数进行合并计算

注意

分组前最好先基于分组字段对数据流进行排序 操作步骤

1.选择“分组字段”2.选择“聚合”字段,并配置字段名、聚合类型 映射控件

介绍

映射是【转换】里的第十八个分类,可用来定义子转换,方便代码封装和重用 常用控件

映射(子转换)

用来配置子转换,对子转换进行调用 子主题 2 操作步骤

1.新建一个子转换

1.新建一个【转换】2.添加【映射输入规范】3.定义“要求的输入字段”名称及类型4.添加【数据库查询】5.配置“数据库连接”6.配置“表名”7.配置“查询所需的字段”及“比较操作符”8.配饰“查询返回的值”及类型9.添加【映射输出规范】 2.新建一个【转换】 3.添加【表输入】 4.根据需求编写sql语句,查询某条数据 5.添加【映射】 6.将“转换”配置为第一步创建的子装换 7.打开“输入”面板 8.基于需求设置“字段映射” 9.添加【写日志】 10.配置需要显示的“字段” 脚本控件

介绍

脚本是【转换】里的第七个分类,通过写程序代码完成一些复杂的操作 常用控件

执行SQL脚本

连接到数据库里,执行编写的sql脚本 操作步骤

1.选择合适的数据库连接2.填入要执行的sql语句 Java代码

通过java脚本对字段进行操作 操作步骤

1.点开左侧“Code Snippits”树 2.点开“Common use”树 3.双击“Main”,右侧的面板便会出现预制的main函数 4.基于注释里的提示编写逻辑脚本便可

小窍门

1.获取字段内容

1.点开左侧“Input fields”树 2.点开想要获取的字段 3.双击“getString()”,右侧的面板便会出现对应的获取字段内容的方法

String word = get(Fields.In, “word”).getString®; 2.设置字段内容

1.点开左侧“Output fields”树 2.点开想要修改的字段 3.双击“setValue()”,右侧的面板便会出现对应的修改字段内容的方法

get(Fields.Out,“newword”).setValue(r,new_word); JavaScript代码

通过编写js脚本来实现逻辑操作 操作步骤

1.在右侧编写js脚本,注意所有变量都需要重新声明一下2.通过“获取变量”将获取脚本中声明的变量3.设置是否替换原来的字段内容

作业

通用控件

介绍

作业中常用的控件 常用控件

Start

开始控件,每个作业有且只有一个 操作步骤

1.直接拖入【作业】中便可 2.若需要定时启动则需要设置“类型”

不需要定时

运行后直接执行 时间间隔

通过下面的“以秒计算的间隔”和“以分钟计算的间隔”配置 天

通过“每天”配置 周

通过“每周”配置 月

通过“每月”配置 3.若需要重复调度,则需要勾选“重复” 转换

可通过此控件将【转换】添加到作业中 操作步骤

1.通过“Transformation”选择需要添加的【转换】脚本 邮件控件

介绍

作业中与邮件相关的控件 常用控件

发送邮件

通过此控件可以配置发送的邮件账号及发送内容,并可将日志以附件形式发送 操作步骤

1.填写“收件人地址”,若有需要可以填写“抄送”、“暗送” 2.填写“发件人地址”及发件人昵称“回复名称” 3.配置“服务器”

1.打开“服务器”面板 2.设置“SMTP服务器” 3.设置端口号

smtp一般使用端口为25smtps一般使用端口为465 4.设置“验证"信息

注意:现在大部分邮箱使用的是“独立密码”,需要去对应邮箱网站进行配置若邮箱使用了ssl验证,需要勾选“使用安全验证?” 5.设置“邮件消息”

1.填写邮件标题-“主题”2.填写邮件正文-“注释” 6.设置“附件”

1.若需要带附件则勾选“带附件?”2.设置“文件类型”

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: