pentaho介绍 下载本文

内容发布更新时间 : 2024/5/18 12:11:33星期一 下面是文章的全部内容请认真阅读。

生成的文件。

8.4.2. 表输入(table input)

该组件用来从数据库获取信息。主要的属性有数据库连接、sql等。在sql中可以使用变量,如果使用了变量,则必须勾选上“替换sql 语句中的变量”选项,否则变量不能传入,sql语句将报错。

“允许延迟转换”选项可以避免不必要的数据类型转换,改善数据处理性能。 8.4.3. 获取系统信息(get systeminfo) 该组件用来获取kettle环境中可用的信息。 8.4.4. 行发生器(generaterows)

产生多行,具体产生多少行可以通过设置limit(限制)来做设定。可以通过field(字段)列表来指定字段名称及类型。

8.4.5. 输入(De-serializefrom file,原名cube输入) 从二进制的kettlecube文件中读取记录行数据。 8.4.6. XBase输入

使用这一步可以读取大多数被称为 XBase family派生的 DBF文件。 8.4.7. Excel输入

该组件可以从一个或多个excel文件中读取数据,可以使用正则表达式来指定文件。 8.4.8. 插入或更新(insert/update)

这个组件首先使用一个或多个对照key来查询表中的一行,如果找到,则更新,如果没有找到则插入。 选项

1、步骤名称:步骤的名称,在单个转换中必须唯一。 2、连接:目标表所在的数据库连接名称。

3、Target schema:要写入数据的表的 Schema 名称。 允许表名中包含 “.”是很重要的。 4、目标表:想插入或者更新的表的名称。

5、Commit size:提交之前要改变(插入/更新)的行数。

6、不执行任何更新:如果被选择,数据库的值永远不会被更新。仅仅可以插入。 7、用来查询的关键字:可以指定字段值或者比较符。可以用以下比较符:=, <>,<,<=,>,LIKE,BETWEEN,ISNULL,IS NOT NULL。 8、更新字段:指定你想要插入/更新的字段 8.4.9. 更新(Update)

这个步骤类似于插入/更新步骤,除了对数据表不作插入操作之外。它仅仅执行更新操作。 8.4.10. 删除(Delete)

这个步骤类似于上一步,除了不更新操作。所有的行均被删除。 8.4.11. XML 输出(XMLoutput)

这个步骤允许你从源中写入行到一个或者多个 XML 文件。 选项

8.4.12. 数据库查询(Databaselookup) 这个步骤类型允许你在数据库表中查找值。 选项

步骤名称:在单一转换中步骤名称必须唯一。 数据库连接:想要写入数据的连接。 查询表:想要查询的表名。

使用缓存:数据库查询是否使用缓存。这意味着在某种查询值的条件下,每次数据

库都能返回同样的结果。

8.4.13. 流查询(Streamlookup)

这个步骤类型允许你从其它步骤中查询信息。首先, “源步骤(lookup step)”的数据被读到内存中,

然后被用来从主要的流中查询数据。 选项

步骤名称:在单个转换中步骤名必须唯一。 源步骤:数据来源的步骤名称

查询值所需要的关键字:允许你来指定用来查询值的字段名称。值总是用“等于” 比较符来搜索。

接收的字段:你可以指定用来接收字段的名称,或者在值没有找到的情况下的缺省 值,或者你不喜欢旧的字段名称的情况下的新字段名称 Preserve Memory:排序的时候对数据行进行编码以保护内存

Key and value are exactly one integer field: 排序的时候对数据行进行编码 以保护内存

Use sorted list:是否用一个排序列表来存储值,它提供更好的内存使用。 这个步骤的使用类似于数据库查询步骤,区别在于数据库查询使用的是数据库表,而流查询是从文本文件等数据流中查询。

8.4.14. 调用数据库存储过程(Call DBProcedure)

这个步骤允许你运行一个数据库存储过程,获取返回结果。 8.4.15. 字段选择(selectvalue)

该组件对于选择、重命名或修改字段的长度和精度方面很有用。这几方面被放在了不同的category中,在组件上分别放在不同的tab中。 8.4.16. 过滤记录(Filterrows)

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

一旦这个步骤连接到先前的步骤中,你可以简单的单击“” , “=”和“” 区域来构建条件。 选项

步骤名称:步骤的名称,在单一转换中必须唯一。 技术资料, 【Kette3.0用户手册】 发送“true”数据给步骤:指定条件返回 true的数据将发送到此步骤。 发送“false”数据给步骤:指定条件返回 false 的数据将发送到此步骤。 8.4.17. 空操作(什么也不做)(dummy(do nothing)) 该组件什么也不做,只是用来做一些测试时的占位符。 8.4.18. Row DeNormalizer(行转列)

该组件做行转列。在“构成分组的字段”中指定分组字段,在“目标字段”中指定“目标字段”的名称,目标字段的值字段(从哪个字段中获取值)和“关键字值”。如下图所示的样例:

8.4.19. 列转行(Rownormaliser) 用于将列转行 例如下表的数据

转换成下表所示的数据

Row normaliser步骤的设置如下图 8.4.20. 拆分字段(split field)

基于指定的分割符信息进行字段拆分。 8.4.21. 去重(Unique Rows)

从输入流中去除重复的记录。需要确保输入流是排了序的,否则只有相邻连续的记录会去重。

8.4.22. 分组(group by)

这个组件用来根据一组分组字段进行计算。 选项

步骤名称:步骤的名称,在单一转换中必须唯一。 分组字段:指定分组的字段。

聚合:指定需要聚合的字段、方法以及新字段结果的名称

包含所有的行:如果选择这个,输出中就包含所有的行,不仅仅是聚合。 临时文件目录:临时文件存储的目录。

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

添加行号,每一个分组重启:如果你想添加行号,就选择这个。 字段名行数:指定行号将插入的字段的名称。 8.4.23. 设置为空值(Null if)

如果某个字符串的值等于指定的值,设置那个值为空。 8.4.24. 计算器(Calculator)

这个步骤提供一个功能列表,可以在字段值上运行。

计算器的一个重要优势是,它有着几倍于常用的 JavaScript 脚本的速度。 8.4.25. 行扁平化(flattener)

这个操作类似行转列(分组字段,对某一列进行行转列) 8.4.26. 值映射(value mapper)

该组件将值从一个值映射到另一个值。通常你想解决存储一个数据库中转换表的问题,不管怎么说,这是一种可选的方案:简单的将转换表作为值映射对话框的一部分。 例如将1映射为男,0映射为女等。

8.4.27. 数据库连接(DatabaseJoin)

这个步骤允许你使用先前步骤的数据,运行一个数据库查询。 能够指定查询参数:

在 SQL 查询中使用“?”

在 SQL 查询中使用数据网格中的字段

8.4.28. 合并记录(Merge rows) 该组件可以用来比较两个记录流。对于比较两个不同时间点的记录流是很有用的。常使用在没有包含最后更新时间的数据仓库源系统状态中。两个记录流,参照流和比较流进行合并,记录的最后更新版本数据被传给下一个组件,记录被标记为: identical – 在两个流中都发现了key,并且值是一致的。

changed—在两个流中都发现了key,但是一个或多个值不一致。 new –key在参照流(旧数据源)中没有发现

deleted – key在比较流(新数据源)中没有发现。

除了deleted状态情况,比较流的数据传到下一个组件中。 需要注意的是,两个流都需要在指定的key上排序。 8.4.29. Merge join

对两个不同的输入组件的数据集做合并关联。关联类型可以是内联、左外联、右外联和全外

联。

需要注意的是,合并join的数据记录需要在指定的key上做排序。 8.4.30. Java Script 值(JavaScript Value)

这个步骤允许你用JavaScript 语言做复杂的运算。使用的 JavaScript 引擎是 Rhino 1.5R5。 选项

步骤名称:步骤的名称,在单个转换中必须唯一 Java Script:步骤中的脚本。

字段:要添加到输出流中的字段。 8.4.31. Excute SQL Script

可以使用该组件执行sql 脚本。可以在整个Transformation初始化中执行一次(一般这种情况用于DDL语句)或在没输入该组件一行记录时执行一次(这种情况一般用于带参的DML语句)。

注意:如果sql语句中的脚本失败,整个Transformation的执行将挂起。 8.4.32. 维度更新/查询(dimensionlookup/update)

该组件允许你执行Ralphkimball的两类缓慢变化维:第一类(update)和第二类(insert)。使用该组件不仅可以更新维表,还可以查询维表值。 8.4.33. Oracle批量装载(Oraclebulk loader)

这个步骤允许你大批量加载数据到 Oracle 数据库,它将用一个正确的装载格式,然后 用 Oracle的 SQL*Loader 数据加载工具加载到指定的表中。 选项

步骤名称:步骤的名称,在单个转换中必须唯一。 连接:维表所在数据库的连接。

目标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 表中加载的表字段。

流字段:输入行中带来的字段。 8.4.34. 运行步骤的多个副本

右键单击每个Transformation步后都会出现一个菜单“改变开始复制的数量”,可以设置这个复制的数量,这个对于“数据库查询”组件来说,可以提高其执行的效率。但如果对于其他的组件,将使输出结果记录数翻倍,需要特别注意。另外,对于“数据库查询”组件,如果前一组件采用“数据迁移”是“复制到下一步”而不是“发送到下一步”也会造成“数据库查询”组件的输出记录翻倍。 8.4.35. 问题集

1、 在“表输入”组件中,如何从上一步中获得数据替换sql语句中的参数? 2、

8.5 任务条目(Job Entries) 8.5.1 图标 8.5.2 Start

Start 是任务执行的入口,首先必须是任务可以执行。只有无条件的任务条目可以从 Start 入口连接。

8.5.3 Dummy

在一个任务中使用 Dummy条目将什么也不做。这可以使一个任务更清晰的展示,或者在 执行循环中使用。

8.5.4 转换

你可以用一个转换任务条目执行一个先前定义的转换。 选项

8.5.5 任务(Job)

你可以使用 Job 条目来运行一个先前定义的任务。 8.5.6 Shell

你可以使用 Shell 任务条目在任务运行的主机上执行一段 Shell 脚本。

备注:Shell 脚本能在控制台窗口输出文本,输出将转换到 Kettle 日志系统,这不会 影响 Shell脚本的运行。

备注: Windows 系统, 脚本被 “CMD.EXE/C” (NT/XP/20000) 或 “COMMAND.COM/C” (95/98)。

8.5.7 Mail

你可以使用 Mail 任务条目来发送 e-Mail。 8.5.8 SQL

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

你可以使用 FTP 任务条目从 FTP 服务器上获取一个或者多个文件。 8.5.10 Table Exists

你可以使用 Tableexists任务条目检验数据库中是否存在某个表。 8.5.11 File Exists

你可以使用Fileexists任务条目检验在Kettle运行的服务器上中是否存在某个文件。 8.5.12 Evaluation(javascript)

你可以使用Evaluation 任务条目来计算一个布尔型的变量,这个变量可以在决定下一 个步骤是否将被执行时使用。用户可以使用以下变量: