ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Kettle工作原理

2022-01-09 09:32:47  阅读:274  来源: 互联网

标签:步骤 Kettle 作业 工作 Job Hop 原理 执行 Transformation


核心概念

Job相关

Job

负责将Transformation组织在一起进而完成某一工作,通常我们需要把一个大的任务分解成几个逻辑上隔离的Job,当这几个Job都完成了,也就说明这项任务完成了。

Job Entry

Job Entry是Job内部的执行单元,每一个Job Entry用于实现特定的功能,如:验证表是否存在,发送邮件等。可以通过Job来执行另一个Job或者Transformation,也就是说Transformation和Job都可以作为Job Entry

Job Entry包含内容如下:

Job Hop

Job Hop是作业项之间的连接线。他定义了作业的执行路径。作业里每个作业项的不同运行结果决定了作业的不同执行路径。
Job Hop有如下三种执行情况:

  1. 无条件执行:不论上个作业项执行成功或者失败,下一个作业项都会执行。这是一种蓝色的连接线,上面有一个的标。
  2. 当运行结果为真时执行:当上一个作业项执行结果为真时,执行下一个作业项。通常在需要无错误执行的情况下使用。这是一条绿色的连接线,上面有对勾号的图标。
  3. 当运行结果为假时执行:当上一个作业项执行结果为假或者没有执行成功,执行一按一个作业项,这是一条红色的连接线,上面有红色停止的图标。

Transformation相关

Transformation

Transformation是对数据操作的容器,数据操作就是数据从输入到输出的一个过程,可以理解为比Job粒度更小一级的容器,我们将任务分解成Job,然后需要将Job分解成一个或多个Transformation,每个Transformation只完成一部分工作。

Step

Step是Transformation内部的最小单元,每一个Step完成一个特定的功能。

Transformation Hop

转换跳是步骤之间带箭头的连线,也是两个步骤之间的被称为行集的数据行缓存
转换跳的这种基于行集缓存的规则允许每一个步骤都是有一个独立的线程运行,这样并发程度最高。这一规则也允许数据以最小的消耗内存的数据流的方式处理。

Transformation Hop 的读写机制如下:

  1. 当行集满了,向行集写数据的步骤将停止写入,直到行集又有空间。
  2. 当行集空了,从行集读取的步骤停止读取,直到行集里又有可读的数据行。

Transformation Hop包含内容:

Job与Transformation对比

  • 定位
    • Transformation:主要用于数据的ETL。
    • Job:组织多项任务执行(转换、作业)。
  • 执行方式
    • Transformation:每个步骤都是单线程,当启动转换时,所有步骤的线程几乎并行执行
    • Job:所有的作业项是以某种自定义的顺序串行执行的。
  • 数据传递
    • Transformation:步骤之间的数据以数据流方式传递。所有的步骤都会从输入跳(Hop)中读取数据,并把处理过的数据写到输出跳(Hop),直到输入跳(Hop)里不再有数据就终止步骤的运行;
    • Job:作业项之间可以传递一个包含了数据行的结果对象。当一个作业项执行完成后,再传递结果对象给下一个作业项。
  • 执行顺序
    • Transformation:没有执行顺序,也就没有起点和终点。
    • Job:有执行顺序,可定义起点和终点。
  • 是否循环
    • Transformation:由于转换里的步骤依赖前一个步骤获取数据,因此转换里不能有循环
    • Job:作业里可以有循环

参考资料

  1. kettle工具原理:https://www.pianshen.com/article/21451697058/

标签:步骤,Kettle,作业,工作,Job,Hop,原理,执行,Transformation
来源: https://www.cnblogs.com/bettergoo/p/15780323.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有