Kettle是”Kettle E.T.T.L. Envirnonment”只取首字母的缩写。这意味着它被设计用来帮助你实现你的ETTL需要:抽取、转换、装入和加载数据。
Spoon 用户手册
问题 | 行转列(Row Normaliser)93 |
2 、创建一个转换或任务 (Creating a Transformation or Job) 21
3 、数据库连接 (Database Connections) 21
5 、数据库浏览器 (Database Explorer) 24
8 、转换设置( Transformation Settings ) 28
9 、转换步骤( Transformation steps ) 33
9 、 5 Apache 虚拟文件系统( VFS )支持 37
9 、 6 、 1 文本文件输入( Text Input ) 39
9 、 6 、 2 表输入( Table Input ) 49
9 、 6 、 3 获取系统信息( Get System Info ) 51
9 、 6 、 4 生成行( Generate Rows ) 54
9 、 6 、 5 文件反序列化( De-serialize from file )(原来名称为 Cube Input ) 55
9 、 6 、 6 XBase 输入( XBase input ) 56
9 、 6 、 7 Excel 输入( Excel Input ) 57
9 、 6 、 8 XML 输入 (XML input) 60
9 、 6 、 9 获取文件名 (Get File Names) 63
9 、 6 、 10 文本文件输出 (Text File Output) 64
9 、 6 、 11 表输出 (Table output) 67
9 、 6 、 12 插入 / 更新 (Insert/Update) 69
9 、 6 、 15 序列化到文件 (Serialize to file)( 以前是 Cube Output) 73
9 、 6 、 16 XML 输出( XML output ) 74
9 、 6 、 17 Excel 输出 (Excel Output) 76
9 、 6 、 18 Access 输出( Microsoft Access Output ) 79
9 、 6 、 19 数据库查询 (Database lookup) 80
9 、 6 、 20 流查询( Stream lookup ) 81
9 、 6 、 21 调用数据库存储过程 (Call DB Procedure) 83
9 、 6 、 22 HTTP 客户端 (HTTP Cient) 84
9 、 6 、 23 字段选择 (Select values) 85
9 、 6 、 24 过滤行 (Filter rows) 88
9 、 6 、 25 行排序( Sort rows ) 89
9 、 6 、 26 添加序列 (Add sequence) 90
9 、 6 、 27 空操作 - 什么都不做 (Dummy-do nothing) 91
9 、 6 、 28 行转列 (Row Normali s er) 93
9 、 6 、 29 拆分字段( Split Fields ) 95
9 、 6 、 30 去除重复记录 (Unique rows) 96
9 、 6 、 33 计算器( Calculator ) 100
9 、 6 、 34 增加 XML ( XML Add ) 102
9 、 6 、 35 增加常量( Add constants ) 103
9 、 6 、 36 行转列( Row Denormaliser ) 104
9 、 6 、 37 行扁平化 ( Flattener ) 105
9 、 6 、 38 值映射( Value Mapper ) 107
9 、 6 、 39 被冻结的步骤( Blocking step ) 108
9 、 6 、 40 记录关联(笛卡尔输出)( Join Rows-Cartesian Product ) 109
9 、 6 、 41 数据库连接( Database Join ) 110
9 、 6 、 42 合并记录( Merge rows ) 112
9 、 6 、 43 存储合并( Stored Merge ) 113
9 、 6 、 44 合并连接 (Merge Join) 114
9 、 6 、 45 Java Script 值( Java Script Value ) 115
9 、 6 、 45 、 7 JavaScript 示例 120
9 、 6 、 45 、 7 、 2 设置地址名称到大写 120
9 、 6 、 45 、 7 、 3 从日期字段提取信息 120
9 、 6 、 46 改进的 Java Script 值( Modified Java Script Value ) 121
9 、 6 、 46 、 4 Java Script 函数 121
9 、 6 、 46 、 5 Java Script 122
9 、 6 、 47 执行 SQL 语句( Execute SQL script ) 123
9 、 6 、 48 维度更新 / 查询( Dimension lookup/update ) 126
9 、 6 、 49 联合更新 / 查询( Combination lookup/update ) 127
9 、 6 、 51 从结果获取记录( Get rows from result ) 129
9 、 6 、 52 复制记录到结果( Copy rows to result ) 129
9 、 6 、 53 设置变量( Set Variable ) 130
9 、 6 、 54 获取变量( Get Variable ) 131
9 、 6 、 55 从以前的结果获取文件( Get files from result ) 132
9 、 6 、 56 复制文件名到结果( Set files in result ) 133
9 、 6 、 57 记录注射器( Injector ) 134
9 、 6 、 58 套接字读入器( Socket Reader ) 135
9 、 6 、 59 套接字输写器( Socket Writer ) 135
9 、 6 、 60 聚合行( Aggregate Rows ) 136
9 、 6 、 61 流 XML 输入( Streaming XML Input ) 137
9 、 6 、 63 Oracle 批量装载( Oracle bulk loader ) 144
11 、 2 、 10 Evaluation(javascript) 160
11 、 2 、 17 Put files with secureFTP 169
11 、 2 、 20 Display Msgbox info 172
11 、 2 、 22 XSL transformation 174
12 、图形界面( Graphical View ) 176
15 、资源库浏览器( Repository Explorer ) 187
1、Spoon介绍
1、1什么是Spoon
Kettle是”Kettle E.T.T.L. Envirnonment”只取首字母的缩写。这意味着它被设计用来帮助你实现你的ETTL需要:抽取、转换、装入和加载数据。
Spoon是一个图形用户界面,它允许你运行转换或者任务,其中转换是用Pan工具来运行,任务是用Kitchen来运行。Pan是一个数据转换引擎,它可以执行很多功能,例如:从不同的数据源读取、操作和写入数据。Kitchen是一个可以运行利用XML或数据资源库描述的任务。通常任务是在规定的时间间隔内用批处理的模式自动运行。
1、2安装
要运行此工具你必须安装Sun公司的JAVA运行环境1.4或者更高版本,相关资源你可以从http://www.javasoft.com 上下载。
1、3运行Spoon
下面是在不同的平台上运行Spoon所支持的脚本:
Spoon.bat: 在windows平台运行Spoon。
Spoon.sh: 在Linux、Apple OSX、Solaris平台运行Spoon。
1、4资源库
一个Kettle资源库可以包含那些转换信息,这意味着为了从数据库资源中加载一个转换,你必须连接相应的资源库。
要实现这些,你需要在资源库中定义一个数据库连接,你可以在Spoon启动的时候,利用资源库对话框来定义。
资源库登陆屏幕截图
关于资源库的信息存储在文件 “reposityries.xml”中,它位于你的缺省home目录的隐藏目录“.kettle”中。如果是windows系统,这个路径就是c:\Documents and Settings\
如果你不想每次在Spoon启动的时候都显示这个对话框,你可以在“编辑/选项”菜单下面禁用它。
**:admin用户的缺省密码也是admin。如果你创建了资源库,你可以在“资源库/编辑用户”菜单下面修改缺省密码。
1、5资源库自动登录
你可以设置以下的环境变量,来让Spoon自动登录资源库。
环境变量:KETTLE_REPOSITORY,KETTLE_USER,KETTLE_PASSWORD。
1、6定义
1、6、1转换
1、6、2任务
1、7工具栏
含义 | |
创建一个新的转换或者任务 | |
创建一个新的转换 | |
创建一个新的任务 | |
打开一个转换或者任务,不管你有没有连接到资源库 | |
保存转换或者任务到一个文件或者资源库 | |
用不同的文件名保存转换或者任务 | |
返回一个打印对话框,你可以指定页数或者页边等 | |
运行转换或者任务:从XML文件或者资源库中运行当前的转换 | |
预览转换:在内存中运行当前的转换,你可以预览指定的步骤产生的行 | |
按照指定的日期和时间重放转换 | |
检验转换:Spoon将对每一个步骤进行检查,以确定是否能得到期望值 | |
效果分析:转换将给老的数据库带来什么样的结果 | |
生成在运行转换之前需要执行的SQL语句 |
1、8选项
你可以改变很多选项来增强图形用户界面的个性化。例如你可以设置窗体的字体和颜色。要改变这些选项,你可以在“编辑/选项”中设置。
1、8、1 General标签
名称 | 含义 |
Maximum undo lever | 设置能被Spoon撤销的最大步骤数 |
Default preview size | 设置转换预览时从步骤中可以得到的行数 |
Show tips at startup | 设置在启动的时候是否显示提示信息 |
Show welcome page at startup | 设置在运行Spoon的时候是否显示欢迎页面 |
Use database cache | Spoon的缓存信息存储在源和目标数据库上。当我们改变数据库的时候可能会得到不正确的结果,在这种情况下,可能需要完全禁用缓存,而不是每次都去清除缓存。 |
Open last file at startup | 这个选项可用时,可以自动的加载最近从XML文件或者资源库中打开的转换 |
Auto save changed file | 这个选项可用时,在运行转换之前,将自动保存转换改变的内容 |
Only show the active file in the main tree | 这个选项将按照目前的活动文件,在主菜单中减少转换或者任务的项目 |
Only save used connection in XML | 这个选项将限制转换的XML输出 |
Ask about replacing existing connection on open/import | 这个选项将在替换一个已经存在的数据库连接之前询问 |
Replace existing connections on open/import | |
Show save confirmation | 这个选项将允许你在转换改变的时候,关闭确认保存对话框 |
Automatically split hops | 这个选项将允许你在分割Hop的时候,关闭确认对话框 |
Show copy or distribute rows warning | 这个选项将允许你在设计一个步骤有多个输出的时候,关闭警告信息 |
Show the repositories dialog at startup | 这个选项控制是否在启动的时候显示资源库对话框 |
Clear custom flags and parameters | 这个选项将清除在插件或者步骤对话框中设置的所有参数和标记 |
1、8、2 Look Feel标签
名称 | 含义 |
Default font | 被对话框、树、输入字段用到的字体 |
Graph font | 被图形界面用到的字体 |
Grid font | Spoon所有网格用到的字体 |
Note font | 图形界面备注用到的字体 |
Background color | Spoon、对话框的背景色 |
Graph background color | Spoon图形界面用到的背景 |
Color of selected tabs | 标示标签被激活的状态 |
Icon size | 图标的尺寸,原始尺寸是3232像素,最好设置成16,24,32,48,64或者其它32的倍数 |
Line width | 这个设置影响图形界面上Hop的线宽,以及步骤的边框 |
Shadow size | 如果这个尺寸大于0,步骤、Hop和备注将在画布上留下阴影,好像转换悬浮在画布上 |
Dialog middle percentage | 缺省参数是35%. |
Canvas anti-aliasing enabled? | |
Take over look from the OS? | |
Show branding graphics | |
Default locale to use | 指定缺省的语言 |
Fail over locale to use | 因为Kettle原始的语言是英语,所以最好设置成英语 |
1、9搜索元数据
可以通过“编辑/Search meta-data”或者CTRL+F来使用这个特性。
这个选项将在可用的字段、连接器、注释以及所有加载的任务和转换中搜索,并展示搜索的结果。
1、10设置环境变量
添加设置环境变量的功能,使动态的测试转换变为可能。通常变量被一个任务中不同的转换设置。不管怎么样,在开发或者测试期间,你可能需要手动的设置变量。
可以通过“编辑/Set Environment variables”或者CTRL+J来使用这个特性.当你运行一个未定义的变量时将出现这个窗口,你可以在执行的时候去定义它。
2、创建一个转换或任务(Creating a Transformation or Job)
3、数据库连接(Database Connections)
3、1描述
一个连接描述了Kettle连接数据库的方法,在左边树菜单的顶部展示了所有可用的连接。
3、2 设置窗口
3、3选项
Connection name:定义转换或者任务访问的连接的唯一名称
Connection type:连接的数据类型
Method of access:可以是Native(JDBC),ODBC,或者OCI
Server host name:指定数据库部署的主机或者服务器的名称,也可以指定IP地址
Database name:指定连接的数据库的名称,如果是ODBC方式就指定DSN名称
Port number:设定数据库监听的TCP/IP端口号
User name/password:指定连接数据库的用户名和密码
3、4数据库用法
数据库 | 访问方法 | 服务器名称/地址 | 数据库名称 | 端口(缺省) | 用户名/密码 |
Oracle | Native | 需要 | Oracle database SID | 需要(1521) | 需要 |
ODBC | ODBC DSN name | 需要 | |||
OCI | Database TNS name | 需要 | |||
MySQL | Native | 需要 | MySQL database name | 可选(3306) | 密码可选 |
ODBC | ODBC DSN name | 密码可选 | |||
MS Access | ODBC | ODBC DSN name | 可选 | ||
MS SQL Server | Native | 需要 | Database name | 需要(1433) | 需要 |
ODBC | ODBC DSN name | 需要 | |||
IBM DB2 | Native | 需要 | Database name | 需要(50000) | 需要 |
ODBC | ODBC DSN name | 需要 | |||
AS/400 | Native | 需要 | AS/400 Library name | 可选 | 需要 |
ODBC | ODBC DSN name | 需要 | |||
Sybase | Native | 需要 | Database name | 需要(5001) | 需要 |
ODBC | ODBC DSN name | 需要 |
4、SQL编辑器(SQL Editor)
4、1描述
有时候当你创建表、删除索引或者修改字段的时候,有一个简单的SQL编辑器是再好不过了。Spoon提供的简单SQL编辑器完全可以帮助你实现这些。事实上,大多数的DDL,例如“create/alter table”、“create index”或者“create sequence”命令可能通过SQL编辑器窗口运行。
注:多个SQL语句时必须用“;”隔开。
4、2屏幕截图
4、3局限性
这只是一个简单的SQL编辑器,它不可能完全知道超过20种它所支持的数据库的方言。这意味着创建存储过程、触发器或者其它的数据库对象可能会带来很多问题。在这种情况下,请考虑使用数据库自带的工具。
5、数据库浏览器(Database Explorer)
5、1屏幕截图
5、2描述
数据库浏览器允许你浏览你连接的数据库。在这个时候,它仅仅显示可用的表、目录或者表模式。
可以利用右边的按钮最低限度的展示表或者视图。你可以选择下面的选项:
Display the first 100 rows of the table(显示表最开始的100行)
Display the first … lines of the table(根据你输入的行数展示表)
Show the size(in rows) of the table(显示表的行数)
Show layout of the table(显示表结构)
Generate the DDL statement(create table…) for this table(生成该表的DDL语句)
Generate the DDL statement(create table…) for this table on another database connection(在其它的数据库连接中生成该表的DDL语句)
Show the SQL statement to read from this table(in SQL Editor)(在SQL编辑器中生成读取该表的SQL语法)
Truncate table…:generates a commented out “Truncate table” statement(生成“Truncate table”的语句)
6、节点连接(Hops)
6、1描述
一个连接连接两个步骤。数据流的方向使用箭头来指定。连接可以使它可用或者禁用。
6、1、1转换连接
6、1、2任务连接
6、2屏幕截图
6、3创建一个连接
你可以简单的使用下面的选项来创建个连接:
使用鼠标中间的按钮在图形界面上拖拉。
使用鼠标左边的按钮和SHIFT键在图形界面上拖拉。
选择菜单树上的两个步骤,鼠标右键选择“新连接”。
选择图形界面上上的两个步骤,鼠标右键选择“新连接”。
6、4拆分一个连接
您可以很简单的插入一个新步骤到在两个步骤间的新连接上,在图形界面上拖拉步骤通过一个连接,直到那个连接变成粗体。
6、5转换连接颜色
下面是所有使用的颜色:
外观 | 含义 |
Green | 分发行 |
Red | 复制行 |
Yellow | 给步骤提供信息,分发行 |
Magenta | 给步骤提供信息,复制行 |
Gray | 不可用 |
Black | 命名目标步骤 |
Blue | 侯选连接,使用鼠标中间按钮+拖拉 |
(Dot line) | 一直没有使用的,因为没有数据经过 |
Red(Bold Dot line) | 运输在源步骤中出错的行 |
7、变量(Variables)
7、1变量使用
变量可以在转换步骤或者任务条目中使用。变量可以在转换中的“Set Variable”步骤中设置,或者在Kettle的属性文件Kettle.properties中设置。Kettle目录如下:
$HOME/.kettle(Unix/Linux/OSX)
C:\Documents and Settings\
使用变量的方法可以如下指定:
${VARIABLE}(UNIX)
%% VARIABLE %%(WINDOWS)
两种格式都可以使用,甚至混合使用。
7、2变量范围
变量的范围可以在定义的地方指定。
7、2、1环境变量
7、2、2Kettle变量
7、2、3内部变量
变量名称 | 示例值 |
Internal.Kettle.Build.Date | 18:01:39 |
Internal.Kettle.Build.Version | 2045 |
Internal.Kettle.Version |
下面这些变量在转换中被定义:
变量名称 | 示例值 |
Internal.Transformation.Filename.Directory | D:\Kettle\samples |
Internal.Transformation.Filename.Name | Denormaliser-2 series of key-value paris.ktr |
Internal.Transformation.Name | Denormaliser-2 series of key-value paris.sample |
Internal.Transformation.Repository.Directory | / |
下面这些变量在转换中被定义:
变量名称 | 示例值 |
Internal.Job.Filename.Directory | /home/matt/jobs |
Internal. Job.Filename.Name | Nested jobs.kjb |
Internal. Job.Name | Nested job test case |
Internal. Job.Repository.Directory | / |
8、转换设置(Transformation Settings)
8、1描述
只有几个选项来控制转换的行为,以及日志文件如何操作。可以从主菜单的转换/设置中打开转换设置。
8、2屏幕截图
8、3选项
选项 | 描述 |
转换名称 | 转换的名称,如果你想保存到资源库中,就需要指定一个名称。 |
描述 | 转换的简短描述,将在资源库浏览器中展示。 |
扩展描述 | 转换的详细描述。 |
状态 | 草稿或者产品状态 |
版本 | 描述版本 |
目录 | 你想保存转换到资源库的目录 |
创建者(Created by) | 创建转换的用户名称 |
转换创建的时间(Last modified at) | 转换创建的时间 |
转换最后修改者的姓名(Last modified by) | 转换最后修改的用户 |
转换最后修改的时间(Last modified at) | 转换最后修改的时间 |
READ日志步骤 | 将当前步骤读取行的编号写入日志表。READ含义:从源步骤读取 |
INPUT日志步骤 | 将当前步骤输入行的编号写入日志表。INPUT含义:从文件或者数据库输入 |
WRITE日志步骤 | 将当前步骤写入行的编号写入日志表。WRITE含义:写入到目标步骤 |
OUTPUT日志步骤 | 将当前步骤输出行的编号写入日志表。OUTPUT含义:输出到文件或者数据库 |
UPDATE日志步骤 | 将当前步骤更新行的编号写入日志表。UPDATE含义:在数据库更新 |
日志数据库连接 | 使用这个连接写到日志表 |
日志表 | 指定日志表的名称 |
使用批处理-ID | 如果想使用批处理-ID,选中此选项 |
使用日志表来记录登录 | 用CLOB字段在日志表中存储登录文本 |
最大日期数据库连接 | 通过这个连接获取日期范围 |
最大日期表 | 通过这个表获取日期范围 |
最大日期字段 | 通过这个字段获取日期范围 |
最大日期偏移 | 用这个数量来增长日期 |
最大日期区别 | 根据日期围范获取最大日期差异 |
依赖 | 这个表允许你输入所有的依赖 |
记录集合里面的记录数 | 这个选项允许你改变一个转换中两个步骤缓冲区的尺寸 |
8、4其它
“获取依赖”按钮:自动探测依赖
SQL按钮:生成创建日志表的SQL脚本。
9、转换步骤(Transformation steps)
9、1描述
步骤是转换的一部分,步骤可能给你提供广泛的功能,比喻读取文本、使用其它的工具等等。
9、2运行步骤的多个副本
有时候多次运行相同的步骤是非常有用的。例如,执行一个数据库查询三次或者三次以上,这是因为数据库连接通常有一个反应时间,改变步骤运行的次数,可以有效的减少反应时间,提高效率。
要运行一个步骤的多个副本,你只要在图形界面的步骤上点击鼠标右键,选择“改变开始复制的数量…”。
9、3分发或者复制
在上面的例子中,步骤之前使用绿色线条来连接,这表示所有的行被分发到目标步骤。这意味着,从步骤“A”中来的第一行进入“数据库查询,第二行进入“数据库查询,第三行进入“数据库查询,第四行又返回到“数据库查询,依此类推。
不管怎样,如果你在“A”上,点击“数据迁移-复制数据到下一步”,步骤之间的连接线将变成红色。
9、4常用错误处理
这个特性起源于Pentaho Data Integration核心开发者之一,Sven Boden。意途很简单:代替一个转换因为某一个步骤发生错误的时候被中断,你可以引起错误的这些行,进入到一个不同的步骤。
例如下面的示例:当ID大于5的时候,我们人工生成一个错误。
备注:错误处理的菜单仅仅在支持错误处理的步骤上出现。
错误处理对话框如下所示:
9、5Apache虚拟文件系统(VFS)支持
版本实现的一个新功能就是对本地源文件、转换和任务的引用。为实现这个,我们使用VFS库。
下面是一个简单的例子,你可以试验。
9、6转换步骤类型
9、6、1文本文件输入(Text Input)
9、6、1、1 屏幕截图
9、6、1、2图标
9、6、1、3常用描述
9、6、1、4选项
9、6、1、4、1文件名指定选项
指定文件名后,并按“增加”按钮,你可以添加一个文件到“选择文件”中,如下所示:
你也可以用指定正则表达式通配符的形式来搜索文件。正则表达式比简单的用“?”和“” 通配符更有效。
下面是利用正则表达式的例子:
文件名 | 正则 | 选择的文件 |
/dirA/ | .userdata./.txt | 所有在/dirA/目录下的并且文件名包含userdata、以txt为后缀的文件 |
/dirB/ | AAA. | 所有在/dirB/目录下的并且文件名以AAA开头的文件 |
/dirC/ | [A-Z][0-9]. | 所有在/dirC/目录下的并且文件名以字母开头、紧接着一个数字的文件 |
选项 | 描述 |
文件或目录 | 这个选项指定输入文件的位置或者名称。注:用“增加”按钮将添加文件、目录、通配符组合到下面选择文件列表网格中 |
正则表达式 | 指定你想用的正则表达式在先前指定的目录中选择文件 |
文件类型 | 可以是CSV或者Fixed length(固定长度)。根据指定的不同,在最后的字段标签中按下“获取字段”按钮时,Spoon将调用 不同的帮助GUI。 |
必需 | 如果一个文件是必需的,并且没有发现它,将产生一个异常。否则,文件名简单的跳过。 |
9、6、1、4、2从先前的步骤中接受文件名
这个选择允许你利用其它的步骤(例如“Get File names”)来更灵活的构造文件名。利用这种方法,文件名来自:文件文件、数据库表等等。
选项 | 描述 |
从以前的步骤接受文件名 | 将允许你从以前的步骤接受文件名 |
步骤读取的文件名来自 | 读取的文件名来自 |
从输入里面的字段当作文件名 | 文本文件输入将查询这个步骤,以决定使用哪个文件名 |
9、6、1、4、3内容指定
内容标签允许你指定正在读取的文本文件的格式,下面是标签的选项列表:
选项 | 描述 |
文件类型 | 可以是CSV或者Fixed length(固定长度)。根据指定的不同,在最后的字段标签中按下“获取字段”按钮时,Spoon将调用 不同的帮助GUI。 |
分隔符 | 在文本的单行中,一个或多个字符将被用来分隔字段,比较有代表性的是;或者一个tab制表符 |
封闭字符 | 一些字段能够被一对允许分隔的字符来封闭。封闭字符串是可选的。如果你重复使用封闭文本’Not the nine o’’clock news.’.用’作为封闭字符,将被解析成Not the nine o’clock news. |
逃逸字符 | 如果你的数据中有逃逸字符,就指定逃逸字符(或者逃逸字符串)。如果\作为逃逸字符,文本’Not the nine o\’clock news.’(’作为封闭字符),将被解析成Not the nine o’clock news. |
头部/头部行数量 | 如果你的文本文件有头部行就使用这个。你可以指定头部行出现的次数。 |
尾部/尾部行数量 | 如果你的文本文件有尾部行就使用这个。你可以指定尾部行出现的次数。 |
包装行/包装行数量 | 利用这个来处理被某些页限制包装的数据行。注:头部和尾部从来不考虑被包装 |
分页布局/每页行数/文档头部行 | 在行打印机上打印的时候,你可以用这个选项作为最终的手段。用头部行的数量来跳过介绍性的文本,用每页的行数来定位数据行 |
压缩 | 如果你的文件是ZIP文件或者GZIP归档文件,就启用这个。注:此刻归档文件中仅仅第一个文件被读取 |
没有空行 | 不往下一步发送空行 |
输出包含文件名 | 如果你想文件名作为输出的一部分,可以启用这个 |
文件名字段名称 | 包含文件名的字段名称 |
输出行数 | 如果你想行数作为输出的一部分,可以启用这个 |
行数字段名称 | 包含行数的字段名称 |
根据文件获取行数 | 允许每个文件重置的行数 |
格式 | 可以是DOS、UNIX或者混合模式。UNIX行终止可以是回车,DOS中可以是回车或者换行。如果你选择混合模式,将不会验证。 |
编码方式 | 指定文本文件编码方式。如果不设置就使用系统默认的编码方式。如果想用Unicode,可以指定UTF-8或者UTF-16。第一次使用的时候,Spoon将搜索系统,寻找可用的编码 |
记录数量限制 | 设置读取记录的行数。0代表读取所有的。 |
解析日期时是否严格要求 | 如果你想严格的解析数据字段,可以禁用这个选项。如果启用的时候,Jan 32nd将变成Feb 1st。 |
本地日期格式 | 在本地日期常常被解析为“February wnd,的形式,在用法语本地化的系统中日期将不会被解析,因为在法语本地化中February不能理解 |
9、6、1、4、4错误处理
当错误发生的时候,错误处理标签允许你指定这个步骤将重新做些什么。
选项 | 描述 |
忽略错误 | 如果在解析的时候忽略错误,就指定这个选项 |
跳过错误行 | 使用这个选项来跳过那些出现错误的行。你可以生成另外的文件来包含发生错误的行号。如果不跳过错误行,解析错误字段将是空的 |
错误计数字段 | 在输出流行中增加一个字段,这个字段将包含错误发生的行数 |
错误字段字段名 | 在输出流行中增加一个字段,这个字段将包含错误发生的字段名称 |
错误文本字段名 | 在输出流行中增加一个字段,这个字段将包含解析错误发生字段的描述 |
警告文件目录 | 当警告发生的时候,它们将被放进这个目录。文件名将是<警告目录>/文件名.<日期时间>.<警告文件扩展> |
错误文件目录 | 当错误发生的时候,它们将被放进这个目录。文件名将是<错误文件目录>/文件名.<日期时间>.<错误文件扩展> |
失败行数文件目录 | 当解析行的时候发生错误,行号将被放到这个目录。文件名将是<错误行目录>/文件名.<日期时间>.<错误行扩展> |
9、6、1、4、5过滤
在“过滤”标签中,你可以指定文本文件中要过滤的行。
选项 | 描述 |
过滤字符 | 搜索字符串 |
过滤位置 | 在行中过滤字符串必须存在的位置。0是起始位置,如果你指定一个小于0的值,过滤器将搜索整个字符 |
停止在过滤器 | 如果你想在文本文件遇到过滤字符的时候,停止处理,就指定Y |
9、6、1、4、6字段
选项 | 描述 |
名称 | 字段名称 |
类型 | 字段类型(String、Date、Number等) |
格式 | 参考.5 |
长度 | 对于Number:有效数的数量 对于String:字符的长度 对于Date:打印输出字符的长度(例如4代表返回年份) |
精度 | 对于Number:浮点数的数量 对于String,Date,Boolean:未使用 |
货币类型 | 用来解释如$10,000.00的数字 |
小数 | 小数点可以是”.”(10;000.00)或者”,”(5.000,00) |
分组 | 分组可以是”.”(10;000.00)或者”,”(5.000,00) |
如果为空 | 空值处理为 |
默认 | 字段为空的时候的默认值 |
去空字符串 | 处理之前先去空 |
重复 | Y/N:如果在当前行中对应的值为空,则重复最后一次不为空的值 |
9、6、1、5格式化
9、6、1、5、1Number格式化
这些信息是从Sun Java API的文档中引入的。
符号 | 位置 | 局部化 | 含义 |
0 | Number | Yes | 数字 |
# | Number | Yes | 不包含数字和0 |
. | Number | Yes | 小数分隔符或者货币小数分隔符 |
- | Number | Yes | 减号 |
, | Number | Yes | 分组分隔符 |
E | Number | Yes | 在科学读数法中分隔尾数。不在前缀或者后缀中引用 |
; | Sub pattern boundary | Yes | 分隔正负 |
% | 前缀或后缀 | Yes | 百分比 |
\u230 | 前缀或后缀 | Yes | 千分比 |
(\u4) | 前缀或后缀 | No | 货币标记,被货币符替代 |
‘ | 前缀或后缀 | No | 在前缀或者后缀中被引用为指定的字符,例如”’#’#”格式化123到“#123” |
9、6、1、5、2Date格式化
这些信息是从Sun Java API的文档中引入的。
字母 | 日期或者时间组合 | 表达 | 示例 |
G | 世纪指定 | Text | AD |
Y | 年 | Year | 1996;96 |
M | 年中的月份 | Month | July;Jul;07 |
w | 年中的星期 | Number | 27 |
W | 月中的星期 | Number | 2 |
D | 年中的天 | Number | 189 |
d | 月中的天 | Number | 10 |
F | 月中星期的天数 | Number | 2 |
E | 星期中的天数 | Text | Tuesday;Tue |
a | Am/pm标记 | Text | PM |
H | 天中的小时(0-23) | Number 0 | |
k | 天中的小时(1-24) | Number 24 | |
K | Am/pm中的小时(0-11) | Number 0 | |
h | Am/pm中的小时(1-12) | Number 12 | |
m | 小时中的分钟 | Number 30 | |
s | 分钟中的秒数 | Number 55 | |
S | 毫秒 | Number 978 | |
z | 时区 | 通用时区 | Pacific standard Time;PST;GMT-08:00 |
Z | 时区 | RFC 822时区 | -0800 |
9、6、1、6其它
功能/按钮 | 描述 |
显示文件名 | 这个选项所有已经选择的文件列表。如果转换在单独的服务器上运行,结果可能是不正确 |
显示文件内容 | 展示文本文件首行的数据。请确保你要展示的文件格式正确。如果有疑问,分别试试DOS和NUIX格式 |
显示来自第一条数据行的内容 | 这个按钮帮助你从有多个头部行的、复杂的文本文件中定位数据行 |
获取字段 | 允许你猜测文件的布局。如果是CSV文件,这一步接近于自动的。如果是固定长度的文件,你需要指定利用向导来指定字段 |
预览行 | 预览这一步生成的行 |
9、6、2表输入(Table Input)
9、6、2、1 屏幕截图
9、6、2、2图标
9、6、2、3常用描述
这一步常常用来利用连接和SQL,从数据库中读取信息。自动生成基本的SQL语句。
9、6、2、4选项
选项 | 描述 |
步骤名称 | 步骤的名称,在单一的步骤中,名称必需唯一 |
连接 | 读取数据的数据库连接 |
SQL | SQL语句用来从数据库连接中读取数据 |
从步骤插入数据 | 指定我们期待读取数据的步骤名称。这些信息能被插入到SQL语句 |
限制 | 设置从数据库中读取的行数。0所有行 |
9、6、2、5示例
指定以下的SQL语句:
这个语句需要从“从步骤插入数据”读取两个日期。
注:日期可以从“获取系统信息”步骤类型中获取。例如:如果你想读取在昨天改变了的顾客,你可以这样做。
“get date range for yesterday” 步骤如下:
9、6、2、6其它
功能/按钮 | 描述 |
预览 | 预览这一步骤的输出。 |
9、6、3获取系统信息(Get System Info)
9、6、3、1 屏幕截图
9、6、3、2图标
9、6、3、3常用描述
这个步骤从Kettle环境中获取信息。你可以获取以下信息:
选项 | 描述 |
System date(variable) | 系统时间,每次访问的时候都在改变 |
System date(fixed) | 系统时间,由转换开始来决定 |
start date range(Transformation) | 根据ETL日志表的信息,确定日期范围的开始 |
End date rang(Transformation) | 根据ETL日志表的信息,确定日期范围的结束 |
Start date range(job) | 根据ETL日志表的信息,确定日期范围的开始 |
End date range(job) | 根据ETL日志表的信息,确定日期范围的结束 |
Yesterday 00:00:00 | 昨天的开始 |
Yesterday 23:59:59 | 昨天的结束 |
Tomorrow 00:00:00 | 今天的开始 |
Tomorrow 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) |
User that modified the transformation last | |
Date when the transformation was modified last | |
Transformation batch ID | 日志表中的批处理ID值 |
Hostname | 返回服务器的主机名 |
IP address Returns the IP address of the server | |
Command line argument1 | 命令行的第1个参数 |
Command line argument2 | 命令行的第2个参数 |
Command line argument3 | 命令行的第3个参数 |
Command line argument4 | 命令行的第4个参数 |
Command line argument5 | 命令行的第5个参数 |
Command line argument6 | 命令行的第6个参数 |
Command line argument7 | 命令行的第7个参数 |
Command line argument8 | 命令行的第8个参数 |
Command line argument9 | 命令行的第9个参数 |
Command line argument10 | 命令行的第10个参数 |
Kettle version | 返回Kettle的版本 |
Kettle Build version | 返回Kettle核心库的编译版本 |
Kettle Build Date | 返回Kettle核心库的编译日期 |
9、6、3、4选项
步骤名称(step name):步骤的名称,在单个转换中必须唯一。
字段(fields):输出的字段
9、6、3、5用法
9、6、4生成行(Generate Rows)
9、6、4、1 屏幕截图
9、6、4、2图标
9、6、4、3常用描述
这个步骤输出一定数量的行,缺省为空。可选包括一定数量的静态字段。
9、6、4、4选项
Step name(步骤名称):步骤的名称,在单个转换中必须唯一。
Limit:设置你要生成行的最大数量。
Fields:在输出行中你想要包含的静态字段。
9、6、5文件反序列化(De-serialize from file)(原来名称为Cube Input)
9、6、5、1 屏幕截图
9、6、5、2图标
9、6、5、3常用描述
从二进制Kettle Cube文件中读取数据行。
备注:这个步骤仅仅用来存储短期数据。不同版本之间不保证文件的格式一样。
9、6、6XBase输入(XBase input)
9、6、6、1 屏幕截图
9、6、6、2图标
9、6、6、3常用描述
使用这一步可以读取大多数被称为XBase family派生的DBF文件。
9、6、6、4选项
Step name:步骤的名称,在单个转换中必须唯一。
The filename:用变量支持。
Limit size:读取行的数量,0表示不限制。
Add rownr:用包含行号的指定名称,添加一个字段到输出中。
9、6、7Excel输入(Excel Input)
9、6、7、1 屏幕截图
9、6、7、2图标
9、6、7、3常用描述
利用这个步骤可以从Kettle支持的系统的Excel文件里面读取数据。
9、6、7、4选项
步骤名称(step name):步骤的名称,在单个转换中必须唯一。
文件标签(File tab):
支持变量的文件名
请参照:.4.2从先前的步骤中接受文件名 工作表(Sheet tab):
输入的工作表。利用“获取工作表名称”按钮自动填充可用的工作表。请注意你必须指定开始的行和列,以调整你想读取的数据。
内容(Content tab):
头部:检查是否工作表指定了一个头部行。
非空记录:检查是否不需要空行输出。
停在空记录:当步骤在读取工作表遇到一个空行的时候停止读取。
文件名称字段:步骤输出指定一个包含文件名的字段。
工作表名称字段:步骤输出指定一个包含工作表名称的字段。
Sheet row nr field:步骤输出指定一个包含工作表行数的字段。工作表行数是实际的EXCEL工作表的行数。
Row nr written field: 步骤输出指定一个包含行数的字段。
限制:限制输出的行数,0代表输出所有行。
错误处理(Error handling tab):
字段(Fields tab):
在这里你可以指定想从EXCEL中读取的字段。如果工作表有一个头部行,按钮“获取来自头部的字段”将自动获取并填充可用的字段。
9、6、8XML输入(XML input)
9、6、8、1 屏幕截图
9、6、8、2图标
9、6、8、3常用描述
这个步骤允许你读取存储在XML文件中的数据。
它也提供一个接口,你可以定义你想读取的文件名、XML文件的数据重复部分、获取的字段等。
你可以指定元素或属性字段。
9、6、8、4选项
选项 | 描述 |
文件或目录 | 指定输入文件的位置和名称 |
正则表达式 | 指定在先前选择的目录中选择文件的表达式 |
在输出包含文件名称 | 输出流的行中是否要包含XML文件的名称,你可以指定一个以文件名结束的字段名称 |
输出包含记录号 | 是否在输出流中包括行号。你可以指定一个以整数结束的字段名称 |
文件名包含时间 | 文件名中包含系统时间(235959) |
限制 | 你可以指定读取的最大行数 |
位置 | 指定XML文件重复元素的路径。 例如你可以从XML文件中读取行: 然后你可以设置位置Rows,Row 备注:你也可以设置根元素(Rows)作为重复元素位置,那么输出只包含有一行。 |
字段 | 名称:字段的名称 类型:字段可以指定为string,Date或者Number等类型 格式:格式化转换 长度: Number:number有效数的数量 String:字符串的长度 Date:打印输出字符串的长度 精度: Number:number浮点数的数量 String:不可用 Date: 不可用 当前货币:常常用来代表流通的货币,例如$10,000.00 十进制数:小数点可以是“,”(10,000.00)或者“.”(5.000,00) 分组:分组可以是“,”(10,000.00)或者“.”(5.000,00) 修整类型:修整方法修整XML中找到的字符串 重复:是否想要重复使用前一行的值代替空值 位置:XML元素或属性的位置。可以使用以下的语法来指定一个元素的位置: 第一个元素称为“element”:E=element/1 第一个属性称为 “attribute”:E=attribute/1 在第二个元素里面的第一个属性称为“attribute”:E=element/2,A=attribute/1 备注:你可以使用“获取字段”按钮自动生成所有可能的位置。 |
9、6、9获取文件名(Get File Names)
9、6、9、1 屏幕截图
9、6、9、2图标
9、6、9、3常用描述
这个步骤可以获取系统的文件名信息。请参照9.6.1.4.1文件名指定选项 ,获取如何指定文件名的细节。
这一步的输出字段是:
文件名:包括路径的完整文件名称(如:/tmp/kettle/somefile.txt)。
短文件名:仅仅文件名,不包含路径(如:somefile.txt)
路径:仅仅路径(/tmp/kettle)
9、6、10文本文件输出(Text File Output)
9、6、10、1 屏幕截图
9、6、10、2图标
9、6、10、3常用描述
选项 | 描述 |
步骤名称 | 步骤名称,在单个转换中必须唯一 |
文件名称 | 指定输出文本文件的文件名和路径 |
Run this as a command instead? | 根据指定,把结果输出到命令行或者脚本 |
扩展名 | 在文件名的最后添加一个点和扩展名(.txt) |
文件名里包含步骤数 | 如果你在多个拷贝中运行步骤,拷贝的数量将包含到文件名中(在扩展名之前) |
Include partition nr in filename? | 文件名中包含数据分区数量 |
文件名包含日期 | 文件名中包含系统日期(_20041231) |
文件名包含时间 | 文件名中包含系统时间(_235959) |
追加 | 是否在指定的文件最后追加行 |
分隔符 | 指定在文本中分隔字段的字符,例如;或者制表符 |
封闭符 | 封闭字段的一对字符。可选。 |
强制在字段周围加上封闭符 | |
头部 | 如果你想有一个头部行,使这个选项可用(文件第一行) |
尾部 | 如果你想有一个尾部行,使这个选项可用(文件最后一行) |
格式 | DOS或者UNIX。UNIX文件行分隔符是换行符。DOS文件可以是换行符或者回车符。 |
编码 | 指定文件使用的编码。如果空白就使用系统缺省的编码。 |
Compression(压缩) | 指定压缩的类型(zip或者gzip) |
Right pad fields | 在字段最后添加空格或者删除字符,直到长度达到指定 |
Fast data dump(no formatting) | 当处理大量数据到一个文本文件时,提高性能。(不包含任何格式化信息) |
分拆…每一行(Split every…rows) | 如果N比0大,用N行拆分文本文件,分割成多个部分 |
Add Ending line of file | 指定输出文本的结束行 |
字段 | 名称:字段的名称 类型:字段类型可以是String、Date、Number 格式:请参照.5格式化 长度: Number:有效数的长度 String:字符串的长度 Date:打印输出字符的长度 精度 Number:浮点数的长度 String:不用 Date: 不用 货币:代表当前货币的符号 十进制: 分组符可以是“,”或者“.” 分组:分组符可以是“,”或者“.” Null:如果字段值为空,插入这个字符到文本文件 |
显示文件名 | 展示生成的文件列表。 |
9、6、11表输出(Table output)
9、6、11、1 屏幕截图
9、6、11、2图标
9、6、11、3常用描述
这个步骤可以存储信息到数据库表中。
9、6、11、4选项
选项 | 描述 |
步骤名称 | 步骤名称,在单个转换中必须唯一 |
连接 | 用来写数据的数据库连接 |
Target Schema | 要写数据的表的Schema的名称。允许表名中包含“.”对数据源来说是很重要的。 |
目标表 | 要写数据的表名 |
提交记录数量 | 在数据表中用事务插入行。如果N比0大,每N行提交一次连接。否则,不使用事务,速度会慢一些。 |
裁减表 | 在第一行数据插入之前裁减表 |
忽略插入错误 | 使Kettle忽略违反主键约束之类的插入错误,最多20个警告将被日志记录。在批量插入的时候这个功能不可用。 |
使用批量插入 | 如果你想批量插入的话,就使用这个选项。这个选项的速度最快,默认被选上。 |
表分区数据 | 使用这个选项可以在多个表之间拆分数据。例如用把数据放到表SALES_200510, SALES_200511,SALES_200512,…中来代替直接插入数据到表SALES中。 以下的视图SALES展示完整的订单: |
表名定义在一个字段里 | 使用这些选项可以拆分数据到一个或者多个表里,目标表名可以用你指定的字段来定义。例如如果你想存储顾客性别数据,这些数据可能会存储到表M和表F里面(female女性和male男性表)。这个选项可以阻止这些字段插入到对应的表里。 |
返回一个自动产生的关键字 | 往表中插入行时,是否产生一个关键字 |
自动产生关键字的字段名称 | 指定包含关键字的输出字段的字段名称 |
9、6、11、5其它
功能/按钮 | 描述 |
SQL | 生成自动创建输出表的SQL脚本 |
Check | 验证目标表中的所有字段是否可用 |
9、6、12插入/更新(Insert/Update)
9、6、12、1 屏幕截图
9、6、12、2图标
9、6、12、3常用描述
这个步骤利用查询关键字在表中搜索行。如果行没有找到,就插入行。如果能被找到,并且要被更新的字段没有任何改变,就什么也不做。如果有不同,行就会被更新。
9、6、12、4选项
步骤名称:步骤的名称,在单个转换中必须唯一。
连接:目标表所在的数据库连接名称。
Target schema:要写入数据的表的Schema名称。允许表名中包含“.”是很重要的。
目标表:想插入或者更新的表的名称。
Commit size:提交之前要改变(插入/更新)的行数。
不执行任何更新:如果被选择,数据库的值永远不会被更新。仅仅可以插入。
用来查询的关键字:可以指定字段值或者比较符。可以用以下比较符:=,<>,<,<=,>,LIKE,BETWEEN,IS NULL,IS NOT NULL。
更新字段:指定你想要插入/更新的字段
9、6、12、5 其它
“获取字段”按钮:从输入流中获取字段,并且把他们填充到关键字网格中。
“获取更新字段”按钮:从输入流中获取更新字段,并且把他们填充到更新网格中。
“Check”按钮:检查目标表中是否所有的字段都可用。
“SQL”按钮:为正确操作,生成创建表和索引的SQL脚本。
9、6、13更新(Update)
9、6、13、1 屏幕截图
9、6、13、2图标
9、6、13、3常用描述
9、6、14删除(Delete)
9、6、14、1 屏幕截图
9、6、14、2图标
9、6、14、3常用描述
9、6、15序列化到文件(Serialize to file)(以前是Cube Output)
9、6、15、1 屏幕截图
9、6、15、3常用描述
9、6、16XML输出(XML output)
9、6、16、1 屏幕截图
<img src=”/user/files/G-e4EMV-WlGuFv0Rl14svAbgRv2Ovza4i-t8SHQus.jpeg” width=”359.25pt” height=”100%”>
9、6、16、2图标
9、6、16、3常用描述
9、6、16、4选项
选项 | 描述 |
步骤名称 | 步骤的名称,在单一转换中必须唯一。 |
文件名称 | 指定输出文件的名称和位置。 |
扩展名 | 添加一个点和扩展到文件名的后面(.xml) |
文件名中包含步骤号码 | 如果你在多个拷贝中运行一个步骤,在文件扩展名的前面,将包含拷贝的号码 |
文件名中包含日期 | 文件名中包含系统日期(_20061231) |
文件名中包含时间 | 文件名中包含系统时间(_235959) |
分割每一个…行 | 在其它的XML文件被创建之前,放入XML文件中的最大行数 |
已压缩 | 是否想把XML文件存储在一个归档文件中 |
正在编码 | 正在使用的编码。编码在XML文件的头部指定 |
父XML元素 | XML文档的根元素的名称 |
记录XML元素 | XML文档的记录元素的名称 |
字段 | 字段名:字段的名称 元素名称:XML文件使用的元素的名称 类型:字段的类型 长度:输出字符串将填补为指定的长度 精度:使用的精度 货币:代表目前的货币符号如$10,000.00 十进制:小数点可以是“.”或者“,” 分组:分组符可以是“,”或者“.” NULL:如果字段值为空将被此值替换 |
9、6、17Excel输出(Excel Output)
9、6、17、1 屏幕截图
9、6、17、2图标
9、6、17、3常用描述
选项
步骤名称:在单一的转换中必须唯一。
File标签:
文件名和扩展名,可以用变量
扩展名用于输出文件
选项“include the stepnr int the filename”(允许文件并行创建)
选项“include date/time in the filename”(允许文件名中包含系统日期或者时间)
按钮“show filenames”展现步骤运行后,创建的文件名集合
Content标签:
Header:检查表单是否有头部
Footer:检查表单是否有尾部
Encoding:指定电子表单使用的编码
ever…rows:分割数据到几个输出文件中
Use template:输出的EXCEL数据是否使用模板
Excel template:格式化EXCEL输出的模板的名称
Append to Excel template:是否将EXCEL输出添加到指定的EXCEL模板中
Fields标签:
你可以指定你想输出到EXCEL文件中的字段。如果电子表单的头部,按钮“获取字段”将自动获取可以使用的字段。
你可以指定EXCEL使用的格式。
9、6、18Access输出(Microsoft Access Output)
9、6、18、1 屏幕截图
9、6、18、2图标
9、6、18、3常用描述
9、6、18、4选项
步骤名称:在单个转换中名称必须唯一。
The database filename:你连接的数据文件的名称
Create database:是否需要生成一个新的ACESS数据库文件
Target table:你想输出数据的目标表
Create table:是否需要在ACESS数据库中创建一个新表
Commit size:定义输出数据时的提交尺寸
9、6、19数据库查询(Database lookup)
9、6、19、1 屏幕截图
9、6、19、2图标
9、6、19、3常用描述
9、6、19、4选项
步骤名称:在单一转换中步骤名称必须唯一。
数据库连接:想要写入数据的连接。
查询表:想要查询的表名。
使用缓存:数据库查询是否使用缓存。这意味着在某种查询值的条件下,每次数据库都能返回同样的结果。
9、6、20流查询(Stream lookup)
9、6、20、1 屏幕截图
9、6、20、2图标
9、6、20、3常用描述
9、6、20、4选项
步骤名称:在单个转换中步骤名必须唯一。
源步骤:数据来源的步骤名称
查询值所需要的关键字:允许你来指定用来查询值的字段名称。值总是用“等于”比较符来搜索。
接收的字段:你可以指定用来接收字段的名称,或者在值没有找到的情况下的缺省值,或者你不喜欢旧的字段名称的情况下的新字段名称
Preserve Memory:排序的时候对数据行进行编码以保护内存
Key and value are exactly one integer field: 排序的时候对数据行进行编码以保护内存
Use sorted list:是否用一个排序列表来存储值,它提供更好的内存使用。
9、6、20、5 其它
“获取字段”按钮:自动获取源步骤的可用字段的名称。你可以删除你不想查询的字段。
“获取查找字段”按钮:自动获取输出流中的可用字段的名称。你可以删除你不想返回的字段。
9、6、21调用数据库存储过程(Call DB Procedure)
9、6、21、1 屏幕截图
9、6、21、2图标
9、6、21、3常用描述
9、6、21、4选项
步骤名称:步骤的名称,在单一转换中必须唯一。
连接:存储过程所有的数据库的连接名称。
存储过程名称:调用的存储过程或者函数名称。
自动提交:在运行存储过程的时候自动提交。
结果名称:调用存储过程或者函数返回结果的名称。
结果类型:调用存储过程或者函数返回结果的类型。
参数:存储过程或者函数需要的参数列表。
名称:字段的名称。
方向:可以是IN,OUT或者INOUT。
类型:使用输出参数,以便Kettle知道返回了什么。
9、6、21、5其它
“查找”按钮:在指定的数据库连接中搜索可用的存储过程或者函数。
“获取字段”按钮:这个功能填充输入流中的所有字段。
9、6、22HTTP客户端(HTTP Cient)
9、6、22、1 屏幕截图
9、6、22、2图标
9、6、22、3常用描述
HTTP客户端根据一个附带条件的基准URL,来调用一个简单的调用。例如:
http://
结果存储在指定名称的字符类型字段中。
9、6、22、4选项
步骤名称:步骤的名称,在单一转换中必须唯一。
URL:基准URL字符串。
结果字段名称:存储结果的字段名称。
参数:用名称-值对来定义通过URL传递的参数。
9、6、23字段选择 (Select values)
9、6、23、1 屏幕截图
9、6、23、2图标
9、6、23、3常用描述
选择字段
重命名字段
指定字段的长度或者精度
下面是三个不同标签的功能:
选择和修改:指定需要流到输出流中的字段的精确顺序和名称
删除:指定必须从输出流中删除的字段
元数据:修改元数据字段的名称、类型、长度和精度
9、6、23、4选项
步骤名称:步骤的名称,在单一转换中必须唯一。
表字段:
字段名称:选择或者修改的字段名称
改名:如果不想改名,就使用空白
长度:输入数字指定长度(-1:代表没有长度指定)
精度:输入数字指定精度(-1:代表没有精度指定)
9、6、24过滤行(Filter rows)
9、6、24、1 屏幕截图
9、6、24、2图标
9、6、24、3常用描述
9、6、24、4选项
步骤名称:步骤的名称,在单一转换中必须唯一。
发送“true”数据给步骤:指定条件返回true的数据将发送到此步骤。
发送“false”数据给步骤:指定条件返回false的数据将发送到此步骤。
9、6、25行排序(Sort rows)
9、6、25、1 屏幕截图
9、6、25、2图标
9、6、25、3常用描述
这个步骤利用你指定的字段排序行,无论他们是按照升序还是降序。
备注:当行数超过5000行的时候,Kettle使用临时文件来排序行。
9、6、25、4选项
步骤名称:步骤的名称,在单一转换中必须唯一。
排序目录:临时文件存储的目录。如果缺省则为标准的系统临时文件夹。
排序尺寸:存储在内存中的行越多,排序的速度就越快。
临时文件前缀:选择一个好记的前缀,以便在临时目录中容易寻找。
压缩临时文件:当需要完成排序的时候,这个选项将压缩临时文件。
9、6、25、5其它
9、6、26添加序列(Add sequence)
9、6、26、1 屏幕截图
9、6、26、2图标
9、6、26、3常用描述
9、6、26、4选项
步骤名称:步骤的名称,在单一转换中必须唯一。
值的名称:新序列值的名称,将被添加到流中。
使用数据库获取序列:如果想使用数据库的序列,使用些选项。
连接名称:选择数据库序列存在的连接名称。
序列名称:数据库序列的名称。
使用计数器来计算序列:如果想使用Kettle生成的序列,使用此选项。
计数器名称(可选):如果一个转换中多个步骤生成同样的值名称,这个选项允许你指定计数器的名称,避免按照先后顺序通过多个步骤。
起始值:序列的起始值。
增量:序列的增量。
最大值:序列的最大值,如果超过,将重新开始。
9、6、27空操作-什么都不做(Dummy-do nothing)
9、6、27、1 屏幕截图
9、6、27、2图标
9、6、27、3常用描述
9、6、27、4选项
步骤名称:步骤的名称,在单一转换中必须唯一。
9、6、28行转列(Row Normaliser)
9、6、28、1 屏幕截图
9、6、28、2图标
9、6、28、3常用描述
这个步骤转动表,标准化数据。
例如以下的销售数据:
Month | Product A | Product B | Product C |
2003/01 | 10 | 5 | 17 |
2003/02 | 12 | 7 | 19 |
… | … | … | … |
如果你想把它转换成以下数据:
Month | Product | Sales |
2003/01 | A | 10 |
2003/01 | B | 5 |
2003/01 | C | 17 |
2003/02 | A | 12 |
2003/02 | B | 7 |
2003/02 | C | 19 |
… | … | … |
例如你想更新一个实际的物理表,这种形式的数据是更容易掌握的。
9、6、28、4选项
步骤名称:步骤的名称,在单一转换中必须唯一。
字段类型:字段类型的名称。(例如在示例中的Product)
字段:标准化的字段列表:
字段名称:标准化的字段名称(例如示例中的Product A,Product C等)。
类型:用字符串分类字段(例如示例中的A,B,C)
新字段:你可以指定一个或者多个新值将要转入的字段(例如示例中的sales)备注:可以一次转换多个字段。
9、6、28、5其它
“获取字段”按钮:填充输入流中所有可用的字段。
9、6、29拆分字段(Split Fields)
9、6、29、1 屏幕截图
9、6、29、2图标
9、6、29、3常用描述
9、6、29、4选项
步骤名称:步骤的名称,在单一转换中必须唯一。
需要拆分的字段:想要拆分的字段的名称。
分隔符:决定字段结束的分隔符。
字段:拆分形成的字段列表。
例如:SALES_VALUES字段包含:“,使用以下的设置可以将字段拆分成4个字段:
分隔符:,
字段:SALE1, SALE2, SALE3, SALE4
Id:
移除ID:no,no,no,no
类型:Number, Number, Number, Number
格式:###.###,###,##,###.##,###.##
分组:
十进制:
货币:
长度:3,3,3,3
精度:0,0,0,0
9、6、30去除重复记录(Unique rows)
9、6、30、1 屏幕截图
9、6、30、2图标
9、6、30、3常用描述
9、6、30、4选项
步骤名称:步骤名称,在单一步骤中必须唯一。
增加计数器到输出:如果你想知道多少重复行被去掉,就选择些选项。
计数器字段:包含行号的字段的名称。
字段名:用来比较的字段的字段名称。
9、6、30、5其它
9、6、31分组(Group By)
9、6、31、1 屏幕截图
9、6、31、2图标
9、6、31、3常用描述
这个步骤允许你通过定义分组的字段来计算值。
例如:计算产品的平均销售额,获取库存的黄色衬衫的数量等等。
9、6、31、4选项
步骤名称:步骤的名称,在单一转换中必须唯一。
分组字段:指定分组的字段。
聚合:指定需要聚合的字段、方法以及新字段结果的名称
包含所有的行:如果选择这个,输出中就包含所有的行,不仅仅是聚合。
临时文件目录:临时文件存储的目录。
临时文件前缀:指定命名临时文件时的文件文件前缀。
添加行号,每一个分组重启:如果你想添加行号,就选择这个。
字段名行数:指定行号将插入的字段的名称。
9、6、32设置为空值(Null if)
9、6、32、1 屏幕截图
9、6、32、2图标
9、6、32、3常用描述
9、6、33计算器(Calculator)
9、6、33、1 屏幕截图
9、6、33、2图标
9、6、33、3常用描述
这个步骤提供一个功能列表,可以在字段值上运行。
计算器的一个重要优势是,它有着几倍于常用的JavaScript脚本的速度。
9、6、33、4功能列表
功能 | 描述 | 需要字段 |
Set field to constant A | 用常量值创建一个字段 | A |
A+B | A加上B | A和B |
A-B | A减去B | A和B |
AB | A乘以B | A和B |
A/B | A除以B | A和B |
AA | A的平方 | A |
SQRT(A) | A的平方根 | A |
100A/B | A和B的百分比 | A和B |
A-(AB/100) | A和B | |
A+(AB/100) | A和B | |
A+BC | A、B和C | |
SQRT(AA+BB) | A和B | |
ROUND(A) | A | |
ROUND(A,B) | A和B | |
Set field to constant A | 用常量值创建一个字段 | A |
Date A + B days | 在日期字段A上添加B天 | A和B |
Year of date A | 计算日期A的年 | A |
Month of date A | 计算日期A的月 | A |
Day of year of date | 计算日期A的天(1-365) | A |
Day of month of date A | 计算日期A一月中的天(1-31) | A |
Day of week of date A | 计算日期A一周中的天(1-7) | A |
Week of year of date A | 计算日期A的星期(1-54) | A |
ISO8601 Week of year of date A | 计算日期A ISO8601类型的星期(1-53) | A |
ISO8601 Year of date A | 计算日期A ISO8601类型的年 | A |
Byte to hex encode of string A | 将字符串编码字节为十六进制 | A |
Char to hex encode of string A | 将字符串编码字符为十六进制 | A |
Hex decode of string A | 将字符串从十六进制解码 | A |
9、6、34增加XML(XML Add)
9、6、34、1 屏幕截图
9、6、34、2图标
9、6、34、3常用描述
9、6、34、4选项
选项 | 描述 |
编码 | 使用的编码,编码在XML文件头中指定 |
输出值 | 包含XML的新字段名称 |
根XML元素 | 生成的XML根元素的名称 |
字段 | 字段名:字段的名称 元素名称:XML文件使用的元素的名称 类型:字段的类型(String,Date或者Number) 长度:输出字符填补到指定的长度 精度:使用的精度 。。。 |
9、6、35增加常量(Add constants)
9、6、35、1 屏幕截图
9、6、35、2图标
9、6、35、3常用描述和使用
9、6、36行转列(Row Denormaliser)
9、6、36、1 屏幕截图
9、6、36、2图标
9、6、36、3常用描述
9、6、36、4选项
选项 | 描述 |
步骤名称 | 步骤的名称,在单一转换中必须唯一 |
关键字段 | 指定关键字段 |
分组字段 | 指定构成分组的字段 |
目标字段 | 指定反向规格化的字段 |
9、6、37行扁平化(Flattener)
9、6、37、1 屏幕截图
9、6、37、2图标
9、6、37、3常用描述
9、6、37、4选项
选项 | 描述 |
步骤名 | 步骤的名称,在单一转换中必须唯一 |
扁平化字段 | 需要扁平化到不同的目标字段的字段 |
目标字段 | 扁平化目标字段的名称 |
9、6、37、5示例
Field1 | Field2 | Field3 | Flatten |
A | B | C | One |
A | B | C | Two |
D | E | F | Three |
D | E | F | Four |
可以扁平化为以以下:
Field1 | Field2 | Field3 | Target1 | Target2 |
A | B | C | One | Two |
D | E | F | Three | Four |
上面的示例,步骤设置如下:
9、6、38值映射(Value Mapper)
9、6、38、1 屏幕截图
9、6、38、2图标
9、6、38、3常用描述
使用的字段名:LanuguageCode
目标字段名:LanguageDesc
源值/目标值:EN/English,FR/French,NL/Dutch,ES/Spanish,DE/German,…
9、6、39被冻结的步骤(Blocking step)
9、6、39、1 屏幕截图
9、6、39、2图标
9、6、39、3常用描述
9、6、40记录关联(笛卡尔输出)(Join Rows-Cartesian Product)
9、6、40、1 屏幕截图
9、6、40、2图标
9、6、40、3常用描述
9、6、40、4选项
步骤名称:步骤的名称,在单一转换中必须唯一
临时目录:如果你想更多的行,指定系统存储临时文的目录名称
临时文件前缀:生成的临时文件的前缀
最大缓存大小:系统从临时文件读取数据的缓存大小
读取的主要步骤:指定读取最多数据的步骤名称
条件:你可以指定复杂的条件来限制输出行数
9、6、41数据库连接(Database Join)
9、6、41、1 屏幕截图
<img src=”/user/files/p13Ou9H05J40QkG9o7-4ryFKDmxVIerxVNXyU1qfGs.jpeg” width=”365.25pt” height=”100%”>
9、6、41、2图标
9、6、41、3常用描述
这个步骤允许你使用先前步骤的数据,运行一个数据库查询。
能够指定查询参数:
在SQL查询中使用“?”
在SQL查询中使用数据网格中的字段
例如:
9、6、41、4选项
步骤名称:步骤名称,在单一转换中必须唯一。
使用的数据库连接。
SQL:查询脚本,用?号代表参数。
Number of rows to return:0代表所有行,其它数字限制行的输出。
外连接?:如果选中了这个,总是会返回一个结果,就算查询脚本没有结果。
查询中使用的参数。
9、6、42合并记录(Merge rows)
9、6、42、1 屏幕截图
9、6、42、2图标
9、6、42、3常用描述
“identical”:关键字在两个流中都存在,并且值相同
“changed”: 关键字在两个流中都存在,但是一个或者更多的值不同
“new”:引用流中没有找到关键字
“deleted”: 比较流中没有找到关键字
比较流中的数据进入下一步骤,除非在“删除“的情况。
9、6、43存储合并(Stored Merge)
9、6、43、1 屏幕截图
9、6、43、2图标
9、6、43、3常用描述
步骤名称:步骤的名称,在单个转换中必须唯一。
字段:指定排序的关键字段
9、6、44合并连接(Merge Join)
9、6、44、1 屏幕截图
9、6、44、2图标
9、6、44、3常用描述和使用
9、6、44、4选项
步骤名称:步骤的名称,在单一转换中必须唯一
第一个步骤:指定要合并的第一个输入步骤
第二个步骤:指定要合并的第二个输入步骤
连接类型:选择合并可用的类型
关键字段:指定要存储数据的关键字段
获取字段tuttons:获取输入的第一个步骤和第二个步骤的字段列表
9、6、45Java Script值(Java Script Value)
9、6、45、1 屏幕截图
9、6、45、2图标
9、6、45、3常用描述
9、6、45、4选项
步骤名称:步骤的名称,在单个转换中必须唯一。
Java Script:步骤中的脚本。
字段:要添加到输出流中的字段。
9、6、45、5其它
插入字段:插入字段及字段的值
测试脚本:测试脚本的编译
获取变量:获取最新的变量并且插入到“字段”网格中
9、6、45、6 值函数
函数 | 描述 |
Value Clone() | 构建一个值的副本并返回一个值 |
Void setName(String name) | 设置值的名称 |
String getName() | 获取值的名称 |
Void setValue(double num) | 设置一个浮点数值 |
Void setValue(String str) | 设置一个字符串值 |
Void setValue(Date dat) | 设置一个日期值 |
Void setValue(boolean bool) | 设置一个布尔值 |
Void setValue(long l) | 设置一个整数值 |
Void setValue(Value v) | 用其它字段的值来设置值 |
Double getNumber() | 获取字段的浮点数值 |
String getString() | 获取字段的文本值 |
Int getStringLength() | 获取字段文本值的长度 |
Date getDate() | 获取字段的日期值 |
Boolean getBoolean() | 获取字段的布尔值。 注:字符串“Y”和“true”被转换为true. 注:数字0转换为false,其它转换为true. |
Long getInteger() | 获取字段的整形值。 注:日期字段被转换为毫秒数 |
Boolean isEmpty() | 如果值没有类型,返回true |
Boolean isString() | 如果值是字符类型,返回true |
Boolean isDate() | 如果值是日期类型,返回true |
Boolean isNumber() | 如果值是数字类型,返回true |
Boolean isBoolean () | 如果值是布尔类型,返回true |
Boolean isInteger() | 如果值是整数类型,返回true |
Boolean isNumeric() | 如果值是数字或者整数类型,返回true |
String toString() | 返回字段的文本值 |
String toString(boolean pad) | 返回字段的文本值并且去空格 |
String toStringMeta() | 返回值的元数据信息 |
Void setLength(int i) | 设置值的长度 |
Void setLength(int I,int p) | 设置值的长度和精度 |
Int getLength() | 返回值的长度 |
Int getPrecision() | 返回值的精度 |
Void setPrecision(int p) | 设置值的精度 |
String getTypeDesc() | 返回值的字符串描述(例如“String”,“Number”,“Date”,“Integer”,“boolean”) |
Void setNull() | 将值设置为Null |
Void clearNull() | 清除Null的设置 |
Void setNull(boolean n) | |
Void isNull() | 如果值为空,返回true |
Int compare(Value v) | 比较两个值,如果第一个值大于第二个值,返回1,小于返回-1,相等返回0 |
Boolean equals(Object v) | 比较两个值,如果两个值相等,返回true |
Int hashCode() | 返回一个hash code形式的64位正副值 |
Value negate() | 如果值是数字,将减1,其它情况什么都不做 |
Value and(Value v) | 计算两个整数位之间的AND |
Value xor(Value v) | 计算两个整数位之间的XOR |
Value or(Value v) | 计算两个整数位之间的OR |
Value bool_and(Value v) | 计算两个布尔值之间的boolean AND |
Value bool_or(Value v) | 计算两个布尔值之间的boolean OR |
Value bool_xor(Value v) | 计算两个布尔值之间的boolean XOR |
Value bool_not() | 计算两个布尔值之间的boolean NOT |
Value greater_equal(Value v) | 比较两个值,如果第二个大于或者等于第一个,设置第一个为true |
Value smaller_equal(Value v) | 比较两个值,如果第二个小于或者等于第一个,设置第一个为true |
Value different(Value v) | 比较两个值,如果第二个与第一个不同,设置第一个为true |
Value equal(Value v) | 比较两个值,如果第二个等于第一个,设置第一个为true |
Value like(Value v) | 设置第一个值为true,如果第二个字符串是每一个的一部分。 |
Value greater(Value v) | 比较两个值,如果第二个大于第一个,设置第一个为true |
Value smaller(Value v) | 比较两个值,如果第二个小于第一个,设置第一个为true |
Value minus(double v) Value minus(long v) Value minus(int v) Value minus(byte v) Value minus(value v) | 从字段值里减去v |
Value plus (double v) Value plus (long v) Value plus (int v) Value plus (byte v) Value plus (value v) | 在字段值里加上v |
Value divide (double v) Value divide (long v) Value divide (int v) Value divide (byte v) Value divide (value v) | 用v分割字段值 |
Value multiply (double v) Value multiply (long v) Value multiply (int v) Value multiply (byte v) Value multiply (value v) | 用v乘以字段值 |
Value abs() | 如果字段值是副数,设置字段值为-field |
Value acos() | 设置字段值为数字值的反余弦 |
Value asin() | 设置字段值为数字值的反正弦 |
Value atan() | 设置字段值为数字值的反正切 |
Value atan2(Value arg0) Value atan2(double arg0) | 设置字段值为第二个数字值的反正切 |
Value ceil() | 设置字段值为数字值的ceiling |
Value cos() | 设置字段值为数字值的余弦 |
Value cosh() | 设置字段值为数字值的双曲线余弦 |
Value exp() | 设置字段值为数字值的exp |
Value floor() | 设置字段值为数字值的floor |
Value initcap() | 设置所有单词的第一个字符为大写 |
Value length() | 设置字段值为字符串的长度 |
Value log() | 设置字段值为数字值的log |
Value lower() | 设置字段值为字符串值的小写 |
Value lpad(Value len) Value lpad(Value len,Value padstr) Value lpad(int len) Value lpad(int len,String padstr) | 设置字段值为字符串,并且左边填充指定长度的空格。缺省情况去掉一个空格。 |
Value mod(Value arg) Value mod(double arg0) | 设置字段值为两个数的模数 |
Value nvl(Value alt) | 如果字段值为空,设置其值为alt |
Value power(Value arg) | |
Value power(double arg0) | 设置字段值为值的arg次方 |
Value replace(Value repl,Value with) Value replace(String repl,String with) | 用一个字符串替换另一个字符串 |
Value round() | 设置字段值为最近的整数 |
Value rpad(Value len) Value rpad(Value len,Value padstr) Value rpad(int len) Value rpad(int len,String padstr) | 设置字段值为字符串,并且右边去填充指定长度的空格。缺省为单个空格。可以指定自己的填充字符串 |
Value rtrim() | 移除字段值右边的空格 |
Value sign() | 根据字段值是正数、0或者负数,分别设置值为-1,0或者1 |
Value sin() | 设置字段值为字段值的正弦 |
Value sqrt | 设置字段值为字段值的平方 |
Value substr(Value from,Value to) Value substr(Value from) Value substr(int from) Value substr(int from,int to) | 设置字段值为字段值的子串 |
Value sysdate() | 设置字段值为系统日期 |
Value tan(Value args[]) | 设置字段值为字段值的正切 |
Value num2str() Value num2str(String arg0) Value num2str(String arg0, String arg1) Value num2str(String arg0, String arg1, String arg2) Value num2str(String arg0, String arg1, String arg2, String arg3) | 转换数字为字符串。 Arg0:格式 Arg1:十进制分隔符(.或者,) Arg2:分组分隔符(.或者,) Arg3:货币符号 |
Value dat2str() Value dat2str(String arg0) Value dat2str(String arg0,String arg1) | 将日期转换为字符串。 Arg0:格式 Arg1:局部化日期格式字符 |
Value num2dat() | 将数字转换为日期 |
Value str2dat(String arg0) Value str2dat(String arg0,String arg1) | 将字符串转换为日期 |
Value str2num() Value str2num(String arg0) Value str2num(String arg0) Value str2num(String arg0) Value str2num(String arg0) | 转换字符串为数字 |
Value dat2num() | 将日期转换为毫秒数的数字 |
Value trim() | 设置字段值为字符串的小写 |
Value upper() | 设置字段值为字符串的大写 |
Value e() | 设置字段值为值的E |
Value pi() | 设置字段值为值的P |
Value add_months(int months) | 日期值的月份添加数字 |
Value last_day() | 设置字段值为日期月份的最后一天 |
Value first_day() | 设置字段值为日期月份的第一天 |
Value trunc() Value trunc(double level) Value trunc(int level) | 设置字符值为截短的数字或者日期值。Level指的是逗号以后的位数,或者在日期的情况下:5=months,4=days,3=hours,2=minutes,1=seconds, 0=miliseconds |
Value hexEncode() | 将字符串值编码为十六进制。例如字符串“a”的结果为“61” |
Value hexDecode() | 从十六进制的字符串解码。例如,如果字符串为“61”,结果将是“a”。 |
9、6、45、7 JavaScript示例
9、6、45、7、1回忆先前的行
有时候知道先前的行是非常有用的,利用下面的代码可以实现:
Var pre_row;
If(pre_row == null) pre_row = row;
…
String previousName = pre_row.getString(“Name”,”-“);
…
Pre_row=row;
行是一个特殊的字段,包含了当前行的所有值
9、6、45、7、2设置地址名称到大写
Location.upper();
9、6、45、7、3从日期字段提取信息
Ymd = date_field.Clone().dat2str(“yyyy/MM/dd”).getString();
Dmy= date_field.Clone().dat2str(“dd/MM/yyyy”).getString();
Ym= date_field.Clone().dat2str(“yyyy/MM”).getString();
Motn_long_desc= date_field.Clone().dat2str(“MMMM”).initcap().getString();
Week_of_year= date_field.Clone().dat2str(“w”).getInteger();
9、6、46改进的Java Script值(Modified Java Script Value)
9、6、46、1 屏幕截图
9、6、46、2图标
9、6、46、3常用描述
这个步骤是“Javascript Values”的进改版本,它可以提供更好的效率,也更容易使用。
9、6、46、4Java Script函数
Transformation Scripts:展示你在这个步骤中创建的脚本列表。
Transformation Constants:一个包含SKIP_TRANSFORMATION,ERROR_TRANSFORMATION,CONTINUE_TRANSFORMATION等静态常量的列表。
Transformation Fuctions:包含多种String,Numberic,Date,Logic以及特殊函数,你可以在创建脚本的时候使用它。
Input Fields:步骤输入字段的列表。双击或者拖拉可以将字段插入到你的脚本中。
Output Fields:步骤输出的字段。
9、6、46、5Java Script
9、6、46、6 字段
9、6、46、7其它
获取变量:获取脚本中的变量列表
测试脚本:测试脚本的语法
9、6、47执行SQL语句(Execute SQL script)
9、6、47、1 屏幕截图
9、6、47、2图标
9、6、47、3常用描述
第二个选项可以在SQL脚本中使用参数。
例如假如你想创建5个表(tab1,tab2,tab3,tab4和tab5),你可以使用下面的转换:
SQL脚本如下所示:
作为参数的字段,是用第二个步骤“count”序列定义的来指定。
9、6、48维度更新/查询(Dimension lookup/update)
9、6、48、1 屏幕截图
9、6、48、2图标
9、6、49联合更新/查询(Combination lookup/update)
9、6、49、1 屏幕截图
9、6、49、2图标
9、6、49、3常用描述
9、6、50映射(Mapping)
9、6、50、1 屏幕截图
9、6、50、2图标
9、6、50、3常用描述和使用
指定输入如何从映射输入中到达
指定输入字段如何转换:字段被添加或者删除
9、6、51从结果获取记录(Get rows from result)
9、6、51、1 屏幕截图
9、6、51、2图标
9、6、51、3常用描述
这个步骤返回在一个任务中先前步骤生成的行。你可以进入选择先前步骤生成的元数据字段。
9、6、52复制记录到结果(Copy rows to result)
9、6、52、1 屏幕截图
9、6、52、2图标
9、6、52、3常用描述
这个步骤允许你在一个任务中将行数据(内存中的)传递到下一个步骤。
9、6、53设置变量(Set Variable)
9、6、53、1 屏幕截图
9、6、53、2图标
9、6、53、3常用描述
Valid in the virtual machine:整个虚拟机将知道那个变量,换仅仅可以在单机模式下运行。
Valid in the parent job:变量仅仅在父任务中合法的。
Valid in the grand-parent job: 变量仅仅在祖父任务中合法的。
Valid in the root job: 变量仅仅在根任务中合法的。
9、6、53、4变量使用
9、6、54获取变量(Get Variable)
9、6、54、1 屏幕截图
9、6、54、2图标
9、6、54、3常用描述
这个步骤允许你获取一个变量,它可以返回行或者附加值到输入行。
备注:你需要指定完整的变量格式${variable}或者%%variable%%。
9、6、55从以前的结果获取文件(Get files from result)
9、6、55、1 屏幕截图
9、6、55、2图标
9、6、55、3常用描述
字段名 | 类型 | 示例 |
Type | String | Normal,Log,Error,Error-line等 |
filename | String | Somefile.txt |
Path | String | C:\Foo\Bar\somefile.txt |
Parentorigin | String | Process files transformation |
Origin | String | Text File Input |
Comment | String | Read by text file input |
timestamp | Date | 2006-06023 12:34:56 |
9、6、56复制文件名到结果(Set files in result)
9、6、56、1 屏幕截图
9、6、56、2图标
9、6、56、3常用描述
9、6、57记录注射器(Injector)
9、6、57、1 屏幕截图
9、6、57、2图标
9、6、57、3常用描述
注射器主要是针对以下人使用:想利用Kettle API和JAVA来注射记录到转换中。
下面是如何使用它:
你可以使用RowProducer对象来访问一个Trans对象
你可以参考在包中的使用案例:be.ibridge.kettle.test.rowproducer
使用下列代码:
然后你可以在转换中启动线程,在转换运行的时候注射行。
9、6、58套接字读入器(Socket Reader)
9、6、58、1 屏幕截图
9、6、58、2图标
9、6、58、3常用描述和使用
9、6、59套接字输写器(Socket Writer)
9、6、59、1 屏幕截图
9、6、59、2图标
9、6、59、3常用描述和使用
套接字输写器是通过TCP/IP协议将数据从一个服务器向另一个服务器传输。
9、6、60聚合行(Aggregate Rows)
9、6、60、1 屏幕截图
9、6、60、2图标
9、6、60、3常用描述
这个步骤允许你在所有行的基础上快速的聚集行。下面是可用的聚集类型:
SUM:字段的和
AVERAGE:字段的平均数
COUNT:非空值的数量
MIN:字段的最小值
MAX:字段的最大值
FIRST:字段的第一个值
LAST:字段的最后一个值
9、6、60、4选项
步骤名称:步骤的名称,在单个转换中必须唯一。
字段:聚合类型的字段
9、6、61流XML输入(Streaming XML Input)
9、6、61、1 屏幕截图
9、6、61、2图标
9、6、61、3常用描述
这个步骤主要提供值的解析,它信赖于SAX解析器,在大文件解析上能提供更好的性能。它与XML输入非常相似,仅仅在内容和字段制表符上略有不同。
9、6、61、4选项
选项 | 描述 |
步骤名称 | 步骤的名称,在单个转换中必须唯一。 |
文件或目录 | 指定输入文件的位置或者名称 |
正则表达式 | 指定想用来在目录(先前选项指定的)中选择文件的正则表达式 |
输出中包含文件名和字段名 | 选择这个选项,如果你有XML文件的名称,行包含有输出流中。你也可以指定字段的名称。 |
输出中行数和字段名 | 选择这个选项,如果你有XML文件的行号,行包含有输出流中。 |
限制 | 你可以指定行读取的最大数。 |
位置 | 指定XML文件中重复元素经由的路径。以下的元素列被用来指定元素及其位置: A:指定一个属性 Ep:指定位置定义的元素 Ea:指定属性定义的元素 例子: Ep-element/1这是第一个 被称为“元素”的元素 Ea-emement/att:val这是那个有属性(称为“att”)和值(“val”)的元素 |
字段 | 名称: 类型: 格式: 长度: Number:有效数字的位数 String: 字符串的长度 Date:打印输出字符串的长度 精度: Number:浮点数的位数 String: 未使用 Date:未使用 货币:代表当前货币的符号如$10,000.00 十进制:十进制可以是“.”(10,000.00)或者“,”(5.000,00) 分组:分组符可以是“,”(10,000.00)或者“.”(5.000,00) 去空格:提供给XML的字符串使用 重复:如果你想重复上一行中的值就使用些选项 位置:XML元素或者属性的位置,你可以用以下的语法来指定元素的位置: 第一个元素称为“element”:E-element/1 第一个属性称为“attribute”:A-attribute/1 在第二个“元素”标记里面的第一个属性称为“attribute” E-element/2,A-attribute/1 |
9、6、61、5完整的示例
考虑下面的XML:
假如我们对car很感兴趣,我们可以像下面那样指定重复元素:
现在让我们看看字段,我们有不同的根据“name”属性区分的“property”元素,我们将按照“name”属性来使用下列字段:“brand”、“type”、“power”。
9、6、62中止(Abort)
9、6、62、1 屏幕截图
9、6、62、2图标
9、6、62、3常用描述
9、6、62、4选项
步骤名称:步骤的名称,在单个转换中必须唯一。
中止开始:中止转换的开始行数。如果设置为0,在第一行的时候,步骤将被中止。如果设置为5,将在第6行中止。
中止消息:中止的时候放入日志文件的消息,如果没有输入就使用缺省消息。
总是记录行数:中止步骤总是记录处理的行数。
9、6、63Oracle批量装载(Oracle bulk loader)
9、6、63、1 屏幕截图
9、6、63、2图标
9、6、63、3常用描述
这个步骤允许你大批量加载数据到Oracle数据库,它将用一个正确的装载格式,然后调用Oracle的SQLLoader数据加载工具加载到指定的表中。
9、6、63、4选项
步骤名称:步骤的名称,在单个转换中必须唯一。
连接:维表所在数据库的连接。
目标schema: 要写入数据的表的schema名称,表名中可以包含”.”。
Sqlldr path: SQLLoader数据加载工具的全路径。
装载方式: “自动加载”或者“手动加载”。如果是“自动加载”,步骤将在用指定的参数收到所有的输入后运行Sqlldr工具。如果是“手动加载”,将生成一个可以作为后门使用的控制和数据文件。
加载动作:Append、Insert、Replace、Truncate。这些会映射到sqlddr的动作来执行。
错误的最大行数:发生错误的行数,这时sqlldr将被中断。与sqlldr的“ERROR”属性来通信。
提交:提交的行数,与sqlldr的“ROWS”属性通信。
绑定大小:与sqlldr的“BINDSIZE”属性通信。
读取大小:与sqlldr的“READSIZE”属性通信。
控制文件:sqlldr控制文件的名称。
数据文件:数据将被写入的数据文件的名称。
日志文件:日志文件的名称,可选。
坏文件:坏文件的名称,可选。
废文件:废文件的名称,可选。
编码:数据指定的编码格式,可以从下拉列表框中选择。
直接路径:直接路径加载的开关,与sqlldr的“DIRECT=TRUE”通信。
使用后删除cfg/dat文件:加载后是否删除控制文件和数据文件的开关。
表字段:ORACLE表中加载的表字段。
流字段:输入行中带来的字段。
10、任务设置(Job Settings)
10、1描述
10、2屏幕截图
选项
选项 | 描述 |
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)来存储任务的日志 |
其它
11、任务条目(Job Entries)
11、1描述
一个任务条目是一个任务的一部分。任务条目给你提供众多的功能,从执行转换到从WEB服务器获取文件。请参考下面任务条目的完整列表。
11、2任务条目类型
11、2、1特殊的任务条目
11、2、1、1屏幕截图
11、2、1、2图标
11、2、1、3常用描述
11、2、1、3、1启动
Start是任务执行的入口,首先必须是任务可以执行。只有无条件的任务条目可以从Start入口连接。
Start图标也包含基本的进度安排功能,如果你编辑此条目,你可以得到以下屏幕:
11、2、1、3、2Dummy
在一个任务中使用Dummy条目将什么也不做。这可以使一个任务更清晰的展示,或者在执行循环中使用。
11、2、1、3、3OK
如果任务的上一个条目错误数量为0则返回true。
11、2、1、3、4ERROR
如果任务的上一个条目错误数量不等于0则返回true。
11、2、2转换
11、2、2、1屏幕截图
11、2、2、2图标
11、2、2、3常用描述
你可以用一个转换任务条目执行一个先前定义的转换。
11、2、2、4选项
选项 | 描述 |
Name of job entry | 任务条目的名称,在单个任务中,必须唯一。 |
Name of transformation | 需要运行的转换的名称 |
Repository directory | 指定资源库目录 |
Filename | 如果你不是使用资源库工作,就指定转换运行的XML文件名 |
Specify log file | 检查是否为转换指定一个单独的日志文件 |
Name of log file | 日志文件的目录和名称 |
Extension of the log file | 文件名扩展(例如:log或者txt) |
Include date in filename | 文件名中添加系统日期 |
Include time infilename | 文件名中添加系统时间 |
Logging level | 日志级别 |
Copy previous results to arguments | 上一次的转换结果复制到参数中 |
Arguments | 指定转换的参数 |
Execute once for every input row | 支持循环,允许转换在每一个输入行上执行一次 |
Clear the list or result rows before execution | 在转换运行之前,检查确保列表或结果行已经被清除 |
Clear the list of result files before execution | 在转换运行之前,检查确保列表或结果文件已经被清除 |
11、2、3任务
11、2、3、1屏幕截图
11、2、3、2图标
11、2、3、3常用描述
你可以使用Job条目来运行一个先前定义的任务。
11、2、3、4选项
选项 | 描述 |
Name of job entry | 任务条目的名称,在单个任务中,必须唯一。 |
Name of transformation | 需要运行的任务的名称 |
Repository directory | 指定资源库目录 |
Filename | 如果你不是使用资源库工作,就指定转换运行的XML文件名 |
Specify log file | 检查是否为任务指定一个单独的日志文件 |
Name of log file | 日志文件的目录和名称 |
Extension of the log file | 文件名扩展(例如:log或者txt) |
Include date in filename | 文件名中添加系统日期 |
Include time infilename | 文件名中添加系统时间 |
Logging level | 日志级别 |
Copy previous results to arguments | 上一次的转换结果复制到参数中 |
Arguments | 指定任务的参数 |
Execute once for every input row | 支持循环,允许任务在每一个输入行上执行一次 |
11、2、4Shell
11、2、4、1屏幕截图
11、2、4、2图标
11、2、4、3常用描述
你可以使用Shell任务条目在任务运行的主机上执行一段Shell脚本。
备注:Shell脚本能在控制台窗口输出文本,输出将转换到Kettle日志系统,这不会影响Shell脚本的运行。
备注:Windows系统,脚本被“CMD.EXE/C”(NT/XP/20000)或“COMMAND.COM/C”(95/98)。
11、2、4、4选项
选项 | 描述 |
Name of job entry | 任务条目的名称,在单个任务中,必须唯一。 |
Filename | 要运行的Shell脚本文件名 |
Specify log file | 检查是否为Shell脚本指定一个单独的日志文件 |
Name of log file | 日志文件的目录和名称 |
Extension of the log file | 文件名扩展(例如:log或者txt) |
Include date in filename | 文件名中添加系统日期 |
Include time infilename | 文件名中添加系统时间 |
Logging level | 日志级别 |
Copy previous results to arguments | 上一次的转换结果复制到Shell脚本参数中 |
Arguments | 指定Shell脚本的参数 |
Execute once for every input row | 支持循环,允许Shell脚本在每一个输入行上执行一次 |
11、2、5Mail
11、2、5、1屏幕截图
11、2、5、2图标
11、2、5、3常用描述
你可以使用Mail任务条目来发送e-Mail。
11、2、5、4选项
选项 | 描述 |
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 files to message | 检查消息是否有附加文件 |
Select the result files types to attach | 指定你想附加的文件类型 |
Zip files into a single archive | 检查是否需要压缩所有选择的文件到档案文件中 |
11、2、6SQL
11、2、6、1屏幕截图
11、2、6、2图标
11、2、6、3常用描述
你可以使用SQL任务条目执行SQL脚本,多行脚本之前用“;”隔开。
11、2、6、4选项
选项 | 描述 |
Name of job entry | 任务条目的名称,在单个任务中,必须唯一。 |
Connection | 所用的数据库连接 |
Use variable substitution | 在SQL脚本中使用kettle变量 |
SQL script | 要执行的SQL脚本 |
11、2、7FTP
11、2、7、1屏幕截图
11、2、7、2图标
11、2、7、3常用描述
你可以使用FTP任务条目从FTP服务器上获取一个或者多个文件。
11、2、7、4选项
选项 | 描述 |
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控制指令的编码。 |
备注:如果文件包含某些字符(spaces e.g.),一些FTP服务器不允许文件被传送。如果你想传送文件,请确保你的文件名能被处理。
11、2、8Table Exists
11、2、8、1屏幕截图
11、2、8、2图标
11、2、8、3常用描述
你可以使用Table exists任务条目检验数据库中是否存在某个表。
11、2、8、4选项
选项 | 描述 |
Name of job entry | 任务条目的名称,在单个任务中,必须唯一。 |
Database onnection | 所用的数据库连接 |
Tablename | 要检查的数据库表名 |
11、2、9File Exists
11、2、9、1屏幕截图
11、2、9、2图标
11、2、9、3常用描述
你可以使用File exists任务条目检验在Kettle运行的服务器上中是否存在某个文件。
11、2、9、4选项
选项 | 描述 |
Name of job entry | 任务条目的名称,在单个任务中,必须唯一。 |
Filename | 要检查的文件名称和路径 |
变量:使用变量作为文件名
浏览:浏览文件系统的文件
11、2、10Evaluation(javascript)
11、2、10、1屏幕截图
11、2、10、2图标
11、2、10、3常用描述
你可以使用Evaluation任务条目来计算一个布尔型的变量,这个变量可以在决定下一个步骤是否将被执行时使用。用户可以使用以下变量:
Errors:先前的任务条目的错误数
Lines_input:从数据库或者文件读取的行数
Lines_output:从数据库或者文件读取的行数
Lines_updated:数据库表更新的行数
Lines_read:从先前转换步骤读取的行数
Lines_written:往下一个转换步骤写入的行数
Files_retrieved:从FTP找到的文件数
Exit_status:Shell脚本的退出状态
Nr(integer):任务条目数。每下一个条目就会自动增长
Is windows:如果Kettle运行在Windows平台上就返回true
11、2、10、4选项
选项 | 描述 |
Name of job entry | 任务条目的名称,在单个任务中,必须唯一。 |
Javascript | 需要运行的脚本,脚本最后一句的结果必须是布尔型 |
11、2、11SFTP
11、2、11、1屏幕截图
11、2、11、2图标
11、2、11、3常用描述
你可以使用SFTP任务条目通过安全的FTP协议在FTP服务器上获取一个或者多个文件。
11、2、11、4选项
选项 | 描述 |
Job entry name | 任务条目的名称,在单个任务中,必须唯一。 |
SFTP server name(IP) | SFTP服务器名称或者IP地址 |
SFTP port | 使用的TCP端口,通常是22 |
User name | 登陆SFTP服务器的用户名 |
Password | 登陆SFTP服务器的密码 |
Remote directory | 从SFTP服务器获取文件的远程目录 |
Target directory | 存放传送文件的目录(运行Kettle的机器) |
Wildcard | 如果你想选择多个文件,指定一个正则表达式。例如: |
Use binary mode? | 如果文件需要使用二进制模式。 |
TimeOut | FTP服务器超时时间。 |
Remove files after retrieval? | 在FTP服务器所有文件被成功转移后,删除FTP服务器的文件。 |
11、2、12HTTP
11、2、12、1屏幕截图
11、2、12、2图标
11、2、12、3常用描述
你可以使用HTTP任务条目通过HTTP协议从web服务器上获取一个文件。
11、2、12、4选项
选项 | 描述 |
name of Job entry | 任务条目的名称,在单个任务中,必须唯一。 |
URL(HTTP) | 使用的URL(例如:http://kettle.pentaho.org ) |
Run for every result row | 选择将使先前转换生成的每一行都运行此任务条目。 |
Fieldname to get URL from | 从URL获取的结果行中的文件名 |
Target filename | |
Append to target file | 如果目标文件已经存在,追加到目标文件 |
Add date and time to target filename | 给文件名添加日期和时间yyyMMdd_HHmmss |
Target filename extension | 文件名添加日期和时间时指定文件名扩展 |
Username | 认证要用到的用户名 |
Password | 认证要用到的密码 |
Proxy server | HTTP协议服务器名称或者IP地址 |
Proxy port | 使用的HTTP协议端口 |
Ignore proxy for hosts | 指定一个正则表达式来匹配你要忽视的主机,用|来分隔。例如127.0..* |
11、2、13Create a file
11、2、13、1屏幕截图
11、2、13、2图标
11、2、13、3常用描述
11、2、13、4选项
选项 | 描述 |
job entry name | 任务条目的名称,在单个任务中,必须唯一。 |
File name | 创建的空文件的文件名称和路径 |
Fail if file exists | 当文件已经存在时,这个工作条目将跟随一个失败节点。默认选中。 |
11、2、13、5其它
变量:选择变量作为文件名使用
浏览:在文件系统查找文件
11、2、14Delete a file
11、2、14、1屏幕截图
11、2、14、2图标
11、2、14、3常用描述
你可以使用Delete a file任务条目来删除一个文件。
11、2、14、4选项
选项 | 描述 |
job entry name | 任务条目的名称,在单个任务中,必须唯一。 |
File name | 要删除的文件的文件名称和路径 |
Fail if file doesn’t exist | 当文件不存在时,这个工作条目将跟随一个失败节点。默认选中。 |
11、2、14、5其它
变量:选择变量作为文件名使用
浏览:在文件系统查找文件
11、2、15Wait a file
11、2、15、1屏幕截图
11、2、15、2图标
11、2、15、3常用描述
你可以使用Wait for a file任务条目来等待一个文件。这个任务条目将定期的检查指定的文件是否存在,以决定流程是否继续。这个条目可以不确定的等待文件或者经过一过段时间后超时。
11、2、15、4选项
选项 | 描述 |
job entry name | 任务条目的名称,在单个任务中,必须唯一。 |
File name | 要等待的文件的文件名称和路径。 |
Maximum timeout | 最大超时时间秒数,0表示不确定。如果到了设定的时间,就算文件还没有被创建,流程也将继续。一旦超时,“Success on timeout”选项将决定下一个成功或者失败的节点继续与否。 |
Check cycle time | 设置检查文件的间隔时间。 |
Success on timeout | 一旦超时,如果文件还没有察觉到,下一节点将继续。 |
File size check | 探测指定的文件,仅仅当最后一次检查时文件尺寸没有改变才继续。 |
11、2、15、5其它
变量:选择变量作为文件名使用
浏览:在文件系统查找文件
11、2、16File compare
11、2、16、1屏幕截图
11、2、16、2图标
11、2、16、3常用描述
你可以使用File compare任务条目来比较两个文件的内容,控制任务的流程。当两个文件相等时,成功流出节点将继续,否则失败节点将继续。
11、2、16、4选项
选项 | 描述 |
job entry name | 任务条目的名称,在单个任务中,必须唯一。 |
File name 1 | 比较的第一个文件的文件名称和路径。 |
File name 2 | 比较的第二个文件的文件名称和路径。 |
11、2、16、5其它
变量:选择变量作为文件名使用
浏览:在文件系统查找文件
11、2、17Put files with secureFTP
11、2、17、1屏幕截图
11、2、17、2图标
11、2、17、3常用描述
你可以使用Put Files with SFTP任务条目通过SFTP安全协议将一个或者多个文件放到FTP服务器上。
11、2、17、4选项
选项 | 描述 |
name of Job entry | 任务条目的名称,在单个任务中,必须唯一。 |
SFTP server name(IP) | SFTP服务器名称或者IP地址 |
SFTP port | 使用的TCP端口,通常是22 |
User name | 登陆SFTP服务器的用户名 |
Password | 登陆SFTP服务器的密码 |
Remote directory | 从SFTP服务器获取文件的远程目录 |
Local directory | 传送文件的目录(运行Kettle的机器) |
Wildcard | 如果你想选择多个文件,指定一个正则表达式。例如: |
Remove files after retrieval? | 在FTP服务器所有文件被成功转移后,删除FTP服务器的文件。 |
11、2、18Ping a host
11、2、18、1屏幕截图
11、2、18、2图标
11、2、18、3常用描述
你可以使用Ping a host任务条目来用ICMP协议PING一个主机。
11、2、18、4选项
选项 | 描述 |
name of job entry | 任务条目的名称,在单个任务中,必须唯一。 |
Host name/IP | 需要ping的主机的名称或者IP地址。 |
Send…packets | 发送包的数量(缺省为2)。 |
11、2、19Wait for
11、2、19、1屏幕截图
11、2、19、2图标
11、2、19、3常用描述
你可以使用Wait for任务条目在运行下一个条目之前等待一段时间。
11、2、19、4选项
选项 | 描述 |
name of job entry | 任务条目的名称,在单个任务中,必须唯一。 |
Wait for | 等待延时。 |
Unit time | 指定时间单位。 |
11、2、20Display Msgbox info
11、2、20、1屏幕截图
11、2、20、2图标
11、2、20、3常用描述
你可以使用这个任务条目在任务中显示消息对话框,你可以很容易的看到你处理的内容,这些仅仅通过GUI就可以实现。
11、2、20、4选项
选项 | 描述 |
name of job entry | 任务条目的名称,在单个任务中,必须唯一。 |
Message title | 对话框的标题。 |
Message body | 显示的消息。 |
11、2、21Abort job
11、2、21、1屏幕截图
11、2、21、2图标
11、2、21、3常用描述
如果你想中断一个任务可以使用此条目。
11、2、21、4选项
选项 | 描述 |
name of job entry | 任务条目的名称,在单个任务中,必须唯一。 |
Message | 中断的时候添加到日志信息。 |
11、2、22XSL transformation
11、2、22、1屏幕截图
11、2、22、2图标
11、2、22、3常用描述
XSL transformation任务条目设计用来转换XML文档到其它的文档(XML或者其它格式,比喻HTML或者纯文本)。
原始文档并没有被改变,一个新的文档在原来的XML文件的基础上产生。
11、2、22、4选项
选项 | 描述 |
name of job entry | 任务条目的名称,在单个任务中,必须唯一。 |
XML File name | 源XML文件的全名 |
XSL File name | XSL文件的全名 |
Output File name | 被创建的文档的全名(XSL转换的结果) |
If file exists | 定义一个当存在一个与输出文件同名的文件时的操作: Create new with unique name:一个新的输出文件将被创建 Do nothing:什么也不做 Fail:任务失败 |
11、2、23Zip files
11、2、23、1屏幕截图
11、2、23、2图标
11、2、23、3常用描述
这个步骤将按照你在对话框中指定的选择创建一个标准的ZIP归档。
11、2、23、4选项
选项 | 描述 |
name of job entry | 任务条目的名称,在单个任务中,必须唯一。 |
Source directory | 被压缩文件源目录 |
Include wildcard | 文件的通配符(正则表达式)包含在归档文件中 |
Exclude wildcard | 文件的通配符(正则表达式)不包含在归档文件中 |
Zip file name | 目的归档文件的全名 |
Compression | 压缩级别 |
If zip file exists | 如果目标存在发生的动作 |
After zipping | 归档后的操作 |
Move files to | 归档后移动源文件至何方 |
12、图形界面(Graphical View)
12、1描述
12、2添加步骤或者任务条目
12、2、1拖放创建步骤
从一个转换中(或者一个任务条目)添加一个步骤到画布上是非常容易的:从树上简单的选择一个步骤类型,把它拖到画布上:
在鼠标位置你可以看到一个正方形,它代表步骤最终在画布上的位置。当鼠标离开的时候,步骤已经成为转换的一部分。
12、2、2从步骤类型树创建步骤
12、2、3在你想要的位置创建步骤
你也可以仅仅在画布上点击右键,然后选择“新建步骤…”
12、3隐藏步骤
在图形界面上,你可以右键单击一个步骤或者一个工作条目,你将获得一个上下文菜单,选择“隐藏步骤”,将从图形界面隐藏这个步骤,但不会删除它。
12、4转换步骤选项(右键上下文菜单)
12、4、1编辑步骤
将打开步骤对话框,编辑步骤设置。
12、4、2编辑步骤描述
将打开一个对话框,使你可以输入步骤的文本描述。
12、4、3数据迁移
请参考5、3
12、4、4复制
请参考5、2
12、4、5复制步骤
将在原先的步骤低一点的位置创建一个该步骤的副本。
12、4、6删除步骤
将从转换中永久的删除步骤。
12、4、7显示输入字段
展示从输入流往源所有的输入字段。
12、4、8显示输出字段
展示所有的输出字段。
12、5任务条目选项(右键上下文菜单)
12、5、1打开转换/任务
12、5、2编辑任务入口
12、5、3编辑任务入口描述
12、5、4复制任务入口
12、5、5复制选择的任务入口到剪贴板
12、5、6排列/分布
12、5、7拆开节点
12、5、8删除所有任务入口的副本
删除所有任务入口的副本,而不仅仅是这一个!
12、6添加节点连接
在图形界面上创建一个节点连接,最快的方法是从一个步骤往另外的一个步骤拖拽鼠标(用中间的按钮)。你也可以用鼠标左键从一个步骤往另外的一个步骤拖拽的同时按住SHIFT键。
12、7运行转换
当你修改完你的转换,你可以主菜单运行按钮、工具栏,或者F9来运行它。
12、8屏幕截图
12、9执行选项
12、9、1在哪里执行
在你运行转换的时候,有三种方式可以选择:
Local Execution:转换或者任务将在你正在使用的机器上运行
Execute remotely:允许你指定你想要运行的远程服务器。这个特征需要你在远程机上安装Pentaho Data Integration并且运行Carte服务
Execute clustered:允许你在集群环境中运行转换或者任务。
12、9、2预览
允许你指定每个步骤预览的行数。
12、9、3使用安全模式
12、9、4日志级别
允许你指定要使用的日志级别。
12、9、5重放日期
设置你想要重放转换的日期。
12、9、6参数
设置转换要用到的参数的值。
12、9、7变量
12、10设置远程或者从属服务器
12、10、1概述
从属服务器允许你在一个远程服务器上运行转换,设置一个从属服务器需要在远程机器上(称为“Carte”)有一个小的WEB服务器,它允许从其它的Spoon(远程/集群运行)或者转换任务条目(集群 执行)输入。
12、10、2屏幕截图
13、日志(Logging)
13、1日志描述
转换所运行的每一步骤
被Pan运行的转换的日志
任务的日志标签将展示:
任务条目完成的细节
被Kitchen运行的任务的日志
13、2屏幕截图
13、3日志网格
13、3、1转换日志网格
步骤名称
复制的记录行数
从输入流读取的行数
往输出流中写的行数
从文件或数据库中读取的行数
往文件或数据库中写的行数
数据库中更新的行数
发生错误的行数
步骤的状态:运行、完成、停止
步骤运行的时间(秒)
步骤每秒钟处理行的速度
步骤的优先级(10=最高,1=最低)
休眠时间是步骤必须进入休眠的时间,休眠原因是输入缓冲器为空(get)或者输出缓冲器为满(put)。
备注:系统处理优先级的转换依据是最慢的步骤取得最高的优先级。
13、3、2任务日志网格
任务/任务条目名称
条目执行状态的备注
条目执行的结果(成功或者失败)
任务条目开始的原因
结果对象的变量值
日志日期:任务条目开始的时间或者结束的时间
13、4按钮
13、4、1转换按钮
13、4、1、1开始转换
这个按钮启动一个你设计的转换,利用Pan来执行Spoon,转换将被保存到资源库或者XML文件。结果输出显示在日志视图的日志文本中。
13、4、1、2预览
这个按钮在内存中启动一个你设计的转换,结果输出显示在日志视图的日志文本中。如果你按了这个按钮,将出现下面的对话框:你可以键入每一个步骤你想预览的行数,预览尺寸自动设置100行。
13、4、1、3显示错误行
这个选项将显示在日志文本中包含“ERROR”单词的所有错误行,你可以选择它并编辑源步骤。
13、4、1、4清除日志
清除日志文本窗口的所有文本。
13、4、1、5日志设置
下面是日志设置的对话框:
如果你在过滤器窗口输入文本内容,就仅仅在日志文本窗口中展示包含这些文本的日志行。
“日志级别”设置允许你选择日志级别,你可以选择以下级别:
Nothing:不显示任何输出
Error:仅仅显示错误信息
Minimal:使用最小的日志
Basic:缺省的日志级别
Detailed:给出日志输出的细节
Debug:调试目的,调试输出
Row Level:可以生成许多数据
如果选择“生成时间标志”,将在所有的日志行开始处添加时间内容。
13、4、1、6仅仅显示活动的步骤
13、4、2任务按钮
13、4、2、1启动任务
启动一个你设计的任务。利用Kitchen来执行Chef,转换将被保存到资源库或者XML文件。结果输出显示在日志视图的日志文本中。
13、4、2、2停止任务
停止一个正在运行的任务。
13、4、2、3刷新日志
刷新日志窗口。
13、4、2、4清除日志
清除日志文本窗口的所有文本。
13、4、2、5日志设置
下面是“日志设置”的对话框:
如果你在过滤器窗口输入文本内容,就仅仅在日志文本窗口中展示包含这些文本的日志行。
“日志级别”设置允许你选择日志级别,你可以选择以下级别:
Nothing:不显示任何输出
Error:仅仅显示错误信息
Minimal:使用最小的日志
Basic:缺省的日志级别
Detailed:给出日志输出的细节
Debug:调试目的,调试输出
Row Level:可以生成许多数据
如果选择“生成时间标志”,将在所有的日志行开始处添加时间内容。
13、4、2、6自动刷新
如果你不需要日志在所有的时间都更新,你可以禁用此选项。你可以通过速度很慢的远程桌面连接来操作。
14、网格(Grids)
14、1描述
功能
在行前插入:在你点击的行之前插入一个空行。
在行后插入:在你点击的行之后插入一个空行。
行上移:将你点击的行上移,键盘快捷键是CTRL-UP。
行下移:将你点击的行上移,键盘快捷键是CTRL-DOWN。
包含头的最理想列尺寸:重新调整列尺寸,以显示所有的值以及列头,键盘快捷键是F3。
不包含头的最理想列尺寸:重新调整列尺寸,以显示所有的值,键盘快捷键是F4。
清除所有:清除网格的所有信息,会有一个确认操作。
选择所有行:选择网格上的所有行,键盘快捷键是CTRL-A。
清除选择:清除网格上的所有选择,键盘快捷键是ESC。
选择复制到剪贴板:将选择的信息以文本格式复制到剪贴板,这些信息可以与其它的程序交换数据,例如制表软件,甚至是其它的Spoon和Kettle对话框,键盘快捷键是CTRL-C。
剪贴板粘贴到表:将剪贴板的行插入到你选中的网格位置,键盘快捷键是CTRL-V。
剪切选择行:将选择的信息以文本格式复制到剪贴板,然后从网格上删除,键盘快捷键是CTRL-X。
删除选择行:从网格上删除选择的行,键盘快捷键是DEL。
保存选择行:如果删除很多行,然后保存,可以使用此功能,键盘快捷键是CTRL-K。
复制字段值到所有行:可以通过此功能获取某些列的值。
撤销:撤销之前的网格操作,键盘快捷键是CTRL-Z。重做:重做下一步的网格操作,键盘快捷键是CTRL-Y。
导航
如果你点击网格上的单元格,你可以编辑这个字段。
如果按下回车键,你可以用手形鼠标来操作网格。
再次按下回车键,允许你编辑这个字段。
15、资源库浏览器(Repository Explorer)
15、1描述
Connections(数据库连接)
Partition Schemas
Slave servers
Clusters
Transformations(转换)
你可以单击列头来按照名称、对象类型、用户或者修改日期来排序。
屏幕截图
右键单击功能
右键单击资源库的对象时,可以使用诸如打开、删除和修改对象名称的功能。
备份/资源库
16、共享对象(Share objects)
每个共享对象都可以存储在本机的共享对象文件中。共享对象的缺省位置位于 $HOME/.kettle/shared.xml。可以共享用以下方法包含的对象:
Database connections(数据库连接)
Steps(步骤)
Slave servers
Partition schemas
Cluster schemas
要共享这些对象之一,只需要简单的在窗口左边Main tree的对象上单击鼠标右键并选择“共享”。