美文网首页
kettle 简介

kettle 简介

作者: pilisiyang | 来源:发表于2022-12-27 16:03 被阅读0次

Kettle 简介

ETL(Extract-Transform-Load 的缩写,即数据抽取、转换、装载的过程),对于数据开发人员来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种 ETL 工具的使用,必不可少,这里我们要学习的 ETL 工具就是 Kettle。

Kettle 是什么

Kettle 是一款国外开源的 ETL 工具,对商业用户也没有限制,纯 Java 编写,可以在 Window、Linux、Unix 上运行,绿色无需安装,数据抽取高效稳定。Kettle 中文名称叫水壶,它允许管理来自不同数据库的数据,把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle 中有两种脚本文件,Transformation 和 Job, Transformation 完成针对数据的基础转换,Job 则完成整个工作流的控制。通过图形界面设计实现做什么业务,并在 Job 下的 start 模块,有一个定时功能,可以每日,每周等方式进行定时。

Kettle 的核心组件

名称 功能
Spoon 通过图形接口,允许你通过图形界面来设计 ETL 转换过程(Transformation)
Pan 运行转换的命令行工具
Kitchen 运行作业的命令行工具
Carte Carte 是一个轻量级别的 Web 容器,用于建立专用、远程的 ETL Server
  • 作业和转换可以在图形界面里执行,但这只适合在开发、测试和调试阶段。在开发完成后,需要部署到生产环境中 Spoon 就很少用到了,Kitchen 和 Pan 命令行工具用于实际的生产环境。
  • 部署生产阶段一般需要通过命令行执行,需要把命令行放到 Shell 脚本中,并定时调度这个脚本。
  • Kitchen 和 Pan 工具是 Kettle 的命令行执行程序,只是在 Kettle 执行引擎上的封装,它们只是解释命令行参数,调用并把这些参数传递给 Kettle 引擎。
  • Kitchen 和 Pan 在概念和用法上都非常相近,这两个命令的参数也基本是一样的。唯一不同的是 Kitchen 用于执行作业,Pan 用于执行转换。

Kettle 使用场景

Kettle的使用场景很多,不仅限于这些:

  • 在应用程序或数据库之间进行数据迁移;
  • 从数据库导出数据到文件;
  • 导入大规模数据到数据库;
  • 数据清洗;
  • 集成应用程序。

基础结构

结构说明图

Job(作业)

负责将设计好的Transformation组织在一起进而完成某一工作。

通常我们需要把一个大的任务分解成几个逻辑上隔离的Job,当这几个Job都完成了,也就说明这项任务完成了。

Transformation(转换)

定义对数据操作的容器,数据操作就是数据从输入到输出的一个过程。

可以理解为将一个或多个不同的数据源组装成一条数据流水线,然后最终输出到一个地方(文件、数据库等)。

比Job粒度更小一级的容器,我们将任务分解成Job,然后需要将Job分解成一个或多个Transformation,每个Transformation只完成一部分工作。

Step(步骤)

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

Job Entry(作业实体)

Job内部的执行单元,每一个Job Entry用于实现特定的功能,如:验证表是否存在,发送邮件等。

可以通过Job来执行另一个Job或者Transformation,也就是说Transformation和Job都可以作为Job Entry。

Data Stream(数据流)

反映数据在 Step 之间的流向,分为输入流和输出流:

  • Input Stream:是进入一个 Step 时行的堆栈;
  • Output Stream:是离开一个 Step 时行的堆栈。

Hop(节点连接)

用于在Transformation中连接Step,或者在Job中连接Job Entry,是一个数据流的图形化表示,实际上就是执行顺序的体现。

  1. Transformation-Hop:主要表示数据的流向,即从输入、过滤等转换操作,最后到输出。
    • 一个 Hop 代表两个 Step 之间的一个或多个数据流;
    • 一个 Hop 总是代表着一个步骤的输出流和一个步骤的输入流。
  2. Job-Hop:可设置执行条件:
    • 无条件执行;
    • 当上一个Job执行结果为True时执行;
    • 当上一个Job执行结果为False时执行。

一个 Hop 总是代表着两个 Job Entry 之间的连接,并且能够被原始的 Job Entry 设置,无条件地执行下一个 Job Entry,直到成功或者失败。

相关文章

网友评论

      本文标题:kettle 简介

      本文链接:https://www.haomeiwen.com/subject/zfqkfdtx.html