KETTLE 开源ETL软件】【安装配置与使用说明】2015 年09 月修订记录目录修订记录 (2)1.安装与配置 (4)1.1ETL 与K ETTLE概述 (4)1.2K ETTLE的下载与安装 (7)1.2.1Windows下安装配置 ............................................ Kettle 81.2.2Linux 下安装配置.................................................. Kettle101.2.3Kettle 下安装..................................................... JDBC数据库驱动151.2.4下配置资源库连接 (15)1.2.5Kettle 下 Hadoop Plugin 插件配置 (17)2.KETTLE组件介绍与使用 (19)2.1K ETTLE SPOON使用 (19)2.1.1组件树介绍 (20)2.1.2使用示例.......................................................... 1 232.1.3使用示例.......................................................... 2 372.1.4使用Kettle 装载数据到..................................... HDFS482.1.5使用Kettle 装载数据到 (iv)522.1.6使用 Kettle 进行 hadoop的 mapreduce图形化开发 (52)2.2K ETTLE PAN的使用 (63)2.3K ETTLE KITECHEN的使用 (64)2.4C ARTE添加新的ETL执行引擎 (65)2.5E NCR加密工具 (68)1.安装与配置2015年下半年公司承接了江苏电信电子渠道中心数据分析项目,项目实现计划使用大数据应用与分析相关的开源组件与技术来实现;针对数据的抽取与清理,需要使用ETL工具;针对不同的数据源的数据整合需求,考虑到项目投资与开发成本,项目组初步计划采用开源ETL工具;ETL ( Extract ,Transformation ,Load)工具是构建数据仓库、进行数据整合工作所必须使用的工具。
目前市面有多种商业ETL 工具,如InformaticaPowerCenter,IBM Datastage 等。
目前市场上开源且实用的ETL 工具比较少,Kettle 就是为数不多的优秀开源ETL 工具之一。
经过比较与分析,选择了K ettle 作为本项目使用的ETL工具。
1.1E TL 与Kettle 概述ETL( Extract 、Transform 、Load,抽取、转换、装载) ,它是BI 项目中最常见、基础的数据加工行为。
构建数据仓库期间,各类业务系统的数据需要经过严格的ETL过程,才能够进入到数据仓库中,进而为后续的数据展现、分析提供支撑。
通常,由于企业的各业务系统数据口径不一致,比如不同应用存储性别的方式存在差异性、银行应用中不同币种的统一、零售应用中商品计价方式的统一等,使得BI 项目必须实施ETL工作,否则在含糊、不准确的数据上进行各种数据行为是徒劳的、没有意义的。
在另外一些场合,企业往往需要对TB级别的数据进行各种数据聚合、粗和精加工。
比如,在制作即席报表期间,用户希望这些报表的运行时间越短越好,然而如果报表使用到的数据粒度很细、数据量很大,则要控制好报表的运行时间估计够呛。
此时,我们往往需要对数据进行各种层次的聚合操作,比如可以将“日”级别存储的数据预先聚合成按周、月、季度的数据。
将来,运行报表的时间将得到有效控制,毕竟RDBMS能够更快速响应客户提交的SQL请求。
设计并运行良好的ETL 过程可以很好地完成上述任务。
Kettle 是一款国外开源的ETL 工具,纯Java 编写,可以在Window、Linux 、Unix等不同的操作系统平台上运行,数据抽取高效稳定。
Kettle 这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述用户想做什么,而不是用户想怎么做。
在Kettle ETL解决方案中,主要存在两种ETL工件:转换(Transformation )和作业(Job)。
ETL转换,专注于数据加工本身,比如装卸数操作、数据编码转换;ETL作业,专注于流程控制,比如执行若干ETL转换、将加工后的文件借助S SH2传输出去等。
通常,ETL作业会包含若干ETL转换,并控制它们的执行,而且作业会以一定周期执行,比如每周二执行、每隔 3 小时执行等。
Kettle 家族目前包括4个产品:SPOO、NPAN、CART、E KITCHEN。
SPOON允许你通过图形界面来设计ETL转换过程(Transformation )。
PAN允许你批量运行由Spoon设计的ETL转换(例如使用一个时间调度器)。
Pan 是一个后台执行的程序,没有图形界面。
CARTE类似于P entaho 管理控制台,它们都宿主在Jetty Web 容器中,但各自承担的使命不同。
Carte 用于远程执行Kettle ETL 转换和作业。
KITCHEN允许你批量使用由Chef设计的任务(例如使用一个时间调度器)。
KITCHEN也是一个后台运行的程序。
Kettle 基于Eclipse RCP 框架开发,针对运行环境只需要GUI图形用户界面和以上的JVM环境支持即可,Kettle 程序运行时典型demo显示截图如下:在上面SPOON程序中可以使用图元的形式完成用户自定义的transformation ,通过transformation 完成针对数据的基础转换,D emo如下截图所示:可以从Kettle 运行时日志,查看该transformation 转换有没有finished 、每个步骤的耗时、速度、平均每秒多少行、总共插入了多少记录数等。
1.2Kettle 的下载与安装截止到2015 年11 月,Kettle (Pentaho Data Integration) 软件的最新版本号为0-353 。
新版本的Kettle 软件被改名为Pentaho Data Integration (PDI) ,作为商业开源BI 套件Pentaho BIEE 中默认的ETL工具,可以在Pentaho 官方站点下载其最新的版本。
官方网站上Kettle 软件的下载链接会重定向到开源下载站点,如下图所示:图 Kettle 的下载上述 版本 Kettle 软件的 Download URL 下载链接为:http/ftp 下载工具下载;Linux 下可以使用wget/curl 等命令行方式1.2.1 Windows 下安装配置 Kett le 1、 检查 JDK 或者以上版本JDK 环境已经完成安装。
如果没有安装, 需要从 OracleJDK 二进制软件包并完成安装,并配置好 JAVA_HOME,欢迎界面如下图所示:CLASSPAT 等相关环境变量。
H2、 将下载完成的版本 Kettle软件 ZIP 包解压缩到 Windows 下任意目录,例如D:\Kettle3、 运行 Kettle ,在 Windows 下定位到 $KETTLE_HOM 批处理程序,双击运行 E/启动后,Spoon IDE的界面Demo 截图如下:1.2.2Linux 下安装配置Kettle1、安装JDK,版本要在及以上,建议安装JDK 在Oracle 官网上下载JDK二进制安装包,并安装rpm:rpm -ivhbin: chmod +x./tar :tar zxvf配置环境变量:#vi /etc/profile编辑加入以下内容#set java JDKJAVA_HOME=/usr/local/JRE_HOME=/usr/local/PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binCLASSPATH=$JAVA_HOME/lib/:$JAVA_HOME/lib/export JAVA_HOMEexport JRE_HOMEexport PATHexport CLASSPATH变更环境变量,检查安装是否成功:#source /etc/profilejava -version2、安装配置Kettle :下载kettle 并在服务器上解压赋予sh 执行权限chmod +x *.sh运行./home/kettle/显示图片中的内容即提示Kettle 程序在Linux 下安装成功。
执行,会报如下错误Linux 下需要安装图形化界面工具,RHEL/CentOS下需要安装gnome和GTK并启动X11服务:# startx ;并在Windows客户端PC上安装连接工具: ;如果Linux 端操作系统发行版为Ubuntu ,可以执行以下步骤使用Windows自带的远程桌面程序基于RDP协议访问Linux 的XWindow的GUI图形界面环境:#sudo apt-get install xrdp#sudo apt-get install vnc4server#sudo apt-get install xubuntu-desktop#echo "xfce4-session" >~/.xsession #sudo service xrdp restartWindows 下“运行”输入"mstsc"--> 回车--> 输入Ubuntu 主机的IP 地址-->选择"sesman-Xvnc"--> 输入" 用户名和密码"-这时候可能会提示如下错误:连接" >回车这时需要执行如下命令vi ~/.kettle/.spoonrc输入以下文字:ShowWelcomePageOnStartup=N保存,同时修改./kettle/.spoonrc 文件中的该参数。
./kettle/.spoonrc 此文件夹和文件是隐藏的。
通过ls -a 可以看到。
最后在运行./ 就可以正常打开kettle 的图形界面了。
在Linux X11 环境下运行Kettle 的主程序S poon的主窗口Main Window界面截图如下:1.2.3Kettle 下安装JDBC数据库驱动Kettle 默认不带Oracle 驱动,此时在运行时无法使用JDBC连接数据库;这个时候需要下载包;解压缩后将jdbc 目录下数据库JDBC驱动对应的jar 文件拷贝$KETTLE_HOME\data-integration\lib 目录下,问题即可解决。