kettle的应用组件 、流程组件、查询组件、连接组件、统计组件、映射组件、脚本组件

1、应用是转换里面的第五个分类。应用都是一些工具类。

1.1、替换NULL值就是把null转换为其它的值。NULL值不好进行数据分析

1.2、写日志主要是在调试的时候使用,把日志信息打印到日志窗口。

2、流程是转换里面的第六个分类。流程主要用来控制数据流程和数据流向。

2.1、Switch/case让数据流从一路到多路。

2.2、过滤记录让数据流从一路到两路。

2.3、空操作一般作为数据流的终点。在kettle的sample例子中经常使用,但是实际开发中很少使用。

2.4、中止是数据流的终点,如果有数据到这里,将会报错。用来校验数据的时候使用。

3、查询是转换里面的第七个分类。查询是用来查询数据源里的数据并合并到主数据流中。

3.1、HTTP client是使用GET的方式提交请求,获取返回的页面内容。

3.2、自定义常量数据是用来生成一些不变的数据。

指定常量数据。

3.3、数据库查询就是数据库里面的左连接。左连接就是两张表执行左关联查询,把左边的表数据全部查询出来。

3.4、数据库连接,可以执行两个数据库的查询,和单参数的表输入。

3.5、流查询,在查询前把数据都加载到内存中,并且只能进行等值查询。

4、连接是转换里面的第八个分类。连接是结果集通过关键字进行连接。

4.1、合并记录是用于将两个不同来源的数据合并,这两个来源的数据分别为旧数据和新数据,该步骤将旧数据和新数据按照指定的关键字匹配、比较、合并。主要用于新旧数据的对比,非常好使的哦!

  1)、需要设置的参数:
    1.1)、旧数据来源:旧数据来源的步骤。
    1.2)、新数据来源:新数据来源的步骤。
  2)、标志字段:设置标志字段的名称,标志字段用于保存比较的结果,比较结果有下列几种。
    2.1)、 "identical",旧数据和新数据一样。
    2.2.)、"changed" ,数据发生了变化。
    2.3.)、"new", 新数据中有而旧数据中没有的记录。
    2.4)、 "deleted",旧数据中有而新数据中没有的记录。
  3)、关键字段:用于定位两个数据源中的同一条记录。
    3.1)、比较字段:对于两个数据源中的同一条记录中,指定需要比较的字段。
    3.2)、合并后的数据将包括旧数据来源和新数据来源里的所有数据,对于变化的数据,使用新数据代替旧数据,同时在结果里用一个标示字段,来指定新旧数据的比较结果。
  4)、注意:
    4.1)、旧数据和新数据需要事先按照关键字段排序。
    4.2)、旧数据和新数据要有相同的字段名称。

4.2、记录关联,就是对两个数据流进行笛卡尔积操作。

4.3、记录集连接就像数据库的左连接、右连接、内连接、外连接。注意:在进行记录集连接之前,应该要对记录集进行排序。

5、统计是转换里面的第十三个分类。统计是提供数据的采样和统计功能。

5.1、分组是按照某一个或某几个进行分组,同时可以将其余字段按照某种规则进行合并。注意:分组之前数据应该进行排序!

6、映射是转换里面的第十八个分类。映射是用来定义子转换,便于封装和重用。

6.1、映射(子转换),是用来配置子转换,对子转换进行调用的一个步骤。子转换可以让相同的业务功能进行重用,抽取出来,方便进行调用。

6.2、映射输入规范,是输入字段,由调用的转换输入。

6.3、映射输出规范是向调用的转换输出所有列,不做任何处理。

7、脚本是转换里面的第七个分类。脚本就是直接通过程序代码完成一些复杂的操作。

7.1、Javascript脚本,就是使用javascript语言通过代码编程来完成对数据流的操作。JS中有很多内置函数,可以在编写JS代码时查看。

存在两种不同的模式:不兼容模式和兼容模式。不兼容模式:是默认的,也是推荐的。兼容模式:兼容老版本的kettle。

 1 1)、javascript脚本-获取字段
 2 不兼容模式:
 3 myVar = FieldName;
 4 
 5 兼容模式:根据字段类型的不同,使用不同的方法:
 6 myVar = FieldName.getString();
 7 myVar = FieldName.getNumber();
 8 
 9 
10 2)、javascript脚本-给字段赋值
11 不兼容模式:直接使用字段名,如
12 FieldName = myVar;
13 
14 兼容模式:使用 
15 FieldName.setValue(myVar);
16 
17 
18 3)、javascript脚本-在脚本中使用java类
19 不兼容模式:
20 var myVar = new java.lang.String(“pentahochina.com”);
21 
22 兼容模式:
23 var myVar = new Packages.java.lang.String (“pentahochina.com”);

Javascript脚本,就是使用javascript语言通过代码编程来完成对数据流的操作。

7.2、java脚本就是使用java语言通过代码编程来完成对数据流的操作。内置了很多函数可以直接使用。

  Java脚本Main,Main函数对应一个processRow()函数,processRow()函数是用来处理数据流的场所!

7.3、执行SQL脚本可以执行一个update语句,用来更新某个表中的数据。

 

作者:别先生

博客园:https://www.cnblogs.com/biehongli/

如果您想及时得到个人撰写文章以及著作的消息推送,可以扫描上方二维码,关注个人公众号哦。

 

posted on 2020-02-18 19:38  别先生  阅读(2243)  评论(0编辑  收藏  举报