kettle学习记录1

来源:互联网 发布:作图软件有cs? 编辑:程序博客网 时间:2024/06/05 06:40

在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连接参数也可以这样变为动态的。

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

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

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

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

转换2:
这里写图片描述

表输入:表输入中的DB连接参数采用转换中获取的数据库记录数据,使用${}接收。
这里写图片描述
这里写图片描述

文本文件输出:为了转换3中的过滤记录而设置
输出文档内容:
这里写图片描述

转换3:
这里写图片描述

csv文件输入:通过转换2的文本文件输出然后在此输入到过滤记录中
这里写图片描述

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

文本文件输出:最后在通过文本文件输出,可以设置文件类型为csv
这里写图片描述

最后输出的文件内容为:
这里写图片描述

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

原创粉丝点击