第 1 页 共 69 页
开源 ETL 工具
PENTAHO KETTLE 使用说明
第 2 页 共 69 页
1.
1.
1.
1. KETTL 概述
KETTLE 是 ” KETTLE E.T.T.L. ENVIRNONMENT ” 只取首字母的缩写,这意味着它被设计
用来帮助你实现你的 ETTL 需要 : 抽取 、 转换 、 装入和加载数据 ; 翻译成中文名称应该叫水
壶 , 名字的起源正如该项目的主程序员 MATT 在一个论坛里说的哪样 : 希望把各种数据放到
一个壶里然后以一种指定的格式流出。
SPOON 是一个图形用户界面,它允许你运行转换或者任务,其中转换是用 PAN 工具来
运行,任务是用 KITCHEN 来运行。 PAN 是一个数据转换引擎,它可以执行很多功能,例如
:
从不同的数据源读取、操作和写入数据。 KITCHEN 是一个可以运行利用 XML 或数据资源库
描述的任务。通常任务是在规定的时间间隔内用批处理的模式自动运行。
KETTLE 是一款国外开源的 ETL 工具 , 纯 JAVA 编写 , 绿色无需安装 , 因此可以运行于多
个平台。其数据抽取高效稳定。 KETTLE 中有两种脚本文件, TRANSFORMATION 和 JOB ,
TRANSFORMATION 完成针对数据的基础转换, JOB 则完成整个工作流的控制。
2.
2.
2.
2. 下载和安装
要运行此工具你必须安装 SUN 公司的 JAVA 运行环境 1.4 或者更高版本 , 相关资源你
可以到网络上搜索 JDK 进行下载。设置 JAVA 运行环境变量, JAVA_HOME 和 PATH
KETTLE 的下载可以到 HTTP://KETTLE.PENTAHO.ORG/ 取得最新版本 , 下载后解压,就可
以直接运行。
3.
3.
3.
3. 定义
3.1.
3.1.
3.1.
3.1.
转换
1. VALUE : VALUES 是行的一部分 , 并且是包含以下类型的的数据 : STRINGS 、 FLOATING
POINT NUMBERS 、 UNLIMITED PRECISION BIGNUMBERS 、 INTEGERS 、 DATES 、 或者 BOOLEAN 。
2. ROW :一行包含 0 个或者多个 VALUES 。
3. OUTPUT STREAM :一个 OUTPUT STREAM 是离开一个步骤时的行的堆栈。
4. INPUT STREAM :一个 INPUT STREAM 是进入一个步骤时的行的堆栈。
第 3 页 共 69 页
5. HOP :一个 HOP 代表两个步骤之间的一个或者多个数据流。一个 HOP 总是代表着
一个步骤的输出流和一个步骤的输入流。
6. NOTE :一个 NOTE 是一个转换附加的文本注释信息。
3.2.
3.2.
3.2.
3.2.
任务
1. JOB ENTRY :一个 JOB ENTRY 是一个任务的一部分,它执行某些内容。
2. HOP : 一个 HOP 代表两个步骤之间的一个或者多个数据流。 一个 HOP 总是代表着两
个 JOB ENTRY 之间的连接,并且能够被原始的 JOB ENTRY 设置,无条件的执行下一个
JOB ENTRY ,直到执行成功或者失败。
3. NOTE :一个 NOTE 是一个任务附加的文本注释信息。
第 4 页 共 69 页
4.
4.
4.
4. 第一次使用
4.1.
4.1.
4.1.
4.1.
运行 KETTLE
设计程序
双击 SPOON.BAT 可以打开 KETTLE 的设计界面 。 在 LINUX 下运行 SPOON.SH 。 程序进入数据资
料库访问的用户名和密码输入窗口。如图:
第一次运行需要创建资料库。
第 5 页 共 69 页
4.2.
4.2.
4.2.
4.2.
设置资料库
1) 点击右上角的 “ 加号 ” 按钮,进入资料库类型选择创建窗口:
类型 1 :使用数据库来保存 ETL 元数据;
类型 2 :使用文件来保存 ETL 元数据;
2) 我们建议使用数据库来保存 ETL 元数据,方便管理。选择进入资料库信息输入窗口:
SELECT DATABASE CONNECTION: 选择数据库连接下拉框选择可用的数据库连接,如果没有,
就点击 NEW 按钮创建:
3) 设置数据库连接:
如图: