Kettle BI 数据部 Jim 2011年03月27日

Kettle 培训
BI 数据部 Jim
2011年03月27日
Kettle 培训内容




Kettle
Kettle
Kettle
Kettle
功能与产品介绍
控件介绍
案例演示
调度
Kettle介绍



Kettle 是一款开源的、元数据驱动的ETL工具集,是开源 ETL 工具
里功能比较强大的一个。
Kettle 是”Kettle E.T.T.L. Envirnonment”只取首字母的缩写,
这意味着它被设计
用来帮助你实现你的ETTL 需要:抽取、转换、装入和加载数据;翻
译成中文名称应该叫水壶,名字的起源正如该项目的主程序员MATT
在一个论坛里说的哪样:希望把各种数据放到一个壶里然后以一种指
定的格式流出。
Kettle 四大家族



Pantaho产品线
 Reporting、Data Mining、Analysis、Dashboards、
Data Integration
Kettle家族目前包括4个产品:
Spoon、Pan、Chef、Kitchen。
Chef—工作(job)设计工具 (GUI方式)
Kitchen—工作(job)执行器 (命令行方式)
Spoon—转换(transform)设计工具 (GUI方式)
Span—转换(transform)执行器 (命令行方式)
Kettle 四大家族



SPOON允许你通过图形界面来设计ETL转换过程(Transformation)。例如,从一个
SAP系统抽取数据,并把这些数据存储到一个文件里的转换任务如下:
PAN允许你批量运行由Spoon设计的ETL转换(例如使用时间调度器)。Pan是一个后台
执行的程序,没有图形界面。
CHEF允许你创建任务(JOB)。任务通过允许每个转换、任务、脚本等,更有利于自
动化更新数据仓库的复杂工作。任务通过允许每个转换、任务、脚本等。任务将会被
检查,看看是否正确运行了。(下面是一个chef的任务图)。
Kettle 四大家族


KITCHEN允许你批量使用由Chef设计的任务(例如使用一个时间调
度器)。KITCHEN是一个后台运行程序。
Job和Transformation的差别:Transformation专注于数据的ETL
,而Job的范围比较广,可以是Transformation,也可以是Mail、
SQL、Shell、FTP等,甚至可以是另外一个Job。
Kettle 的安装





要运行此工具你必须安装Sun 公司的JAVA 运行环境1.4 或
者更高版本,相关资源你可以到网络上搜索JDK 进行下载
绿色免安装,解压即可用。
在不同的平台上运行Spoon 所支持的脚本:
Spoon.bat: 在windows 平台运行Spoon。
Spoon.sh: 在Linux、Apple OSX、Solaris 平台运行Spoon。
Kettle转化功能介绍 1



Kettle 中有两种脚本文件,transformation (.ktr)和
job(.kjb),transformation 完成针对数据的基础转换,
job 则完成整个工作流的控制。
所有功能支持控件化,使用简单
支持多样化数据源类型:







基本的文本文件
Access、Excel、XML、Property文件格式
MDX查询语言、 Cube文件、Streaming XML数据流
自动产生空记录或者行
从XBase类型文件(DBF)读取数据
关系型数据库
获取系统信息如文件名称、系统时间等
Kettle转化功能介绍 2

特殊目标数据源支持



支持多种查询








把数据写入到Cube
把数据写入XML
调用数据库存储过程
基本的数据库查询
判断表以及列、操作系统文件是否存在
从URL接收查询
使用Web服务查询信息
使用数据流中的值作为参数来执行一个数据库查询
流查询:从转换中其他流里查询值
转换功能


值映射、分组、去重、拆分字段、行列转换
复制行
Kettle转化功能介绍3

支持的脚本





支持渐变维度更新
批量加载:






JS脚本
SQL脚本
正则表达式
Greenplum Bulk Loader
Oracle Bulk Loader
MSSQL Bulk Loader
MYSQL Bulk Loader
PostgreSQL Bulk Loader
支持分区表和集群
Kettle作业功能介绍 1

可以执行操作系统命令和操作:








Ping 主机
写日志
发送邮件
从POP Server获取邮件并保存在本地
比较文件夹、文件
创建、复制、移动、删除、压缩文件
从HTTP获取或者上传文件
操作延迟等待
Kettle作业功能介绍 2





判断文件是否存在
执行JavaScript、SQL、Shell脚本
支持安全FTP获取、上传文件
删除远程文件
支持SSH2上传下载
数据库连接类型和访问类型


支持的数据库连接类型,截图如下,
有些数据库类型需要完善jar包,以确保
数据库能够正确连接
访问类型





数据库访问类型支持如下几种:
JDBC
OCI
ODBC
JNDI
Kettle实施步骤





双击运行 kettle 文件夹下的
kettle 欢迎界面。
创建资料库(可省略)
创建数据库连接
创建转换
创建Jobs,进行流程化控制
Kettle 文件,出现
Kettle案例


案例描述:
把文本文件中的格式化数据导入到oracle
数据库的指定表中

打开Kettle 选择没有资料库
创建数据库连接

创建数据库连接

输入数据源连接名称,选择数据源类型和
访问方式

输入服务器主机名和数据库名称

输入数据表空间和索引表空间名称

输入用户名和密码

测试数据库连接

数据源建立成功
创建转换

右击转换,新建出现如下界面

从左侧输入栏目中选择文本文件输入控件,
拖拽到右侧工作空间中

从输出栏目拖拽表输出控件到左侧工作区

选中两个控件,在其中一个控件上右击,
选择新建节点连接

选择起始步骤

双击文本文件输入控件,进行编辑

文本文件“内容”标签编辑

点击获取字段按钮,可自动获取字段名称,
然后编辑相关属性,预览记录。

编辑输出表控件属性

然后点击绿色按钮,启动转换

保存转换

可以查看执行结果

可以加入执行SQL脚本
在核心对象中有很多控件可用来实
现数据的ETL功能。
创建作业

从左侧通用栏目中拖拽两个控件

双击Transformation 1进行编辑

保存jobs后执行任务
Kettle 调度


利用Kitchen工具实现作业的调用
Kitchen.bat /file:D:\job_name.kjb
/level:Basic
总结



Kettle的功能非常强大,数据抽取效率也
比较高,开源产品,可以进行第三方修
改,工具中的控件能够实现数据抽取的
大部分需求。
所有功能支持控件化,使用简单
Kettle目前还不是特别稳定,并且发现的
BUG也特别多