一:kettle的简介
1.Kettle概述
1) Kettle是国外免费的开源轻量级ETL工具,是基于Java语言开发的,在Windows.Linux,UNIX 系统上运行,且绿色不需安装,可用于各种数据库之间的连接。
四个组件组成,分别是Spoon,Pan,Kitchen以及Carte组件,具体功能如 下:
*Spoon为集成开发软件,用于构建作业和转换,执行或调试作业和转换,还可以用在监控 ETL操作性能。
*Pan以命令行形式执行Spoon生成的转换程序。
*Kitchen以命令行的方式执行Spoon生成的作业程序
*Carte是一个重要组件,是基于Jetty的轻量级HTTP服务器,主要用于监控HTTP执行作业和 转换的进度。
2.Kettle设计原则
易于开发,避免自定义开发,所有用户都可以通过用户界面完成,无命名限制,透明,灵活的数 据通道,只映射需要映射的字段.
二:kettle的下载安装
1、Kettle官网的下载地址为:http://sourceforge.net/projects/pentaho/files/Data%20Integration/, 在官网下载安装包。
2、解压文件,执行spoon.bat。
3、配置Kettle(在网上搜索即有详细的引导步骤)。
4、启动Kettle。
注意:绿色无需安装,只需要解压就好,无需最新版本.有时候最新版本可能会出现一些问题,
三:kettle的基本概念(作业和转换)
1. Kettle工具的执行分为两个层次,即转换和作业,这两个层次的主要区别在于数据传递和执行方式
2.kettle的概念模型
3.转换
数据抽取,转换和加载等等,其本质是一组图形化的数据转换配置逻辑结构。包括读取文件,过滤输出行,数据清洗或将数据加载到数据库中等步骤,转换中的步骤是通过跳连接的。
2)下图为Kettle转换示例:
步骤,跳, 注释以及数据行,具体介绍如下;
3)步骤:转换中的基本组成部分,也可称之为控件,以图标的方式呈现。
特性:a.每个步骤必须要有一个名字且这个名字在转换范围内唯一;
步骤通 过输入跳接收数据;
c.大多数步骤都有多个输出跳,一个步骤的数据发送可以设置为轮流发送和复制 发送;
d.在运行转换时,一个线程运行一个步骤和步骤的多个副本,所有步骤的线程几 乎同时运行,数据行就会连续流过步骤之间的跳。
2)跳:数据的通道,应用于连接两个步骤,实现将元数据从一个步骤传递到另一个步骤,支持分 发和复制等方式。
注:由于每个步骤都是单独的线程,当启动转换时,每个步骤都会创建各自的线程并接收和推送数据(这样并发程序最高),所以数据处理的顺序并不是按照节点连接箭头的顺序执行的。由于转换里的步骤都依赖于前一个步骤获取字段值,因此当创建新跳时,在转换里不能循环进行。
3)注释:以文本描述的方式呈现在作业中,只为增强流程的可读性,可放在任何一个位置。(注释并不参与程序的处理)
4)数据行:数据是以数据行形式沿着步骤流动。一个数据行是从零到多个字段的集合。Kettle中字段的数据类型一共有10种,具体见下图:
4.作业
1)作业的定义:一个作业包含一个或者多个作业项,并且这些作业项都是以某种顺序进行执行的。作业执行的顺序由作业项之间的跳(Job Hop)和每个作业项的执行结果决定。在工作栏中选择 文件->新建->作业->命令,下图实例
2)作业的核心对象:
a;作业的组成部分:作业项是作业的基本构成部分,也可称为控件。作业项类似于转换中的 步骤,也可以使用图标的方式进行图形化展示。(所有作业项目都是以串行方式执行的) 作业跳是作业项之间的连接线,它定义了作业的执行路径。作业里每个作业项的不同运行 结果决定了作业的不同执行路径,具体有:
b;无条件执行:不论上一个作业项执行成功还是执行失败,下一个作业项都会执行
c;当运行结果为“真”时则执行:当上一个作业项的执行结果为“真”时,执行下一个作业项。通 常需要在无错误执行的情况下使用)
d;当运行结果为“假”时则执行:当上一个作业项的执行结果为“假”或者没有执行成功执行时, 执行下一个作业项
3)多路径和回溯:
Kettle使用一种回溯算法执行作业里的所有作业项 并且作业项的执行结果(真/假)决定执行的路径。回潮算法: 假设执行到一条路径的某个 节点时,,依次执行这个节点的所有子路径,直到没有可执行的子路径,就返 回该节点的上一个节点,如此反复。
作业项结果:
作业项的执行结果不仅决定了作业的执行路径,还向下一个作业项传递了一个结果对象,结果对象包含一组数据行、一组文件名、行数(读、写、输人、输出、更新、删除、拒绝的行数)、错误数(转换中的错误数)以及脚本作业项的退出状态。
四:kettle的基本功能
1.转换管理
主要包括输入,输出,转换,应用,流程,脚本,查询,连接,检验,作业,映射,批量加载等 功能。转换功能常用控件如下图所示:
2.作业管理
主要包括通用,邮件,文件管理,条件,脚本,批量加载等。下图描述Kettle作业常用功能的控件:
3 数据库连接
数据库种类多,因此Kettle工具的数据库连接窗口包含多种数据库类型