kettle软件 转换和作业_Kettle 作业(Job)和 转换(Transform)

2023-05-16

作业(Job)由一个个步骤组成,转换只是作业的其中一个步骤。

Kettle的控件分为2种:作业(Job)和转换(Transform)。

对于作业和转换,重点记住以下3点:

作业是步骤流,转换是数据流。这是作业和转换最大的区别;

作业的每一个步骤,必须等到前面的步骤都跑完了,后面的步骤才会执行;而转换会一次性把所有控件全部先启动(一个控件对应启动一个线程),然后数据流会从第一个控件开始,一条记录、一条记录地流向最后的控件;

如果想在作业中实现把上一个步骤(trans)的数据流传给下一个步骤(trans),可以通过在上一个步骤的最后一步使用“Copy rows to result”控件,在下一个步骤的开始第一个控件使用“Get rows from result”,这样可以实现跨步骤的数据传递。或者利用一个文件、数据库表进行中转;

关于步骤流和数据流

步骤就是完成工作的其中一个阶段,每个步骤都完成了一件独立的事情,步骤与步骤之间是独立的,但有先后顺序,步骤的组合可以形成一个工作流。比如我要上学这个工作,需要经过以下步骤:起床、洗刷、吃早餐、出门坐校车、下车去教室。每个步骤之间是有先后关系,按顺序组合之后,就完成了“去上学”这个工作;

数据流是指从输入控件(Input)到输出控件(Output)之间的数据流动,针对的是在数据流动过程中的每一行记录、每一列数据的处理 。比如增加一个字段、对字段A截取前3位得到新的字段B、把字段A、B 串联成新的字段C,按字段A、B组合,汇总字段C(SELECT C1, C2,SUM(C3) FROM 表 GROUP BY C1, C2);

作业的控件:

Mail -> Mail:用于发送一份邮件;

File Managemeng -> Create a File:用于创建一个文件;

Conditions -> File Exists:判断文件是否存在;

Scripting -> SQL:用于执行一段SQL

等等,以上控件都是完成了一项单独的工作,并不需要我们很细致地指定一条条记录如何处理。

转换的控件:

Input -> Text File Input:加载一个文本文件的记录,可以指定每个字段的类型、长度、分隔符等;

Output -> Text File Output:把记录写到一个文本文件,可以指定每个字段的类型、字符集、长度、分隔符、日期格式等;

Transform -> Concat Fields:把2个字段合并成一个新的字段;

Utility -> Write to log:把每一行记录的每个字段写到日志去;

等等,以上控件针对的都是每行记录、每个字段进行处理,必须要有输入 -> 输出,以输入控件开始,以输出控件结束。

作业和转换的嵌套关系

作业可以调另一个作业(用General->Job控件),强调的是父作业与子作业;

作业可以调一个转换(用General->Transformation控件),强调的是其中一个步骤;

转换可以调一个作业(用Flow->Job Executor控件),执行结果会变成数据流里的新的一列数据,强调的是执行结果;

转换可以调另一个转换(用Flow->Transformation Executor控件),执行结果会变成数据流里的新的一列数据,强调的是执行结果;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kettle软件 转换和作业_Kettle 作业(Job)和 转换(Transform) 的相关文章

随机推荐