3.1 Kettle简介
3.1.1 Kettle 概述
Kettle是一款国外免费开源的轻量级ETL工具,是基于Java语言开发的,可以在Windows、Linux、UNIX系统上运行。
Kettle工具主要由4个组件组成,分别是Spoon、Pan、Kitchen及Carte组件,具体功能介绍如下。
> Spoon是Kettle集成开发环境,它会提供一个基于SWT的图形用户界面,主要用于构建ETL Jobs(作业)和Transformations(转换),也可用于执行或调试作业、转换,还可用于监控ETL操作的性能。
>Pan是以命令行的方法执行Spoon生成的Transformations程序,运行在后台,并且该组件没有图形化用户界面。
>Kitchen是以命令行的方法执行Spoon生成的Jobs程序,运行在后台,并且该组件没有图形化用户界面。
>Carte是Kettle中的一个重要组件,它是基于Tetty的轻量级HTTP服务器,运行在后台,主要用于远程监控HTTP执行Jobs和Transformations的进度。
3.1.2 Kettle的设计原则
1. 易于开发;
2. 避免自定义开发;
3. 所有功能都能通过用户界面完成;
4. 没有命名限制;
5. 透明;
6. 灵活的数据通道;
7. 只映射需要映射的字段。
3.2 Kettle的下载安装
1. 下载Kettle安装包
Kettle官网下载地址为 https://sourceforge.net/projects/pentaho/files/Data%20Integration/
2. 安装Kettle
3. 配置Kettle
4. 启动Kettle
双击Kettle安装目录下的Spoon.bat脚本,启动Kettle。
3.3 Kettle的基本概念
一个数据抽取过程主要包括创建一个作业,并且每个作业可以包括多个转换操作。
Kettle工具的执行分为两个层次,即转换和作业,这两个层次最主要的区别在于数据传递和执行方式。
3.3.1 转换
转换是ETL解决方案中重要的组成部分之一,主要用于数据的抽取、转换以及加载等操作,其本质是一组图形化的数据转换配置的逻辑结构。一个转换包括一个或多个步骤,如读取文件、过滤输出行、数据清洗或将数据加载到数据库中等步骤。转换中的步骤是通过调连接的。跳定义了一个单向通道,允许数据从一个步骤向另一个步骤流动。在Kettle中,数据的单位是行,数据流就是数据行从一个步骤到另一个步骤的移动。
例子:
图1 转换的例子
从图1中可看出,这个转换例子是实现从数据库中读取数据,并把数据写到文本文件中,该转换包含了步骤、跳、注释以及数据行。
1. 步骤
步骤是转换里面的基本组成部分,也可以称为控件。步骤以图表的方式展现。
一般地,每个步骤都会具有一些关键特性,具体如下:
> 每个步骤都必须有一个名字,并且这个名字在转换范围内唯一。
> 每个步骤都可以读、写数据行。需要注意的是,“生成记录”步骤除外,因为该步骤只用于写数据。
> 步骤将数据写到与之相连的一个或多个输出跳,在传送到跳的另一端的步骤。对于另一端对步骤来说,这个跳就是一个输入跳,步骤通过输入跳接收数据。
> 大多数的步骤都可以有多个输出跳,一个步骤的数据发送可以设置为轮流发送和复制发送。轮流发送是将数据行依次发送给每个输出跳。复制发送是将全部数据行发送给所有的输出跳。
> 在运行转换时,一个线程运行一个步骤和步骤的多份副本,所以步骤的线程几