在ETl工具kettle中主对象主要分为作业(job)与转换(transform)。

1.作业以一个start开头,中间可以包含不定量个作业和转换,可以有多个结尾。作业中定义的是控制流。

2.转换包括一个或多个步骤,它定义的是数据流。在核心对象中有许多我们常用的对象,比如说输入中有csv输入,excel输入,文本文档输入,表输入等等,比如说转换中的值映射,增加常亮,字段选择,字符串操作等等。

这些转换和工作中的核心对象都需要在kettle中去练习,然后把握它的基本使用方法。

比如说命令行启动作业通过 kitchen指令在命令行给作业传递全局变量id进去,通过在 kitchen + 作业文件 + “-param id=1” 来把全局变量id=1传递给作业,只是Windows系统下要在两边加双引号,这样在这个job中的所有地方都可以接收到这个id的值了。

在kettle中接收变量的值通过{id},在kettle中的DB连接参数也可以这样变为动态的。

kettle学习记录1
上面是是一个job。通过设置全局变量id=3,获取到数据库test1的表db里面id=3的数据取到另一个数据库信息,将这个数据库信息设置为变量数据库,连接上后取此数据库的test2里面的user表全部信息,过滤出id大于26的数据并存储为csv文件。

转换:通过获得从命令行传递过来的全局变量id=3,去数t据库test1查找出这条记录。并把记录的内容通过设置变量定义在转换中,以便于后续使用。
kettle学习记录1

表输入:通过获得从命令行传递过来的全局变量id=3,去数t据库test1查找出这条记录。注意sql语句中如使用到了变量,那么下面替换sql语句里的变量一定要打勾。
kettle学习记录1

设置变量:并查询出来的记录的内容通过设置变量进行定义。变量活动类型选择在一个job中,以便于在这个job中进行后续操作。
kettle学习记录1

转换2:
kettle学习记录1

表输入:表输入中的DB连接参数采用转换中获取的数据库记录数据,使用${}接收。
kettle学习记录1
kettle学习记录1

文本文件输出:为了转换3中的过滤记录而设置
输出文档内容:
kettle学习记录1

转换3:
kettle学习记录1

csv文件输入:通过转换2的文本文件输出然后在此输入到过滤记录中
kettle学习记录1

过滤记录:设置条件:id>26,从而筛选出id大于26的数据。(因为在转换2中因为表输入的DB是通过动态接收参数从而连接数据库获取记录的,所以在转换2中如果添加过滤记录,则在条件中的字段会出现无字段可选的情况,从而在转换2中加了一个文件输出,在转换3中加了一个文件输入,这样在转换3中的过滤记录就能出现下图的字段中的选择一个字段中的这些字段)
kettle学习记录1

文本文件输出:最后在通过文本文件输出,可以设置文件类型为csv
kettle学习记录1

最后输出的文件内容为:
kettle学习记录1

总结:这是一个小例子,在kettle工具中这些核心对象要通过使用去了解,常用的核心对象要去掌握好使用方法和注意事项。

相关文章:

  • 2021-05-27
  • 2021-08-23
  • 2021-09-21
  • 2021-06-02
  • 2021-04-06
  • 2021-08-11
  • 2021-06-24
猜你喜欢
  • 2021-08-10
  • 2021-06-09
  • 2022-12-23
  • 2022-01-05
  • 2021-06-09
  • 2021-10-10
相关资源
相似解决方案