No results found

PDI设计转换任务

Pentaho Data Integration(PDI),Kettle是PDI以前的名称.在2006年Kettle加入了开源的BI组织Pentaho,正式命名为PDI, 加入Pentaho后Kettle的发展越来越快了,并有越来越多的人开始关注它了.PDI(Kettle)是一款开源的、元数据驱动的ETL (数据的抽取、转换、加载)工具,是开源 ETL 工具里功能比较强大的一个.PDI官网,最新版本为8.2.

本例用到的组件:生成随机数,增加常量,计算器,过滤记录,分组,记录关联,Excel输出。

实现功能

随机生成100个随机数,随机数取值于[0,100)之间,计算小于等于50的随机数个数和大于50的随机数个数。并把这两个统计数字放在数据库表的一行的两列中,即输出的结果有一行,一行包括两列,每列是一个统计值。

步骤

我使用的PDI版本为7.1.

新建转换

打开PDI中的Spoon.bat进入转换设计器。文件->新建->转换新建空白的抓换任务。Ctrl+s先保存名为test.ktr的文件。

生成随机数

步骤->输入中拖入生成随机数组件,双击组件,添加一行,名称为rand_num,类型为随机数字

PDI设计任务

在组件上右键,选择改变开始复制的数量,因为生成100个随机数,所以输入100,但是没看到确定之类的按钮(坑爹),直接回车就可以了。之后在组件左上角出现x100的标志。

PDI设计任务

增加常量

步骤->转换中拖入增加常量组件,双击组件,增加两个常量。multi值设置为100,因为生成的随机数是0-1范围的,后面会将随机数x100得到一个0-100的随机整数。standard设置为50,我们将随机数分开计数是以50为分界点。

鼠标放在随机数组件上,按住Shift键,按下鼠标左键拉出一根连线到增加常量组件上。

PDI设计任务

计算器

步骤->转换中拖入计算器组件,双击组件,增加一个新字段,计算方式为A * B,分别用生成的随机数乘上multi值。

PDI设计任务

分组记录

步骤->流程中拖入过滤记录组件,步骤->统计中拖入两个分组组件,过滤记录连接到分组上,连接的时候回弹出Result is trueResult is false选项。

PDI设计任务

双击过滤记录组件,添加条件。

PDI设计任务

双击设置第一个分组,计算大于等于50的个数。

PDI设计任务

双击设置第二个分组,计算小于50的个数。

PDI设计任务

结果输出

步骤->连接中拖入记录关联(笛卡尔输出)组件,因为我们直接将分组结果放在一行输出,直接笛卡尔连接即可。

步骤->输出中拖入Excel输出组件,记录关联组件指向Excel输出。双击Excel输出组件,文件名中设置为${output_dir}/result,其中,${output_dir}是个变量,稍后设置。result是输出文件名。

PDI设计任务

字段页中可以获取要输出的字段,也可以不设置,默认输出所有字段。

PDI设计任务

Spoon设计器中编辑->设置环境变量,会出现我们在Excel中用到的变量,值设置为../mywork,因为默认的输出目录是Spoon.bat所在目录,我们在上层目录中新建一个mywork文件夹。

PDI设计任务

再拖入一个Excel输出组件,从计算器组件指向该组件,添加连线时会弹出选项,选择复制。这步的目的是将计算器计算出的结果保存一个。

PDI设计任务

双击该组件,文件名中设置为${output_dir}/data.

PDI设计任务

运行

至此,所有步骤已完成。

PDI设计任务

点击上部按钮中第一个运行这个转换,弹出执行转换对话框,直接点击启动,可以看到下部面板中的运行日志,运行完成后查看结果Excel中已经输出相应结果。

PDI设计任务
文章目录
  1. 1. 实现功能
  2. 2. 步骤
    1. 2.1. 新建转换
    2. 2.2. 生成随机数
    3. 2.3. 增加常量
    4. 2.4. 计算器
    5. 2.5. 分组记录
    6. 2.6. 结果输出
  3. 3. 运行
|