Kettle学习手册.docx

上传人:b****2 文档编号:24247788 上传时间:2023-05-25 格式:DOCX 页数:56 大小:1.08MB
下载 相关 举报
Kettle学习手册.docx_第1页
第1页 / 共56页
Kettle学习手册.docx_第2页
第2页 / 共56页
Kettle学习手册.docx_第3页
第3页 / 共56页
Kettle学习手册.docx_第4页
第4页 / 共56页
Kettle学习手册.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

Kettle学习手册.docx

《Kettle学习手册.docx》由会员分享,可在线阅读,更多相关《Kettle学习手册.docx(56页珍藏版)》请在冰豆网上搜索。

Kettle学习手册.docx

Kettle学习手册

 

Kettle学习手册

目录

Kettle中元素介绍2

变量4

转换5

转换连接颜色6

步骤(右键属性)6

文本文件输入7

表输入8

获取系统信息8

生成记录9

Cube输入10

Xbase输入10

Excel输入10

XML输入10

获取文件名10

获取文件行数10

文本文件输出11

表输出11

插入/更新12

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

删除12

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

XML输出12

Excel输出13

Access输出13

数据库查询(Databaselookup)13

流查询13

调用数据库存储过程14

HTTP客户端14

字段选择14

过滤记录15

排序记录15

添加序列15

空操作(什么也不做)15

行转列(RowNormaliser)16

拆分字段17

去除重复记录17

分组(Statistics)17

设置为空值(Nullif)18

计算器18

增加XML(AddXML)18

增加常量18

行转列(RowDenormaliser)19

行扁平化19

值映射20

被冻结的步骤(BlockingStep)20

记录关联(笛卡尔输出)21

数据库连接21

合并记录21

排序合并(SortedMerge)22

MergeJoin(合并连接)22

JavaScript值(ModifiedJavaScriptValue)23

执行SQL语句23

ExecuterowSQLscript24

维度更新/查询25

联合更新查询25

映射(子转换)26

从结果获取记录27

复制记录到结果(字符串)27

SetVariables(设置变量)27

GetVariables(获取变量)28

Getfilesfromresult(从以前的结果获取文件)28

Setfilesinresult28

Injector(记录注射器)29

Socketreader(套接字读入器)29

套接字输写器(Socketwriter)30

聚合记录30

流XML输入(属sax解析,和Getdatafromxml功能相同)30

Abort(中止)31

OracleBulkLoader(Oracle批量装载)31

任务设置(JobSettings)未找到33

任务条目(JobEntries)未找到33

Start33

附录1:

33

JS函数33

 

资源库:

转换和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:

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

过滤记录

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

一旦这个步骤连接到先前的步骤中,单机“”,“

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

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1