KETTLE

文章目录

    • kettle
        • 1.下载,安装,配置
        • 2.功能简介
        • 3.常用控件
        • 4.任务设置(Job Settings)

kettle

1.下载,安装,配置

1.1 官网下载
下载完成后解压即可(若没有自带JDK,还需要安装JDK)。kettle中有两种脚本文件transformation(抓换)和job(作业),transformation针对数据的基础转换,生成.ktr文件,job择完成整个工作流的控制,生成.kjb文件。
1.2 开发环境(spoon)
Spoon.bat(window环境启动文件)
Spoon.sh(linux环境启动文件)
kitchen(命令行用于执行ETL作业)
Pan(命令行用于执行ETL转换)

1.3 数据库连接
打开转换或者作业,找到DB连接然后右键新建连接对应的数据库,测试连接成功即可。
连接名称(connection name):定义转换或者任务访问的连接的唯一名称;
连接类型(connection type):链接的数据类型;
连接方式(method of access):可以是native(JDBC),ODBC,或OCI;
主机名称(server host name):指定数据库部署的主机或者服务器的名称,也可指定IP地址;
数据库(database name):指定连接的数据库的名称,如果是ODBC方式就指定DNS名称;
端口号(port number):设定数据库监听的TCP/IP端口号;
用户名/密码(user name / password):指定连接数据库的用户名和密码。

1.4 资源库
一个kettle资源库可以包含那些转换信息,如果需要从数据库资源中加在一个转换,则必须连接相应的资源库。
要实现这些,需要在资源库中定义一个数据连接,可以在spoon启动的时候利用资源库对话框来定义,如果不想每次启动都会出现这个对话框,则可以在“编辑/选项中禁用”,也可以通过工具—资源库进行相关的配置。
也可以设置环境变量让spoon自动登录到资源库,需要配置的环境变量为:KETTLE_REPOSITORY KETTLE_USER KETTLE_PASSWORD
资源库存储信息文件“reposityries.xml”,linux位于系统登录用户缺省home目录的隐藏目录.kettle中,windows系统位于c:documents and settings \ .kettle中。

1.5 kettle执行顺序
作业:分串行执行和并行执行,串行执行是先执行完其中一条线再执行另一条线,并行是两条线同时执行,同一条线上的两个步骤会先执行前面的再执行后边的,每个步骤执行结果分为两种(true/false),根据返回结果控制流程的走向。
转换:一开始所有步骤同时运行,记录会从最前端往后传递,传递到相应步骤则该记录被该步骤做相应处理,处理完成再把记录往后传递,记录传递分复制和分发两种模式。

2.功能简介

2.1 转换(transformation)
value:行的一部分,并且是包含以下类型的数据:字符型、浮点型、大整数、整数、日期、布尔型;
row:一行包含0个或者多个value;
output stream:输出流,离开一个步骤时行的堆栈;
input stream:输入流,进入一个步骤时的堆栈;
hop:一个hop代表两个步骤之间的一个或者多个数据流,一个hop总是代表着一个步骤的输出流和一个步骤的输入流;
note:一个转换的文本附加信息

2.2 任务(job)
job实体:一个job实体是一个任务的一部分,具体执行的内容;
hop:一个hop代表两个步骤之间的一个或者多个数据流,一个hop总代表两个job实体之间的连接,并且能够被原始的job entry设置,无条件执行下一个job entry,知道执行成功或者失败;
note:一个任务附加的文本注释信息。

2.3 节点连接(hops)
一个hop 连接两个步骤,数据流的方向使用箭头表示,连接可以使他可用或者禁用。
2.4 创建一个连接
可以使用下面的方法来创建连接:
☆使用鼠标中间按钮在图形界面上拖拉
☆使用鼠标左键和shift建在图形界面上拖拉
☆选择菜单树上的两个步骤,鼠标右键选择新连接
☆选择图形界面上的两个步骤,鼠标右键选择“新连接”

2.5 拆分一个连接
可以很简单的插入一个新步骤到两个连接中间,在图形界面上拖拉步骤通过一个连接,直到这个连接编程粗体。
转换连接的颜色含义

外观 含义
green 分发行
red 复制行
yellow 给步骤提供信息,分发行
magenta 给步骤提供信息,复制行
gray 不可用
black 命名目标步骤
orange(dot line) 一直没有使用的,因为没有数据经过
blue 候选连接,使用鼠标中间按钮+拖拉
red(bold dot line) 运输在源步骤出错的行

3.常用控件

1.文本文件输入(text input)
可以通过此步骤读取大量的不同的文本文件。大多数是通过工具生成的csv文件。可以使用正则表达式匹配对应的文件。
内容指定

选项 描述
FileType 文件类型 可以是CSV或者Fixed length(固定长度) 。根据指定的不同,在最后字段标签中按下“获取字段”按钮时,kettle将调用不同的帮助JUI
Separator 分隔符 在文本的单行中,一个或者多个字符用来分隔字段,比较常用的是:或者一个tab制表符
Enclosure 封闭字符 一些字段能够被一对允许的分隔字符来封闭,封闭字符串是可选的。如果重复使用封闭文本’only nine o’ ’ clock news.’,用 ’ 作为封闭字符,将被解析成 only nine o’ clock news.
Escape 逃逸字符 如果数据中有逃逸字符,就指定逃逸字符(或者逃逸字符串)。如果\作为逃逸字符,文本’only nine o’ clock news.’ 将被解析成only nine o’ clock news.
Header / Number of header line(头部 / 头部行数量) 如果文本文件有头部行就使用这个,可以指定头部行出现的次数
Footer / Number of Footer line(尾部 / 尾部行数量) 如果文本文件有尾部行就使用这个,可以指定尾部行出现的次数
Wrapped Lines (包装行 / 包装行数量) 利用这个来处理被某些页限制包装的数据行
Paged Layout(printout) (分页布局 / 每页行数 / 文档头部行) 在行打印机上打印的时候,可以用这个选项作为最终的手段。用头部行的数量来调过介绍性文本,用每页的行数来定位数据行
Compression (压缩) 如果文件时ZIP文件或者GZIP归档文件就使用这个
No empty rows (没有空行) 不往下一步发送空行
Include filename in output (输出包含文件名) 如果想文件名作为输出的一部分,可以启用这个

2.表输入(Table Input)
利用连接和SQL,从数据库中读取信息,自动生成基本的SQL语句。可以用 ? 接收相应的参数,参数值可以从前置步骤中获取,或者进行独特的设置。
3.获取系统信息(Get System Info)
可以从kettle环境中获取信息,可以获取一下信息:

选项 描述
System date(variable) 系统时间,每次访问的时候都在改变
System date(fixed) 系统时间,由转换开始来决定
start date range(Transformation) 根据ETL日志表的信息,确定日期范围的开始
end date range(Transformation) 根据ETL日志表的信息,确定日期范围的结束
Start date range(job) 根据ETL日志表的信息,确定日期范围的结束
end date range(job) 根据ETL日志表的信息,确定日期范围的结束
Yesterday 00:00:00 昨天的开始
Yesterday 23:59:59 昨天的结束
First day of last month 00:00:00 上个月的开始
Last day of last month 23:59:59 上个月的结束
First day of this month 00:00:00 这个月的开始
Last day of this month 23:59:59 这个月的结束
Copy of step 复制步骤
Transformation name 转换的名称
Transformation file name 转换的文件名(仅对XML)
Transformation batch ID 日志表中的批处理ID
Hostname 返回服务器的主机名
Command line argument1 命令行的第一个参数(1-10)
kettle version 返回kettle的版本
Kettle Build version 返回kettle核心库的编译版本
Kettle Build Date 返回kettle核心库的编译日期

☆步骤名称(step name):步骤的名称,在单个转换中必须唯一。
☆字段(fields):输出的字段。

4.生成行(Generate Rows)
输出一定数量的行,缺省为空,可选包括一定数量的静态字段。
☆step name(步骤名称):步骤的名称,在单个转换中必须唯一。
☆Limit:设置你要生成行的最大数量。
☆Fields:在输出行想要包含的静态字段。

5.文件反序列化(De-serialize from file)
从二进制kettle文件中读取数据行。这个步骤仅仅用来存储短期数据。
6.XBase输入(XBase input)
读取大多数被称为XBase family派生的DBF文件。
☆step name(步骤名称):步骤的名称,在单个转换中必须唯一。
☆The filename:用变量支持。
☆Limit size:读取行的数量,0表示不限制。
☆Add rownr:用包含行号的指定名称,添加一个字段到输出中。

7.Excel 输入(Excel Input)
从kettle支持的系统中读取excel文件。
☆step name(步骤名称):步骤的名称,在单个转换中必须唯一。
☆文件标签(File tab):
●支持变量的文件名
●输入的工作表。利用“获取工作表名称”按钮自动填充可用工作表,必须指定开始的行和列,以调整想读取的数据。
☆内容(Content tab):
●支持变量的文件名
●头部检查是否工作表指定了一个头部行。
●非空记录:检查是否不需要空行输出。
●停在空记录:当步骤在读取工作表遇到一个空行时停止读取。
●文件名称字段:步骤输出指定一个包含文件名称的字段。
●工作表名称字段:步骤输出指定一个包含工作表名称的字段。
●sheet row nr field:步骤输出一个指定包含工作表行数的字段。工作表行数是时间的EXCEL工作表的行数。
●row nr written field:步骤输出指定一个包含行数的字段。
●限制:限制输出的行数,0代表输出所有行。
☆字段(Fields tab):
●指定可以想从excel中读取的字段。如果工作表有一个头部行,按钮“获取来自头部的字段”将自动获取并填充可用的字段。

8.XML输入(Get date from XML)
读取存储在XML文件中的数据。他也提供一个接口,可以定义想读取的文件名、XML文件的数据重复部分,获取的字段等,可以指定元素或属性字段。
9.获取文件名(Get File Names)
获取系统的文件名信息。输出的字段是:
☆文件名:包含路径的完整文件名称(如:/temp/trst/test.txt)。
☆短文件名:仅仅是文件名,不包含路径。
☆路径:只包含路径。

10.文本文件输出(Text file output)

选项 描述
步骤名称 步骤名称,在单个转换中必须唯一
文件名称 指定输出文本文件的文件名和路径
run this as a commend instead? 根据指定把结果输出到命令行或者脚本
扩展名 在文件的最后端添加一个扩展名(.tet / .xls等)
文件名里包含步骤数 如果在多个拷贝中运行步骤,拷贝的数量将包含到文件名中(在扩展名之前)
文件名包含日期 文件名中包含系统日期(_20191212)
文件名包含系统时间 文件名包含系统时间
追加 是否在指定文件末尾追加行
分隔符 指定在文本中分隔字段的字符,如;
封闭符 封闭字段的一对字符,可选
头部 如果想要一个头部行,使这个字段可用
尾部 如果想要一个头部行,使这个字段可用
格式 DOS或者UNIX。UNIX文件分隔符是换行符,DOS文件可以是换行符或者回车符
编码 指定文件使用的编码,如果空白就使用系统缺省编码
压缩 指定压缩的类型(zip或者gzip)
right pad fields 在字段最后添加空格或者删除字符,直到长度达到指定
fast data dump(no formatting) 当处理大量数据到一个文本文件时,提高性能(不包含任何格式化信息)
分拆▪▪▪每一行(split every ▪▪▪ rows) N大于0,用N行拆分文本文件,分割成多个部分
add ending line of file 指定输出文本的结束行
字段 ●名称:字段的名称
●类型:字段类型可以是string、date、number等
●格式
●长度:
    number:有效数的长度
    string:字符串的长度
    Date:打印输出字符的长度
●精度
●货币:代表当前货币的符号
●十进制:分组符可以是“,”或者“.”
●分组:分组符可以是“,”或者“.”
●null:如果这个字段值为空,插入这个字符到文本文件
显示文件名 展示生成的文件列表

11.表输出(table output)
这个步骤可以存储信息到数据库表中。

选项 描述
步骤名称 在单个转换中必须唯一
连接 用来写数据的数据库连接
target schema 要写数据的表的schema名称
目标表 要写数据的表名
提交记录数量 在数据表中用事物插于行。设置N>0每N行提交一次
裁剪表 在第一行数据插入之前裁剪表
忽略插入错误 使kettle忽略像违反主键约束之类的插入错误,在批量插入的时候这个功能不可用
使用批量插入 默认被选上,使用这个速度最快
表分区数据 可以在多个表之间拆分数据,如把数据放到表table1,table2,table3中代替直接插入数据到sales表中
表名定义在一个字段里 使用这个可以拆分数据到一个或者多个表里,目标表名可以使用指定的字段来定义
返回一个自动产生的关键字 往表中插入行时,是否产生一个关键字
自动产生关键字的字段名称 指定包含关键字的输出字段的字段名称
SQL(功能 / 按钮) 生成自动创建输出表的SQL脚本
check(功能 / 按钮) 验证目标表中的所有字段是否可用

12.插入/更新(Insert/Update)
这个步骤利用查询关键字在表中搜索行。如果行没有找到就插入行,找到后判断被更新的字段,有变化则更新,否则什么都不做。
☆步骤名称:步骤的名称,在单个转换中必须唯一。
☆连接:目标表所在数据库连接名称。
☆target schema:要写数据的表的schema名称。允许表名中包含“.”很重要。
☆目标表:想插入或更新的表的名称。
☆comment size:提交之前要改变(插入/更新)的行数。
☆不执行任何更行:如果被选择,数据库的值永远不会被更新,仅仅可以插入。
☆更新字段:指定想要插入/更新的字段。
☆“获取字段”按钮:从输入流中获取字段,并且填充到关键字中。
☆“获取更新字段”按钮:从输入流中获取更新字段,并且填充到更新列表中。
☆“check”按钮:检查目标表中是否所有的字段都可用。
☆“SQL”按钮:为正确操作,生成创建表和索引的SQL脚本。

13.更新(update)
和插入/更新一样,只是仅仅只执行更新操作。
14.删除(delete)
删除匹配字段的数据。
15.序列化到文件(serialize to file)
这一步骤存储数据到一个二进制文件。优势在于回读的时候,文本文件的内容不需要解析。
16.XML输出(XML output)
设置和文本文件输出相似,但扩展名变为.xml。
17.excel输出(excel output)
利用这个步骤,可以写入数据到一个或者多个excel文件中。
☆File标签
    ●文件名和扩展名,可以用变量
    ●扩展名用于输出文件
    ●选项“include the stepnr in the filename”(允许文件并行创建)
    ●选项“include date/time in the filename”(允许文件名中包含系统时间或日期)
    ●按钮“show filenames”展现步骤运行后,创建的文件的集合
☆Content标签
    ●header检查表单是否有头部
    ●footer检查表单是否有尾部
    ●encoding指定电子表单使用的编码
    ●split ever …rows分割数据到几个输出文件中
    ●use template输出的EXCEL数据是否使用模板
    ●excel template格式化EXCEL输出模板的名称
    ●append to excel template是否将EXCEL输出添加到指定的EXCEL模板中
☆fields标签
    ●可以指定想输出到excel文件中的字段,如果电子表单的头部按钮“获取字段”将自动获取可以使用的字段
    ●可以指定excel使用的格式

18.数据库查询(Database lookup)
这个步骤允许从数据库表中查找值。
●步骤名称:单一转换中步骤名称必须唯一
●数据库连接:想要写入数据的链接
●查询表:想要查询的表名
●使用缓存:数据库查询是否使用缓存。这意味着同样的查询语句在某种查询条件下,每次都能返回同样的结果

19.流查询(stream lookup)
这个步骤允许从其他步骤中查询信息。首先,“源步骤”的数据被读取到内存中,然后被用来从主要的流中查询数据。
●步骤名称:单一转换中步骤名称必须唯一
●源步骤:数据来源的步骤名称
●查询值所需要的关键字:允许指定用来查询值的字段名称。值总是用“等于”比较符来搜索。
●接收的字段:可以指定用来接收字段的名称,或者是在值没有找到的情况下的缺省值,或者不适用旧的字段名称的情况下的新字段的名称
●preserve memory:排序的时候对数据进行编码以保护内存
●key and value are exactly one integer field:排序的时候对数据进行编码以保护内存
●use sorted list:是否用一个排序列表来存储值,它提供更好地内存使用。
●“获取字段”按钮:自动获取元字段的名称,可以删除不想查询的字段。
●“获取查找字段”按钮:自动获取输出流中可用字段名称,可以删除不想返回的字段。

20.调用数据库存储过程(Call DB Procedure)
这个过程允许运行一个数据库存储过程,并返回结果。
●步骤名称:单一转换中步骤名称必须唯一
●连接:存储过程所有的数据库的连接名称
●存储过程名称:调用的存储过程或者函数名称
●自动提交:在运行存储过程的时候自动提交
●结果名称:调用存储过程或者函数
●结果类型:调用存储过程或者函数返回结果的类型
●参数:存储过程或者函数需要的参数列表(名称:字段的名称;方向:可以是IN,OUT,INOUT;类型:使用输出参数,以便kettle知道返回了什么)

21.字段选择(select values)
该步骤常常用来:选择字段;重命名字段;指定字段的长度或者精度。
22.过滤行(filter rows)
根据条件和比较符来过滤记录。
●发送“true”数据给步骤:指定条件返回true的数据将发送到此步骤。
●发送“false”数据给步骤:指定条件返回false的数据将发送到此步骤。

23.行排序(sort rows)
利用指定的字段排序行,无论是降序还是升序。
●排序目录:临时文件存储的目录。如果缺省则为标准的系统临时文件。
●排序尺寸:存储在内存中的行越多,排序的速度就越快。
●临时文件前缀:选择一个好记的前缀,以便在临时目录中容易找到。
●压缩临时文件:当需要完成排序的时候,这个选项将压缩临时文件。

24.添加序列(add sequence)
这个步骤在流中增加一个序列。一个序列是在某个起始值和增量的基础上,经常改变的整数值。可以使用数据库的序列,也可以使用kettle计算的序列。
●值的名称:新序列值的名称,将被添加到流中。
●使用数据库获取序列:
     ●连接名称:选择数据库序列所在的连接名称。
     ●序列名称:数据库序列的名称。
●使用计数器来计算序列:使用kettle生成序列时可用。
●计数器名称(可选):如果一个转换中多个步骤生成同样的值名称,这个选项允许指定计数器的名称,避免按照先后顺序通过多个步骤。
     ●起始值:序列的起点。
     ●增量:序列的增量。
     ●最大值:序列的最大值,若超过,将重新开始。

25.空操作(dummy-do nothing)
这个操作什么都不做,主要作用是在测试的时候充当一个占位符。如一个转换,至少需要两个彼此连接的步骤。如果想测试文本文件输入步骤,可以将他连接到一个dummy。
26.行转列(row normaliser)
这个步骤实现行列转换。
●字段类型:字段类型的名称。
●字段:标准化的字段列表:
     ●字段名称:标准化的字段名称
     ●类型:用字符串分类字段
     ●新字段:可以指定一个或者多个新值将要转入的字段,可以一次转换多个字段。

27.拆分字段(split fields)
根据分隔符来拆分字段。
●需要拆分的字段:想要拆分的字段的名称
●分隔符:决定字段结束的分隔符
●字段:拆分形成的字段列表

28.去除重复记录(unique rows)
从输入流中移除重复的记录。
●增加计数器到输出:如果想知道多少重复行被去掉,就选择此选项。
●计数器字段:包含行号的字段的名称。
●字段名:用来比较的字段的字段名称。

29.分组(group by)
这个步骤通过定义分组的字段来计算值,如计算产品的平均销售额。
●分组字段:指定分组的字段。
●聚合:指定需要聚合的字段、方法以及新字段的名称。
●包含所有的行:如果选择这个,输出中就包含所有的行,不仅仅是聚合。
●临时文件目录:临时文件存储的目录。
●临时文件前缀:指定命令临时文件时的文件前缀。
●添加行号,每一个分组重启:如果添加行号就选择这个。
●字段名行数:指定行号将插入的字段的名称。

30.设置为空值(null if)
如果某个字符串的值等于指定的值,设置那个值为空。
31.计算器(calculator)
这个步骤提供一个功能列表,可以在字段值上运行。计算器的一个重要优势是,它有着几倍于常用的JS脚本的速度。
32.增加常量(add constants)
这个步骤主要是添加常量到流中。用字符串形式指定名称,类型和值,利用选择的数据类型指定转换格式。
33.行转列(row denormaliser)
这个步骤允许通过查询剑指对来反向规格化数据,也可以立即转换数据类型。
●关键字段:指定关键字段
●分组字段:指定构成分组的字段
●目标字段:指定反向规格化的字段

34.行扁平化(flattener)

fld1 fld2 fld3 test
A B C ONE
A B C TWO
D E F THREE
D E F FOUR

扁平化处理后:

fld1 fld2 fld3 test1 test2
A B C ONE TWO
D E F THREE FOUR

以上扁平化设置:
●需要扁平化的字段:test
●目标字段:test1 test2

35.值映射(value mapper)
这个步骤简单的映射字符串,从一个值映射到另一个值。通常解决存储一个数据库中转换表的问题,简单的将转换表作为值映射对话框的一部分。
eg:替换language codes:
●使用的字段名:LanguageCode
●目标字段名:LanguageDesc
●源值/目标值:EN/english

36.被冻结的步骤(blocking step)
冻结所有的输出,直到从上已步骤来的最后一行数据到达,最后一行数据将发送到下一步。可以使用这个步骤触发常用插件、存储过程和JS。
37.记录关联(笛卡尔输出)-Join Rows(cartesian product)
这个步骤允许组合输入流中的所有行。
●临时目录:如果想更多地行,指定系统存储临时文件
●临时文件前缀:生成的临时文件的前缀
●最大缓存大小:系统从临时文件读取数据缓存的大小
●读取的主要步骤:指定读取最多数据的步骤名称
●条件:可以指定复杂的条件来限制输出行数

38.合并记录(merge rows)
这个步骤允许比较两个行流。如果两个不同的时间比较数据,这是非常有用的。常被用于数据仓库源系统没有包含最后更新日期的情况。两个行流被合并,一个是引用流(旧数据),一个是比较流(新数据)。每次都是行的最后版本通过进入下一步骤。行有一下标记:
●“identical”:关键字在两个流中都存在,并且值相同
●“changed”:关键字在两个流中都存在,但是一个或者更多的值不同
●“new”:引用流中没有找到关键字
●“deleted”:比较流中没有找到关键字,比较流中的数据进入下一步骤,除非在删除的情况。

39.存储合并(stored merge)
合并来自多个输入步骤的数据行,并且这些行用指定的关键字排序。
40.合并连接(merge join)
来自两个不同步骤输入的数据执行一个高效的合并。合并选项包括INNER,LEFT OUTER,RIGHT OUTER,FULL OUTER。
●第一个步骤:指定要合并的第一个输入步骤
●第二个步骤:指定要合并的第二个输入步骤
●连接类型:选择合并可用的类型
●关键字段:指定要存储数据的关键字段
●获取字段tuttons:获取输入的第一个步骤和第二个步骤的字段列表

41.Java Script
这个步骤允许使用JS做复杂运算。
42.执行SQL语句(execute SQL script)
这个步骤可以执行SQL脚本,或者在转换初始化的时候执行,或者在步骤的每一个输入行执行。可以在SQL脚本中使用参数。对于全局变量或运行参数,用%%v_name%%或者${v_name}进行替换,使用 ?作为占位符,变量必须来自前一步骤。
43.从结果获取记录(get rows from result)
这个步骤返回在一个任务中先前步骤生成的行。可以进入选择先前步骤生成的元数据字段。
44.至记录到结果(copy rows to result)
在一个任务中将行数据(内存中的)传递到下一个步骤。
45.置变量(set variable)
这个步骤允许在一个任务中或者虚拟机中设置变量。它仅仅可以用一行数据来设置变量值。
●valid in the virtual machine:整个虚拟机将知道那个变量,仅仅可以在单机模式下运行。
●valid in the parent job:变量仅仅在父任务中合法。
●valid in the grand-parent job:变量仅仅在祖父任务中合法。
●valid in the root job:变量仅仅在根任务中合法。

46.聚合行(aggregate rows)
这个步骤允许在所有行的基础上快速的聚集行。下面是可用的聚集类型:
SUM:字段的和
AVERAGE:字段的平均数
COUNT:非空值的数量
MIN:字段的最小值
MAX:字段的最大值
FIRST:字段的第一个值
LAST:字段的最后一个值

47.中止(Abort)
这个步骤允许在观察输入的时候中止步骤。它的主要用途是错误处理,在一定数量的行流过错误的连接时中止转换。
●中止开始:中止转换的开始行数。如果设置为0,在第一行的时候,步骤将被中止,如果设置为5,将在第6行中止。
●中止消息:中止的时候放入日志文件的消息,如果没有输入就使用缺省消息。
●总是记录行数:中止步骤总是记录处理的行数。

48.ORACLE批量装载(Oracle bulk loader)
这个步骤允许大批量加载数据到ORACLE数据库,他将用一个正确的装载格式,然后调用oracle的sqlloader数据加载工具加载到指定表中。
●连接:维表所在数据库的连接。
●目标schema:要写入数据库表的schema名称,表名中可以包含“,”。
●Sqlldr path:SQL
loader数据加载工具的全路径。
●装载方式:“自动加载”或者“手动加载”。如果是“自动加载”,步骤将在用指定的参数收到所有的输入后运行Sqlldr工具。如果是“手动加载”,将生成一个可以作为后门使用的控制和数据文件。
●加载动作:append、insert、replace、truncate。这些会映射到sqlddr的动作来执行。
●错误的最大行数:发生错误的行数,这时sqlldr将被中断。与sqlldr的“ERROR”属性来通信。
●提交:提交的行数,与sqlldr的“ROWS”属性通信。
●绑定大小:与sqlldr的“BINDSIZE”属性通信。
●读取大小:与sqlldr的“READSIZE”属性通信。
●控制文件:sqlldr控制文件的名称。
●数据文件:数据将被写入的数据文件的名称。
●日志文件:日志文件的名称,可选。
●坏文件:坏文件的名称,可选。
●废文件:废文件的名称,可选。
●编码:数据指定的编码格式,可以从下拉列表框中选择。
●直接路径:直接路径加载的开关,与sqlldr的“DIRECT=TRUE”通信。
●使用后删除cfg/dat文件:加载后是否删除控制文件盒数据文件。
●表字段:ORACLE表中加载的表字段。
●流字段:输入行中带来的字段。

4.任务设置(Job Settings)

选项 描述
job name 任务名称,如果你需要保存到资源库这是必须的
directory 想保存到资源库的目录
log connection 用这个连接写到日志表
log table 指定日志表的名称
user batch-ID 在日志表中使用批处理ID
pass the batch-ID to job entries 检查炸任务中是否通过生成的唯一批处理ID访问转换或者任务条目
use logfield to store logging in 检查是否在日志表用长文本字段(CLOB)来存储任务的日志
SQL button 生成需要创建日志表的SQL脚本,并且允许你执行它

1.启动
START 是任务执行的入口,首先必须是任务可以执行。只有无条件的任务条目可以从START入口连接。START图标也包含基本进度安排功能。
2.Dummy
在一个任务中使用Dummy条目将什么也不做,这可以使一个任务更清晰的展示,或者在执行循环中使用。
3.SUCCESS
如果任务的上一个条目错误数量为0则返回true.
4.转换(transformation)
可以用一个转换任务条目执行一个先前定义的转换。

选项 描述
name of job entry 任务条目的名称,在单个任务中必须唯一
name of transformation 需要运行的转换的名称
repository directory 指定资源库目录
filename 如果你不是使用资源库工作,就指定转换运行的XML文件
specify log file 检查是否为转换指定一个单独的日志文件
name of log file 日志文件的目录和名称
extension of the log file 文件名扩展
include date in filename 文件名中添加系统日期
include time in filename 文件名中添加系统时间
logging level 日志级别
copy previous results to arguments 上一次的转换结果复制到参数中
arguments 指定转换的参数
execute once for every input row 支持循环,允许转换在每一个输入行上执行一次
clear the list or result files before executiion 在转换运行之前,检查确保列表或结果行已经被清除

5.任务(job)
可以使用job条目来运行一个先前定义的任务。

选项 描述
name of job entry 任务条目的名称,在单个任务中必须唯一
name of transformation 需要运行的转换的名称
repository directory 指定资源库目录
filename 如果你不是使用资源库工作,就指定转换运行的XML文件
specify log file 检查是否为转换指定一个单独的日志文件
name of log file 日志文件的目录和名称
extension of the log file 文件名扩展
include date in filename 文件名中添加系统日期
include time in filename 文件名中添加系统时间
logging level 日志级别
copy previous results to arguments 上一次的转换结果复制到参数中
arguments 指定转换的参数
execute once for every input row 支持循环,允许转换在每一个输入行上执行一次

6.shell
可以使用shell任务条目在任务运行的主机上执行一段shell脚本。shell脚本能在控制台窗口输出文本,输出将转换到kettle日志系统,这不会影响shell脚本运行。

选项 描述
name of job entry 任务条目的名称,在单个任务中必须唯一
name of transformation 需要运行的转换的名称
repository directory 指定资源库目录
filename 如果你不是使用资源库工作,就指定转换运行的XML文件
specify log file 检查是否为转换指定一个单独的日志文件
name of log file 日志文件的目录和名称
extension of the log file 文件名扩展
include date in filename 文件名中添加系统日期
include time in filename 文件名中添加系统时间
logging level 日志级别
copy previous results to arguments 上一次的转换结果复制到参数中
arguments 指定转换的参数
execute once for every input row 支持循环,允许转换在每一个输入行上执行一次

7.mail
可以使用mail任务条目来发送电子邮件。

选项 描述
name of job entry 任务条目的名称,在单个任务中,必须唯一
destination address e-mail 目的地
use authentication 检查SMTP服务器是否需要身份认证
authentication user 身份认证用户名
authentication password 身份认证用户密码
SMTP server 邮件发送的邮件服务器
reply address e-mail的回复地址
subject e-mail的主题
include date in message 是否需要在e-mail中包含日期
contact person e-mail联系人姓名
contact phone e-mail联系人电话
comment e-mail附加备注信息
attach file to message 检查消息是否有附加文件
select the result files types to attach 指定想附加的文件类型
zip files into a single archive 检查是否需要压缩所有选择的文件到档案文件中

8.SQL
可以使用SQL任务条目执行SQL脚本,多行脚本之前用“;”隔开。

选项 描述
name of job entry 任务条目的名称,在单个任务中,必须唯一
connection 所用的数据库连接
use variable substitution 在SQL脚本中使用kettle变量
SQL script 要执行的SQL脚本

9.FTP(get a file with FTP)
可以使用FTP任务条目从FTP服务器上获取一个或者多个文件。

选项 描述
job entry name 任务条目的名称,在单个任务中,必须唯一
FTP server name 服务器名称或者IP地址
user name 登陆FTP服务器的用户名
password 登陆FTP服务器的密码
remote directory 从FTP服务器获取文件的远程目录
target directory 存放传送文件的目录(运行kettle的机器)
wildcard 如果想要选择多个文件,指定一个正则表达式
use binary mode 如果文件需要使用二进制模式
TimeOut FTP服务器超时时间
remove files after retrieval 在FTP服务器所有文件被成功转移后,删除FTP服务器的文件
don’ t overwrite files 如果指定目标目录文件已经存在则调过文件
use active FTP connection 使用主动模式FTP,以代替被动模式(默认)
control encoding FTP控制指令的编码

10.table exists
可以使用TABLE EXISTS任务条目检验数据库中是否存在某个表。

选项 描述
name of job entry 任务条目的名称,单个任务中必须唯一
database connection 所用的数据库连接
tablename 要检查的数据库表名

11.create a file
可以使用该任务条目创建一个空文件,这对在任务中创建“触发器”是有用的。

选项 描述
job entry name 任务条目的名称,单个任务中必须唯一
file name 创建的空文件的文件名称和路径
fail if file exists 当文件已经存在时,这个工作条目将跟随一个失败节点,默认选中

12.delete a file
可以使用该条目来删除一个文件。

选项 描述
job entry name 任务条目的名称,单个任务中必须唯一
file name 要删除的文件名称和路径
fail if file exists 当文件已经存在时,这个工作条目将跟随一个失败节点,默认选中

13.wait a file
可以使用该任务条目来等待一个文件。这个任务条目将定期的检车指定的文是否存在,以决定流程是否继续。这个条目可以不确定的等待文件或者经过一段时间后超时。

选项 描述
job entry name 任务条目的名称,单个任务中必须唯一
file name 要等待的文件的文件名称和路径
maximum timeout 最大超时时间秒数,0表示不确定。如果到了设定的时间,就算文件还没有被创建,流程也将继续。一旦超时,“success on timeout”选项将决定下一个成功或者失败的节点继续与否
check cycle time 设置检查文件的时间间隔
success on timeout 一旦超时,如果文件还没有觉察到,下一结点将继续
file size check 探测指定的文件,仅仅当最后一次检查时文件尺寸没有改变才继续

14.file compare
可以使用该任务条目来比较两个文件的内容,控制任务的流程。当两个文件相等时,成功流出节点将继续,否则失败节点将继续。

选项 描述
job entry name 任务条目的名称,单个任务中必须唯一
file name 1 比较的第一个文件的文件名称和路径
file name 2 比较的第二个文件的文件名称和路径

15.wait for
使用该任务条目在运行下一个条目之前等待一段时间。

选项 描述
name of job entry 任务条目的名称,单个任务中必须唯一
wait for 等待延时
unit time 指定时间单位

16.abort job
中断一个任务使用该条目。

选项 描述
name of job entry 任务条目的名称,单个任务中必须唯一
message 中断的时候添加到日志信息

17.zip files
这个步骤将按照在对话框中指定的选择创建一个标准的ZIP归档。

选项 描述
name of job entry 任务条目的名称,单个任务中必须唯一
source directory 被压缩文件源目录
include wildcard 文件的通配符(正则表达式)包含在归档文件中
exclude wildcard 文件的通配符(正则表达式)不包含在归档文件中
zip file name 目的归档文件的全名
compression 压缩级别
if zip files exists 如果目标存在发生的动作
after zipping 归档后的操作
move files to 归档后移动源文件至何方

你可能感兴趣的:(ETL)