kettle介绍、下载、安装

      Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

第一章 Kettle介绍

  1.1 Kettle的今生前世

    Kettle 是 PDI 以前的名称,PDI 的全称是Pentaho Data Integeration,Kettle 本意是水壶的意思,表达了数据流的含义。

    Kettle 的主作者是 Matt ,他在 2003 年就开始了这个项目,在 PDI 的代码里就可以看到最早的日期大概在2003年4月。 从版本2.2开始, Kettle 项目进入了开源领域,并遵守 LGPL 协议。

2006年 Kettle 加入了开源的 BI(Business Intelligence) 组织 Pentaho, 正式命名为PDI, 加入Pentaho 后Kettle 的发展越来越快了,并有越来越多的人开始关注它了。

    1.2 什么是Kettle

    Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。

    Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

    Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。

    Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

作为Pentaho的一个重要组成部分,现在在国内项目应用上逐渐增多。

    Kettle :Kettle is an acronym for “Kettle E.T.T.L. Environment”. This means it has been designed to help you with your ETTL needs: the Extraction, Transformation, Transportation and Loading of data

     Kettle 是”Kettle E.T.T.L. Envirnonment”只取首字母的缩写,这意味着它被设计用来帮助你实现你的ETTL 需要:抽取、转换、装入和加载数据;翻译成中文名称应该叫水壶,名字的起源正如该项目的主程序员MATT 在一个论坛里说的哪样:希望把各种数据放到一个壶里然后以一种指定的格式流出。

第二章 Kettle的安装和运行

    2.1 下载安装

    可以从 https://sourceforge.net/projects/pentaho/files/latest/download?source=files下载最新版的 Kettle软件 ,同时,Kettle 是绿色软件,下载后,解压到任意目录即可。 由于Kettle 是采用java 编写,因此需要在本地有JVM 的运行环境,我所使用的Kettle的最新版本是8.0 的。解压完成之后,【data-integration】目录下面的【spoon.bat】即可启动kettle 。在启动kettle 的时候,会弹出对话框,让用户选择建立一个资源库。

kettle介绍、下载、安装

Kettle界面

  资源库:是用来保存转换任务的, 它用以记录我们的操作步骤和相关的日志,转换,JOB 等信息。用户通过图形界面创建的的转换任务可以保存在资源库中。资源库可以是各种常见的数据库,用户通过用户名/ 密码来访问资源库中的资源,默认的用户名/ 密码是admin/admin. 资源库并不是必须的,如果没有资源库,用户还可以把转换任务保存在 xml 文件中。

    2.2 配置Kettle的环境变量

    (前提是配置好Java的环境变量,因为他是java编写,需要本地的JVM的运行环境)在系统的环境变量中添加KETTLE_HOME变量,目录指向kettle的安装目录:D:\kettle\data-integration(具体以安装路径为准)

        1.新建系统变量:KETTLE_HOME

        2.变量值: D:\kettle\data-integration(具体以安装路径为准,Kettle的解压路径,直到Kettle.exe所在目录)

        3.选择PATH编辑环境变量:

        4.在变量值后面追加 【%KETTLE_HOME%;】

 Kettle的基本概念

    3.1 作业(job

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

    1). Job Entry:一个Job Entry 是一个任务的一部分,它执行某些内容。

    2). Hop:一个Hop 代表两个步骤之间的一个或者多个数据流。一个Hop 总是代表着两个Job Entry 之间的连接,并且能够被原始的Job Entry 设置,无条件的执行下一个Job Entry,直到执行成功或者失败。

    3). Note:一个Note 是一个任务附加的文本注释信息

kettle介绍、下载、安装 

    3.2  转换(Transformation

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

    1). ValueValue 是行的一部分,并且是包含以下类型的的数据:Strings、floating point Numbers、unlimited precision BigNumbers、Integers、Dates、或者Boolean。

        2). Row:一行包含个或者多个Values。

        3). Output Stream:一个Output Stream 是离开一个步骤时的行的堆栈。

        4). Input Stream:一个Input Stream 是进入一个步骤时的行的堆栈。

        5). Step:转换的一个步骤,可以是一个Stream或是其他元素。

        6). Hop:一个Hop 代表两个步骤之间的一个或者多个数据流。一个Hop 总是代表着一个步骤的输出流和一个步骤的输入流。

        7).Note:一个Note 是一个转换附加的文本注释信息。