Kettle作业(Job)和转换(Transform)
作业(Job)由⼀个个步骤组成,转换只是作业的其中⼀个步骤。
Kettle的控件分为2种:作业(Job)和转换(Transform)。
对于作业和转换,重点记住以下3点:
1. 作业是步骤流,转换是数据流。这是作业和转换最⼤的区别;
2. 作业的每⼀个步骤,必须等到前⾯的步骤都跑完了,后⾯的步骤才会执⾏;⽽转换会⼀次性把所有控件全部先启动(⼀个控件对应启
动⼀个线程),然后数据流会从第⼀个控件开始,⼀条记录、⼀条记录地流向最后的控件;
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控件),执⾏结果会变成数据流⾥的新的⼀列数据,强调的是执⾏结果;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。