Kettle部署及使用
目录
文章目录
一、kettle概述
1、ETL介绍
- ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,它是构建数据仓库的重要环节,但其对象并不限于数据仓库。
2、kettle介绍
- Kettle是一款开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定
- Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制
- Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么
- Kettle是纯Java编写的ETL开源工具,建议安装 JDK1.8 及以上,7.0以后版本的 Kettle 不支持低版本 JDK
- 操作界面:图形化操作界面,同时也支持脚本编写开发
3、Kettle工程存储方式
(1)以XML形式存储
(2)以资源库方式存储(数据库资源库和文件资源库)
4、Kettle内置
目前包含五个产品:Spoon、Pan、Chef、Kithcen、Encr
- SPOON: 是一个图形用户界面,允许你通过图形界面来设计ETL转换过程(Transformation)和任务。
- PAN: 转换(trasform)执行器;允许你批量运行由Spoon设计的ETL转换 (如使用一个时间调度器)。Pan是一个后台执行 的程序,没有图形界面。
- CHEF: 允许你创建任务(Job)。 任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。 任务通过允许每个转换,任务,脚本等等。任务将会被检查,看看是否正确地运行了。
- KITHCEN: 作业(job)执行器;允许你批量使用由Chef设计的任务 (如使用一个时间调度器)。KITCHEN也是一个后台运 行的程序。
- ENCR: 用来加密连接数据库密码与集群时使用的密码
5、运行平台
-
服务器端支持:[Windows Server](https://baike.baidu.com/item/Windows Server/271508), CentOS, RHEL, Ubuntu
-
浏览器端支持:[Internet Explorer](https://baike.baidu.com/item/Internet Explorer/1537769), Chrome, Firefox, Safari, Edge
-
可以在本地运行,也可以连接远程机器运行
6、操作界面
- 图形化操作界面,同时也支持脚本编写开发
二、Kettle安装部署和使用
1、Kettle下载
- 下载地址1:https://mirrors.bit.edu.cn/pentaho/
- 下载地址2:[https://sourceforge.net/projects/pentaho/files/Data%20Integration/](https://sourceforge.net/projects/pentaho/files/Data Integration/)
- MySQL驱动下载地址1:https://www.aliyundrive.com/s/uiRJ7yBJDxy
- MySQL驱动下载地址2:https://downloads.mysql.com/archives/c-j/
2、配置JAVA环境变量
由于Kettle是使用Java语言编写的,所有Kettel的运行需要有Java环境,安装JDK,配置环境变量
- Windows jdk下载地址:https://www.aliyundrive.com/s/aqkXsspu3ua
- jdk8官网地址:https://www.oracle.com/java/technologies/downloads/#java8
- Linux jdk 下载地址:
3、 Windows下安装
1、安装jdk
-
可自行更改安装位置(要记住这个位置,后面配置环境变量的时候要用到)
(1)、安装jdk
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DMCuivK5-1639991026078)(https://obohe.com/i/2021/12/11/x60ra5.png)]
(2)、安装jre
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iG1HulJo-1639991026079)(https://obohe.com/i/2021/12/11/x71mza.png)]
(3)、安装完成
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DunCj3MW-1639991026080)(https://obohe.com/i/2021/12/11/x71vbe.png)]
2、配置环境变量
(1)、安装完JDK后配置环境变量 计算机→属性→高级系统设置→高级→环境变量
(2)、新建系统变量,命名为JAVA_HOME,变量h值为安装的jdk的位置
(3)、选中path点击编辑,添加输入以下内容“%JAVA_HOME%\bin;%Java_Home%\jre\bin;”
(4)、在系统变量中点击新建,变量名为CLASSPATH,变量值为:.;%Java_Home%\bin;%Java_Home%\lib\dt.jar;%Java_Home%\lib\tools.jar
(5)、新建之后点击确定
(6)、回到电脑桌面,按快捷键“Win+R”,输入“cmd”,检验环境是否配置成功,输入 java和javac,若出现以下结果说明配置成功
3、安装Kettle
- 将pdi-ce-8.2.0.0-342.zip直接解压文件到指定目录即可
- 添加MySQL连接驱动到lib目录
4、运行Kettle
- 直接双击spoon.bat即可运行Kettle,由于Kettle是纯JAVA编写的启动需要大内存,所以启动会比较慢
- Kettle有转换和作业两种运行方式,作业可以包含转换,转换的存储方式是ktr文件,作业的存储方式是job文件
5、转换
- 点击左上角新建-转换
- 点击左上角新建数据库连接
- 高级设置里面设置characterEncoding参数为utf8
- 双击表输入进入编辑
- 双击MySQL批量加载进入编辑
- MySQL批量加载只能在Linux中运行,可以将批量加载改为表输出
- 点击运行会先保存
6、作业
- 作业需要一个start一个success,可以插入脚本和转换
三、创建数据库资源库
- 之前,我们新建转换或者作业的时候,都是直接保存在本地,而如果我们是多人开发的话,除了使用SVN等版本控制软件,还可以使用Kettle的资源库,他会将转换、作业直接保存在数据库中,而且,连接资源库的话,我们就不需要每一次都新建数据库连接了
-
1、在MySQL中创建kettle数据库
mysql> create database kettle; Query OK, 1 row affected (0.01 sec)
-
2、点击右上角connect,选择Other Resporitory,点击Other Repositories
- 3、点击Database Repository
- 4、创建数据库连接
- 5、设置命令参数
- 6、填好之后,点击finish,会在指定的kettle库中创建很多表,至此数据库资源库创建完成
- 7、连接资源库
- 默认账号密码为admin
- 连接资源库之后新建的作业和转换都将保存在资源库中
- 转换保存在MySQL中kettle库中的R_TRANSFORMATION表,作业保存在R_JOB表
- 如果出现输入账号密码提示账号或密码错误说明中间操作有误,需要将MySQL数据库中kettle数据库删了重新创建,然后再重新创建资源库,如果kettle中的表和上图中kettle中的表数量一致说明创建资源库成功
四、 Linux下安装使用
1、单机
1、安装jdk
- (1)、卸载自带jdk
使用rpm -qa | grep jdk 或rpm -qa | grep java命令查询出自带的 jdk
使用命令rpm -e --nodeps 系统自带的jdk文件名删掉黄色框起来的四个,另外三个不要动
-
(2)、安装jdk
- 上传到服务器进行解压
- 配置环境变量
vim /etc/profile //添加这两行 export JAVA_HOME=/opt/jdk1.8.0_171 export PATH=$PATH:$JAVA_HOME/bin //添加完成后需要source一下使环境变量生效 source /etc/profile
2、安装kettle
-
(1)、直接将kettle压缩包上传到服务器解压
- 需要将mysql驱动上传到kettle目录下的lib目录
- 将Windows本地用户家目录下的隐藏目录上传到用户的家目录下(C:\Users\用户名\ .kettle )
-
运行数据库资源库中的转换:
在kettle目录下执行命令 ./pan.sh -rep=test -user=admin -pass=admin -trans=test -dir=/
-
运行资源库里的作业:
记得把作业里的转换变成资源库中的资源
记得把作业也变成资源库中的资源
在kettle目录下执行命令 ./kitchen.sh -rep=test -user=admin -pass=admin -job=test -dir=/
- 参数说明:
- -rep - 资源库名
- -user - 资源库用户名
- -pass – 资源库密码
- -job – job名
- -dir – job路径(当直接运行kjb文件的时候需要指定)
- -logfile – 日志目录
- 参数说明: