Kettle入门(三)

对应概念

步骤(Step,又称为“控件”)

  • 是【转换】里的基本的组成部分,包括输入、输出、脚本等等。

  • 步骤的关键特性

    • 每个步骤有且仅有一个名字,且这个名字在同一个【转换】范围内是唯一的,即在同一个转换中不能出现同名的步骤。

    • 每个步骤都会读、写数据行(【生成记录】除外,它的作用是写数据)

    • 步骤将数据写到与之相连的一个或多个【跳】,再通过【跳】将数据传到另一个步骤

    • 大多数的步骤都可以有多个【跳】

    • 一个步骤的数据发送可以被设置为“分发”或“复制”

      • 分发是目标步骤轮流接收记录

        • 即多个步骤均分数据
      • 复制是所有的记录被同时发送到所有的目标步骤

步骤 跳(Hop)

  • 定义了一个数据流通道,即数据由一个【步骤】流(【跳】)向下一个【步骤】
  • 是【步骤】之间带箭头的连线
  • 跳实际上是两个【步骤】之间的被称为【行集】的数据行缓存

元数据

  • 每个步骤在输出【行】时都有对字段的描述,这种描述就是【行】的元数据

  • 通常包含

    • 名称

      • 数据行里的字段名是唯一的
    • 数据类型

      • 字段的数据类型

      • 种类

        • String

          • 字符类型数据
        • Number

          • 双精度浮点数
        • Integer

          • 带符号长整型
        • BigNumber

          • 任意精度数据
        • Date

          • 带毫秒精度的日期时间值
        • Boolean

          • 取值为true和false的布尔值
        • Binary

          • 二进制字段,可以包含图像、声音、视频及其他类型的二进制数据
    • 格式

      • 数据显示的方式
    • 长度

      • 字符串的长度或者BigNumber类型的长度
    • 精度

      • BigNumber数据类型的十进制精度
    • 货币符号

    • 小数点符号

      • 十进制数据的小数点格式
    • 分组符号

      • 数值类型数据的分组符号

行(Row)

  • 在kettle中最小单位

行集(RowSet)

  • 数据流中流动的就是缓存的【行集】

  • 行集的大小可以在转换的设置里定义

    • 1.在转换窗口空白处点击鼠标右键
    • 2.选择【转换属性】
    • 3.打开【杂项】
    • 4.更改【记录集合里的记录数】
    • 此项影响的是缓存区最大的流量,默认是10000
  • 当行集满了,向行集写数据的步骤将停止写入,直到行集里又有了空间;

  • 当行集空了,从行集读取数据的步骤停止读取,直到行集里又有可读的数据行。

转换(transaformation)

  • 负责数据的输入、转换、校验、输出等工作

  • Kettle中使用【转换】完成数据ETL全部工作

  • 【转换】有多个【步骤】组成,如文本文件输入、过滤输出行、执行SQL脚本等

    • 各【步骤】由【跳】来链接。
  • 不能定义一个执行顺序,因为所有【步骤】都是以“并发”方式执行

    • 当【转换】启动后,所有【步骤】都同时启动,从他们的输入【跳】中读取数据,并把处理过的数据写到输出【跳】,直到输入【跳】中不再有数据就中止步骤的运行。当所有【步骤】都中止了,整个【转换】就中止了。

作业(Job)

  • 因为【转换】以“并行”方式执行,所以必须存在一个“串行”的调度工具来执行转换,这就是【作业】

  • 负责定义一个完成整个工作流的控制,比如将【转换】的结果发送邮件给相关人员。

  • 一个【作业】包含一个或多个【作业项】,这些【作业项】以某种顺序来执行

    • 【作业】执行顺序由【作业项】之间的【跳】和每个【作业项】的执行结果来决定

作业 跳(Hop)

  • 是【作业项】之间的连接线,定义了作业的执行路径

  • 每个【作业项】的不同的运行结果决定了【作业】的不同执行路径

  • 作业跳分为三种情况

    • 无条件执行

      • 不论上一个【作业项】执行成功还是失败,下一个【作业项】都会执行

      • 表现形式为带锁的蓝色连接线

    • 当运行结果为真时执行

      • 当上一个【作业项】的执行结果为真时,执行下一个【作业项】,通常在需要无错误执行的情况下使用

      • 表现形式为带对钩的绿色连接线

    • 当运行结果为假时执行

      • 当上一个【作业项】的执行结果为假或没有成功执行时时,执行下一个【作业项】

      • 表现形式为带叉号的红色连接线

  • 在作业跳的标志上点击便可对其状态进行切换

作业项

  • 【作业】的基本构成部分,如同【转换】的步骤

  • 【作业项】之间是步骤流,【转换步骤】之间是数据流

  • 【转换】启动后所有步骤一起并行启动,【作业项】是严格按照执行顺序启动,一个【作业项】执行完后再执行下一个

  • 在【作业项】之间可以传递一个【结果对象】

  • 因为【作业】顺序执行【作业项】,所以必须通过“开始”定义一个【起点】

    • 一个作业只能定一个开始作业项

结果对象(result object)

  • 包含了数据行,但是它们不是以数据流的方式来传递,而是等一个【作业项】执行完成后在传递给下一个【作业项】Kettle入门(三)
上一篇:02使用Kettle连接Oracle


下一篇:多因子回归检验中的NeweyWest整