Kettle学习.docx

上传人:b****5 文档编号:7494936 上传时间:2023-05-11 格式:DOCX 页数:45 大小:1.14MB
下载 相关 举报
Kettle学习.docx_第1页
第1页 / 共45页
Kettle学习.docx_第2页
第2页 / 共45页
Kettle学习.docx_第3页
第3页 / 共45页
Kettle学习.docx_第4页
第4页 / 共45页
Kettle学习.docx_第5页
第5页 / 共45页
Kettle学习.docx_第6页
第6页 / 共45页
Kettle学习.docx_第7页
第7页 / 共45页
Kettle学习.docx_第8页
第8页 / 共45页
Kettle学习.docx_第9页
第9页 / 共45页
Kettle学习.docx_第10页
第10页 / 共45页
Kettle学习.docx_第11页
第11页 / 共45页
Kettle学习.docx_第12页
第12页 / 共45页
Kettle学习.docx_第13页
第13页 / 共45页
Kettle学习.docx_第14页
第14页 / 共45页
Kettle学习.docx_第15页
第15页 / 共45页
Kettle学习.docx_第16页
第16页 / 共45页
Kettle学习.docx_第17页
第17页 / 共45页
Kettle学习.docx_第18页
第18页 / 共45页
Kettle学习.docx_第19页
第19页 / 共45页
Kettle学习.docx_第20页
第20页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Kettle学习.docx

《Kettle学习.docx》由会员分享,可在线阅读,更多相关《Kettle学习.docx(45页珍藏版)》请在冰点文库上搜索。

Kettle学习.docx

Kettle学习

资源库:

转换和job的保存地点

1、kettle有两种方式连接资源库,一种是纯数据库式,所有的转换全部都保存在一个数据库中;另外一种连接方式是使用文本文件,也就是xml文件,在做完任何转换之后,我们都可以把转换或者Job变成xml文件输出。

Kettle中元素介绍

===========================Transformation======================

●输入:

1、AccessInput

2、CubeInput

3、Excel输入

4、Generaterandomvalue

5、GetFileNames

6、GetFilesRowsCount

7、GetSubFoldernames

8、GetdatafromXML

9、MondrianInput

10、ProppertyInput

11、XBase输入

12、文本文件输入

13、表输入

14、获取系统信息

15、CSVfileinput

●输出:

1、AccessOutput

2、Cube输出

3、ExcelOutput

4、PropertyOutput

5、SQLFileOutput

6、XML输出

7、删除

8、文本文件输出(CSV文件输出,将分隔符改为“,”)

9、表输出

●转换:

1、增加常量用来给查询增加常量列

2、增加序列用来给查询增加序列列

3、字段选择用来选择输出字段

4、拆分字段将某字段按照某个分隔符分割为多个字段

5、排序记录按照某些字段对记录进行排序

6、Numberrange不同范围输出不同的值

7、Addachecksummd5加密等

8、Replaceinstring替换字段值为其他值

9、去除重复记录使用之前所有记录必须已有序

10、值映射

11、Uniquerows(HashSet)

12、计算器对字段值进行+、-、*、/、平方、开放、四舍五入等数学计算以及时间计算。

●Flow:

1、过滤记录

2、Switch/Case

●查询:

1、数据库查询(多表关联时使用,无关联时只使用表输入即可)

●连接

1、记录关联(笛卡尔输出)将多个表记录关联起来(笛卡尔积,不是表连接)

●脚本

1、ModifiedJavaScriptValue

 

名词解释:

1、hops:

节点连接,一个连接连接两个步骤。

除了指定执行顺序,也可以指定下一个任务将会被执行的条件。

2、

常用的工具

1、SQLEditor:

数据库连接—右键SqlEditor

2、Explore:

数据库连接—右键explore

3、搜索元数据:

CTRL+F

4、设置环境变量:

ctrl+alt+j

变量

1.环境变量:

使用环境变量唯一的问题是:

不能动态的使用变量

2.Kettle变量:

因为环境变量的范围非常广泛,所以我们引入Kettle变量,它们对于设置变量的任务来说是局部的

3.内部变量:

3.1永远被定义(全局变量)

变量名称

示例值

Internal.Kettle.Build.Date

2007/05/2218:

01:

39

Internal.Kettle.Build.Version

2045

Internal.Kettle.Version

3.0.2

3.2转换中被定义

变量名称

示例值

Internal.Transformation.Filename.Directory

D:

\Kettle\Samples

Internal.Transformation.Filename.Name

Denormaliser-2seriesofkey-valueparis.ktr

Internal.Transformation.Repository

/

Internal.Transformation.Name

Denormaliser-2seriesofkey-valueparis.sample

3.3Job中被定义

变量名称

示例值

Internal.Job.Filename.Directory

/home/matt/jobs

Internal.Job.Filename.Name

Nestedjob.kjb

Internal.Job.Name

Nestedjobtestcase

Internal.Job.Repository.Directory

/

 

变量的使用:

1、unix下:

${variable}

2、%%java.io.tmpdir%%

 

Job和转换的区别与联系:

1、转换用来完成数据的转换。

2、Job完成整个工作流的控制。

转换

1.转换设置:

Ctrl+t

a)状态:

“产品”|“草案”

b)版本:

转换的版本

c)目录:

转换在资源库中存储的位置

d)日志数据库连接:

使用此链接写到日志表

e)日志表:

指定日志表的名称

f)Update日志步骤:

将当前步骤更新行的编号写入日志表。

Update:

在数据库更新

g)读取日志步骤:

将当前步骤读取行的编号写入日志表。

Read含义:

从源步骤读取

h)Input日志步骤:

将当前步骤输入行的编号写入日志表。

Input含义:

从文件或者数据库输入

i)Write日志步骤:

将当前步骤写入行的编号写入日志表。

Write含义:

写入到目标步骤

j)Output日志步骤:

将当前步骤输出行的编号写入日志表。

Output含义:

输出到文件或者数据库。

转换连接颜色

外观

含义

Green

分发行

Red

复制行

Yellow

给步骤提供信息,分发行

Magenta

给步骤提供信息,复制行

Gray

不可用

Black

命名目标步骤

Blue

侯选连接,使用鼠标中间按钮+拖拉

Orange(Dotline)

一直没有使用的,因为没有数据经过

Red(BoldDotline)

运输在源步骤中出错的行

以上数据与实际有冲突,可选择性参考。

步骤(右键属性)

1、改变开始复制数量:

有时候多次运行相同的步骤是非常有用的。

例如,执行一个数据库查询三次或者三次以上,这是因为数据库连接通常有一个反应时间,改变步骤运行的次数,可以有效的减少反应时间,提高效率。

相当于

2、复制、删除、分离步骤:

步骤的复制、删除和分离

3、步骤的分发、复制:

复制数据意思是说从“A”过来的所有行都被复制到3个目标步骤。

这就意味着最后一个步骤从“A”获取了所有行的三个副本。

事实上,由于每个步骤用不同的线程来运行,到达最后一个步骤的行的顺序可能

和“A”的顺序不一样。

4、定义错误处理:

代替一个转换因为某一个步骤发生错误的时候被中断,你可以引起错误的这些行,进入到一个不同的步骤。

不是所有步骤都有此功能,Js脚本步骤有此功能

5、显示输入/输出字段

6、编辑步骤/编辑步骤描述

文本文件输入

1、没有空行:

不往下一步骤发送空行

2、输出包括文件名:

输出包含文件名字段

3、输出包含行数:

输出字段包含行号

4、格式:

可以是DOS、Unix或混合模式。

UNIX行终止可以是回车、DOS是回车或换行。

混合模式则不验证。

5、编码方式:

默认编码方式。

Unicode编码方式有Utf-8,utf-16

6、记录数量限制:

设置读取记录的行数,0表示所有的。

7、解析日期时是否严格要求:

启用时1月32将变为2月1号

8、错误处理标签:

当错误发生时,错误处理标签可以允许你指定这个步骤将重新做些什么。

9、忽略错误

10、跳过错误行:

如果不跳过错误行,解析错误字段将是空的。

11、错误计数字段:

在输出流中增加一个字段,这个字段将包含错误发生的行数。

12、错误字段字段名:

输出流增加字段,该字段包含错误发生的字段名称。

13、错误文本字段:

输出流增加字段,该字段包含解析错误发生字段的描述。

14、警告文件目录:

当警告发生时,文件将被放进该目录,文件名为:

文件名。

<日期时间>.<错误文件扩展>

15、错误文件目录:

当错误发生时,文件将被放进该目录,文件名为:

文件名.<日期时间>.<错误文件扩展>

16、失败行数文件目录:

当解析发生错误,行号将被放进该目录,文件名将是:

文件名.<日期时间>.<错误行扩展>

17、过滤标签:

可以用来指定文件文件中要过滤的行。

18、过滤字符串:

搜索字符串,将符合条件的行从输出中去掉。

19、过滤器位置:

0:

起始位置。

不填(<0):

表示搜索整个字符。

20、停止在过滤器:

如果想在文本文件遇到过滤字符时停止处理,就指定“Y”。

表输入

1、从步骤插入数据:

指定我们期待读取数据的步骤名称,这些信息能被插入到sql语句。

例如:

sql:

select*fromtwheredatebetween?

and?

:

的数据来自其他步骤

获取系统信息

1、系统日期(可变):

系统时间,每次访问都在改变。

2、系统日期(固定):

系统时间,有转换开始来决定。

即转换开始时间

3、开始日期范围(转换):

根据etl日志表的信息,确定日期范围的开始。

4、结束日期范围(转换):

根据etl日志表的信息,确定日期范围的结束。

5、开始日期范围(作业):

根据etl日志表的信息,确定日期范围的开始

6、结束日期范围(作业):

根据etl日志表的信息,确定日期范围的结束。

7、昨天00:

00:

00:

昨天的开始

8、昨天23:

59:

59:

昨天的结束

9、今天00:

00:

00:

今天的开始

10、今天23:

59:

59:

今天的结束

11、上个月第一天的00:

00:

00:

上个月的开始

12、上个月最后一天的23:

59:

59:

上个月结束

13、本月的第一天00:

00:

00:

这个月的开始

14、本月的最后一天23:

59:

59:

这个月的结束

15、步骤拷贝:

复制步骤

16、转换名称:

转换的名称

17、转换的文件名:

转换的文件名(仅针对XML)

18、最后修改转换的用户

19、转换的最后修改日期

20、转换ID:

日志表中的批处理ID值

22、主机名:

返回服务器的主机名

23、IP地址:

返回服务器的IP地址

24、命令行参数1:

命令行的第一个参数。

25、Kettle版本:

返回Kettle的版本。

26:

Kettle编译版本:

返回Kettle核心库的编译版本

27:

Kettle编译日起:

Kettle核心库的编译日期

28:

Currentprocessidentifier(PID):

生成记录

1、限制:

记录数的条数

2、名称、值

Cube输入

从二进制KettleCube文件中读取数据行

Xbase输入

使用这一步可以读取大多数被称为Xbasefamily派生的DBF文件

1、最常用的是FoxPro

Excel输入

1、工作表名称

2、起始行:

开始读取的行。

3、起始列:

开始读取的列。

4、头部:

检查工作表是否指定了一个头部行。

5、非空记录:

检查是否不需要空行输出。

6、停在空记录:

当遇空行时停止读取。

7、文件名称字段:

步骤输出指定一个包含文件名的字段。

8、工作表名称字段:

步骤输出指定一个包含工作表名称的字段。

9、行号列:

指定输出行号列字段名称。

XML输入

1、LoopXPath:

选择/Rows/Row

2、Namespaceaware:

3、Ignorecomments:

忽略注释

4、ValidateXML:

验证XML,一般不验证

5、Ignoreemptyfile:

忽略空文件

6、Includefilenameinoutput:

输出步骤包含文件名字段

7、Rownuminoutput:

输出包含行号字段。

获取文件名

1、Get:

Allfiles、Onlyfolders、Onlyfiles

2、输出字段包含:

filename、short_filename、path、type(file/folder)、exists(Y/N)、ishidden、isreadable、iswriteable、lastmodifiedtime、size、extension(扩展名)、uri、rooturi

获取文件行数

1、RowsSeparatortype:

CarriageReturn

文本文件输出

1、Runthisasacommandinstead:

把结果输出到命令行或者脚本

2、文件名里包含步骤数:

如果你在多个拷贝中运行步骤,拷贝的数量将包含到文件名中。

3、Includepartitionnrinfilename:

文件名中包含数据分区数量

4、文件名包含日期

5、文件名包含时间

6、追加

7、分隔符

8、封闭符:

封闭字段的一对字符,可选

9、强制在字段周围加上封闭符

10、头部:

如果享有一个头部行,选中

11、尾部:

如果享有一个尾部行,选中

12、格式:

DOS文件的分隔符可以是回车或换行符

13、编码:

指定编码,如果空白就是用系统缺省的编码

14、Compression(压缩):

指定压缩的类型(zip,gzip)

15、Rightpadfields:

在字段最后添加空格或者删除字符,直到长度达到指定

16、Fastdatadump(noformatting):

当处理大量数据到一个文本文件时,提高性能.(不包含任何格式化信息)

17、分拆每一行:

如果n比0大,用n行拆分文本文件,分割成多个部分。

18、AddEndinglineoffile:

指定输出文本的额结束行。

表输出

1、TargetSchema:

目标模式。

要写数据的表的Schema的名称。

允许表明中包含“。

”对数据源来说是很重要的

2、目标表:

要写数据的表名。

3、提交记录数量:

在数据表中用事物插入行。

如果n比0大,每n行提交一次连接。

否则不使用事务,速度会慢一些。

4、裁剪表:

在第一行数据插入之前裁剪表。

5、忽略插入错误:

使Kettle忽略比如违反主键约束之类的插入错误,最多20个警告将被日志记录。

在批量插入的时候这个功能不可用。

6、使用批量插入:

这个选项速度快,默认被选上。

7、表分区数据:

使用这个选项可以在多个表之间拆分数据。

例如把数据放到表s1、s2、s3中来代替之间插入数据到表s中。

例如:

createorreplaceviewsalesas

Select*fromsales_200501

Unionall

Select*fromsales_200502

8、表名定义在一个字段里:

使用此选项可以拆分数据到一个或者多个表里,目标表名可以用你指定的字段来定义。

例如如果你想存储客户性别数据,这些数据可能会存储到表M和表F里面。

这个选项可以阻止这些字段插入到相应的表里。

9、返回一个自动产生的关键字:

往表中插入行时,是否产生一个关键字。

10、自动产生关键字的字段名称:

指定包含关键字的输出字段的字段名称。

插入/更新

1、targetschema:

要写入数据的表的schema名称。

允许表名包含”.”是很重要的。

2、commitsize:

提交之前要改变的行数(插入/更新)。

3、不执行任何更新:

如果被选择,则不执行任何更新,只允许插入。

4、用来查询的关键字:

可以指定字段值或者比较符。

可以用以下比较符:

>、>=、=、<>、<、<=、between、like、isnull、isnotnull

5、用来查询的关键字:

输入用来指定记录的关键字。

6、更新字段:

指定想要插入/更新的字段。

更新(可以用插入/更新替代)

更新只能用来更新,不能用来插入数据。

删除

执行删除操作。

注意:

在输出中,插入/更新、删除、更新对应的是数据库的增、删、改。

序列化到文件(以前是Cubeoutput)

这个步骤存储数据到一个二进制文件。

这个步骤有个优势就是回读的时候,文本文件的内容不需要解析。

这是因为元数据也同时存储在cube文件中。

用输出的Cube文件,用cube输入读入文件练习下。

XML输出

1、文件名中包含步骤号码:

如果你在多个拷贝中运行一个步骤,在文件扩展名的前面,将包含拷贝的号码。

2、分割每一个行:

每个xml文件中包含的记录数。

0表示不分割。

3、正在编码:

在XML文件头部指定。

4、字段选项卡

5、元素名称:

xml文件使用的元素的名称,不指定,则元素名称和字段名相同。

6、10进制:

小数点可以是”.”或者”,”

7、分组:

分组符可以是”,”或者”.”

8、空:

表示当字段值为空时,则用此字段值代替。

Excel输出

利用这个步骤,可以写入数据到一个或者多个文件中。

1、文件名和扩展名:

可以使用变量。

2、头部、尾部:

给文件添加头部和尾部。

3、Splitevery…rows:

分割数据到几个输出文件中。

4、Usetemplate:

使用模板

5、追加excel模板:

是否将Excel输出添加到指定的Excel模板中。

Access输出

1、数据库名:

注意要写入扩展名,否则输出的文件名不包含扩展名”.mdb”

2、创建数据库:

选中则创建数据库。

3、Targettable:

表名。

4、Createtable:

选中则创建数据表。

5、Commitsize:

定义输出数据时的提交尺寸。

数据库查询(Databaselookup)

这个步骤允许你在数据库表中查找值(多个表之间需要进行连接查询时用到leftjoin)。

1、使用缓存:

使用缓存,这意味着在某种查询值的条件下,每次数据库都能返回同样的结果。

流查询

1、源步骤:

数据来源的步骤名称。

2、查询值所需要的关键字:

允许你来指定用来查询值的字段名称。

值总是用“等于”比较符来搜素。

3、接收的字段:

你可以指定用来接收字段的名称,或者在值没有找到的情况下的缺省值,或者你不喜欢旧的字段名称的情况下的新字段名称。

4、PreserveMemory(保留内存):

排序的时候对数据行进行编码以保护内存。

5、Keyandvalueareexactlyoneintegerfield:

排序的时候对数据行进行编码以保护内存。

6、Usesortedlist:

是否用一个排序列表来存储值,它提供更好的内存使用。

7、获取字段:

自动获取源步骤的可用字段的名称,你可以删除你不想查询的字段。

8、获取查询字段:

自动获取输出流中的可用字段名称。

你可以删除你不想返回的字段。

调用数据库存储过程

这个步骤允许运行一个数据库存储过程,获取返回结果。

1、存储过程名称:

调用的存储过程或者函数名称。

2、自动提交:

在运行存储过程的时候自动提交。

3、结果名称:

调用存储过程或者函数返回结果的名称。

4、结果类型:

返回结果的类型。

5、参数:

存储过程或者函数需要的参数列表。

5.1.名称:

字段的名称

5.2.方向:

可以是in,out,inout、

5.3.类型:

使用输出参数,以便Kettle知道返回了什么。

注意:

如果是函数的话,通过结果名称返回值;如果是存储过程的话,通过参数列表返回值。

HTTP客户端

http客户端根据一个附带条件的基准URL,来调用一个简单的调用。

例如:

http:

//?

p1=v1&p2=v2&...,结果存储在指定名称的字符类型字段中。

1、URL:

基准url字符串

2、结果字段名称:

存储结果的字段名称。

3、参数:

用名称——值键值对来定义通过url传递的参数。

字段选择

这个步骤常常用来:

1、选择字段2、重命名字段3、指定字段长度或者精度

以下是三个不同标签的功能:

1、选择和修改:

指定输出流中字段的精确顺序和名称。

2、删除:

指定必须从输出流中删除的字段。

3、元数据:

修改数据字段的名称、类型、长度和精度。

选项:

1、字段名称:

选择或者修改的字段名称。

2、改名:

如果不想改名就留空白。

3、长度、精度:

输入数字指定长度、精度(-1:

代表没有长度、精度指定)

过滤记录

这个步骤允许你根据条件和比较符来过滤记录。

一旦这个步骤连接到先前的步骤中,单机“”,“=”和“”区域来构建条件。

1、发送“true”数据给步骤:

指定条件返回true的数据将发送到此步骤。

2、发送“false”数据给步骤:

指定条件返回false的数据将发送到此步骤。

排序记录

这个步骤利用你指定的字段排序行,无论他们是按照升序还是降序。

备注:

当行数超过5000行的时候,Kettle使用临时文件来排序行。

1、排序目录:

临时文件存储的目录。

如果缺省则为标准的系统临时文件夹。

2、内存里存放的记录数:

存储在内存中的行越多,排序的速度就越快。

3、临时文件前缀:

选择一个好记的前缀,以便在临时目录中容易寻找。

4、压缩临时文件:

当需要完成排序的时候,这个选项将压索临时文件。

添加序列

一个序列是在某个起始值和增量的基础上,经常改变的整数值。

你可以使用数据库的序列,也可以使用Kettle决定的序列。

备注:

Kettle序列在同一个转换中是唯一使用的。

每一次转换运行的时候,序列的值又会重新循环一次(从开始值开始)。

1、使用数据库获取序列

连接名称:

选择数据库序列存在的连接名称。

序列名称:

数据库序列名称。

2、使用计数器计算序列

计数器名称、增量、最大值

空操作(什么也不做)

此步骤什么也不做。

作用:

在你想测试什么的时候充当一个占位符,例如有一个转换,你至少需要两个彼此连接的步骤。

如果你想测试文本文件输入步骤,你可以将它连接到一个D步骤,例如以下示例:

很不幸的是,流查询步骤仅仅能从一个流中查询信息,如果你需要做转换如下:

行转列(RowNormaliser)

这个步骤转动表,标准化数据格式。

例如你想更新一个实际的物理表,这种形式的数据是更容易掌握的。

1、关键字段:

不转的字段

2、构成分组的字段:

标准化的字段名称(例如ProductA,ProductC)

3、目标字段:

你可以制定一个或者多个新值将要转入的字段(例如sales)

拆分字段

拆分的字段类型必须是String。

1、分隔符:

分割字段的符号。

2、字段:

拆分形成的字段列表。

去除重复记录

该步骤从流中移除重复的记录。

1、增加计数器到输出:

如果你想知道多少重复行被去掉,就选择此选项。

分组(Statistics)

在进行分组的时候,只能使用分组字段和聚合函数。

注意:

分组之前,必须先按照分组字段排好序,否则将会出现错误。

1、分组字段:

指定要分组的字段。

2、聚合:

指定需要聚合的字段。

3、包含所有的行:

如果选择这个,输出终究包含所有的行,不仅仅是聚合。

4、临时文件目录:

临时文件存储的目录。

5、临时文件前缀:

指定临时文件文件名的前缀。

6、添加行号,每一个分组重启:

如果你想给每一个组添加行号,选此项。

设置为空值(Nullif)

如果某个字符串的值等于指定的值,设置那个值为空。

计算器

可以进行数值,日期等格式数据的简单计算。

计算器的重要优势是,计算速度比js快几倍。

常用计算

功能

描述

需要字段

数学

A+(-、*、/)B

加减乘除

A和B

A*A…

A2,、开方

A

100*A/B

A和B的百分比

A和B

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2