Kettle的安装和使用 | 您所在的位置:网站首页 › kettle-manager › Kettle的安装和使用 |
![]() Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。 Kettle是“Kettle E.T.T.L. Envirnonment“只取首字母的缩写,这意味着它被设计用来帮助你实现你的 ETTL 需要:抽取、转换、装入和加载数据;翻译成中文名称应该叫水壶,名字的起源是开发者希望把各种数据放到一个壶里然后以一种指定的格式流出。 Spoon 是一个图形用户界面,它允许你运行转换或者任务,其中转换是用 Pan 工具来运行,任务是用 Kitchen 来运行。Pan 是一个数据转换引擎,它可以执行很多功能,例如:从不同的数据源读取、操作和写入数据。Kitchen 是一个可以运行利用 XML 或数据资源库描述的任务。通常任务是在规定的时间间隔内用批处理的模式自动运行。 注:在正式进入本教程前,请确保你的计算机已经配置好java环境。 下载并安装Kettle1.下载Kettle安装包
登陆ubuntu系统,用ubuntu系统的浏览器打开Kettle官网下载最新稳定版kettle压缩包,这里我们下载7.1版本。点击下图中的链接开始下载(压缩包有接近900M),下载完成后文件默认保存在路径~/Downloads或~/下载。
3.解压zip包 利用下列命令解压下载好的zip包,同时指定解压后的文件保存路径为/usr/local/kettle。 unzip ~/Downloads/pdi-ce-7.1.0.0-12.zip -d /usr/local/kettle #解压zip包,并将解压后的文件保存到/usr/local/kettle4.复制MySQL驱动JAR包 后续需要连接MySQL数据库,因此需要相关的驱动JAR包。首先从官网下载MySQL驱动JAR包(两种压缩格式均可,笔者下载的是zip压缩格式),下载完成默认保存在目录~/Downloads或~/下载,利用下列命令将其解压,并将jar包复制到/usr/local/kettle/data-integration/lib cd ~/Downloads unzip mysql-connector-java-5.1.40.zip #解压到当前文件夹 cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /usr/local/kettle/data-integration/lib #复制mysql驱动包到/usr/local/kettle/data-integration/lib5.启动kettle kettle的安装目录/usr/local/kettle下的文件夹data-integration里包含两个kettle工具启动的脚本命令,spoon.bat和spoon.sh,其中spoon.bat适用于windows系统,通过双击.bat文件来启动图形化界面,而spoon.sh适用于Linux系统,通过在终端执行下列命令来启动图形化界面。 cd /usr/local/kettle/data-integration ./spoon.sh #执行脚本截图如下:
启动之后,可能会弹框提示:用户缺少某某包,可能会导致程序无法正常使用。如果出现该提示,先关闭图形化界面,输入下列命令逐一安装这些包。 #示例:缺少libwebkitgtk-1.0包 sudo apt-get install libwebkitgtk-1.0安装完成后,再次启动kettle工具即可。 使用Kettle这里我们通过一个案例来了解kettle的使用,选取MySQL作为数据源。 案例背景找出不同性别,不同年龄,不同职业的用户对于哪类产品比较感兴趣,为建立数据仓库,进行数据挖掘和OLAP分析做准备。根据客户user,订单orders,产品表product中的数据,利用kettle处理生成对应的数据文件,并且可以用job来调用整个流程。 数据准备1.启动MySQL service mysql start #启动mysql服务,默认mysql服务是随开机启动的,此步可省 mysql -u root -p2.创建数据库kettle mysql> create database kettle;3.创建user,product,orders表,并插入测试数据 注:下列命令是在mysql shell中执行,每段sql语句(除#号注释行以外)都可以整段复制粘贴执行,无须逐句复制。 use kettle; #------------创建表user DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `userid` int(10) DEFAULT NULL COMMENT '用户ID', `username` varchar(10) DEFAULT NULL COMMENT '用户姓名', `usersex` varchar(1) DEFAULT NULL COMMENT '性别', `userposition` varchar(20) DEFAULT NULL COMMENT '职业', `userage` int(3) DEFAULT NULL COMMENT '年龄' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; #------------插入数据 INSERT INTO `user` VALUES ('1', '陈XX', '女', '学生', '20'); INSERT INTO `user` VALUES ('2', '王XX', '男', '工程师', '30'); INSERT INTO `user` VALUES ('3', '李XX', '女', '医生', '40'); #------------创建表product DROP TABLE IF EXISTS `product`; CREATE TABLE `product` ( `productid` int(10) DEFAULT NULL COMMENT '产品ID', `productname` varchar(20) DEFAULT NULL COMMENT '产品名称' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; #------------插入数据 INSERT INTO `product` VALUES ('1', '手机'); INSERT INTO `product` VALUES ('2', '电脑'); INSERT INTO `product` VALUES ('3', '水杯'); #------------创建表orders DROP TABLE IF EXISTS `orders`; CREATE TABLE `orders` ( `orderid` int(10) DEFAULT NULL COMMENT '订单ID', `userid` int(10) DEFAULT NULL COMMENT '用户ID', `productid` int(10) DEFAULT NULL COMMENT '产品ID', `buytime` datetime DEFAULT NULL COMMENT '购买时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; #------------插入数据 INSERT INTO `orders` VALUES ('1', '1', '1', '2017-06-01 15:02:02'); INSERT INTO `orders` VALUES ('2', '1', '2', '2017-06-02 15:02:22'); INSERT INTO `orders` VALUES ('3', '1', '3', '2017-06-02 15:02:36'); INSERT INTO `orders` VALUES ('4', '2', '1', '2017-06-06 15:02:52'); INSERT INTO `orders` VALUES ('5', '3', '2', '2017-06-09 16:55:24'); INSERT INTO `orders` VALUES ('6', '2', '2', '2017-07-14 14:01:36'); 建立并执行作业首先利用下列命令启动kettle cd /usr/local/kettle/data-integration ./spoon.sh接下来,开始使用kettle完成案例内容:将MySQL数据源里的三张表用户指定的信息输入到kettle,通过JOB执行转换,并输出一个文本文件。
1.建立作业JOB
1.1 新建转换并保存转换文件
右键-新建转换。
|
CopyRight 2018-2019 实验室设备网 版权所有 |