Kettle安装与使用

news2024/11/15 18:31:38

一、Kettle简介

  • Kettle最早是一个开源的ETL(Extract-Transform-Load的缩写)工具,全称为KDE Extraction, Transportation, Transformation and Loading Environment。后来Kettle重命名为Pentaho Data Integration 。
  • 它由Java开发,支持跨平台运行,其特性包括:支持100%无编码、拖拽方式开发ETL数据管道;可对接包括传统数据库、文件、大数据平台、接口、流数据等数据源;支持ETL数据管道加入机器学习算法。
  • Kettle是一个实现ETL开发的一款开发工具,Spoon是Kettle工具提供的图形化界面。

1.1、主要功能

Pentaho Data Integration作为一个端对端的数据集成平台,可以对多种数据源进行抽取(Extraction)、加载(Loading)、数据落湖(Data Lake Injection)、对数据进行各种清洗(Cleasing)、转换(Transformation)、混合(Blending),并支持多维联机分析处理(OLAP)和数据挖掘(Data mining)。

1.2、运行环境

Pentaho Data Integration服务器端支持:Windows Server, CentOS, RHEL, Ubuntu

Pentaho Data Integration开发客户端(Spoon)支持:Windows, Ubuntu Desktop, MacOS

Pentaho User Console(浏览器端)支持:Internet Explorer, Chrome, Firefox,

Safari, Edge

Kettle安装

2.1、安装JDK

链接:百度云盘下载链接:百度网盘 请输入提取码

提取码:e5xp

下载后解压文件即可。

2.2、下载地址

Kettle是一款免安装软件,下载后即可直接运行。下载地址:Kettle官网http://www.kettle.org.cn/download

官网的下载速度比较慢,大家也可以从我分享的百度云下载

链接:百度云盘下载链接:https://pan.baidu.com/s/1gxI3PmuxjlnMx4aN1mROug

提取码:lxyb

下载后解压文件即可。

2.2、运行Kettle

  • 因为Kettle是纯java编写,所以启动前要先预装JDK并配置环境变量。
  • Windows下双击Spoon.bat文件运行Kettle,打开spoon图形工具。
  • 在Linux、AppleOSX、Solaris平台上,双击Spoon.sh运行。

当出现下图所示,则说明启动成功。

2.3、导入数据库驱动jar包

看你需要连接什么数据库,就将数据库的驱动jar包放到xxx\pdi-ce-7.1.0.0-12\data-integration\lib目录下,重启spoon即可。

Oracle/Mysql驱动下载链接:

链接:https://pan.baidu.com/s/15PafokxwSyFQtdMQuLKHOg

提取码:q2m4

三、Kettle使用

3.1、配置资源库与数据库

  • 现在让我们重新双击Spoon.bat,运行Kettle工具。
  • 点击右上角的connect标志,出现弹窗(如下图),点击Other Repositories。

  • 在新的弹窗中选择Database Repository选项,点击Get Started。

  • 输入资源库名称(自定义),点击Database Connection创建数据库连接。

  • 点击创建新的数据库连接。

  • 这里左侧有5种连接方式,按自己需求进行选择,默认选一般;数据库连接名称(自定义);数据类型,什么数据库就选什么,我这里是连接Oracle数据,所以选择Oracle;
  • 连接方式,默认选第一个;最后再将你的数据库连接信息(IP,端口,库名称,用户名和密码)填写上就OK。

填好后,点击测试按钮,出现如下图的弹窗即连接成功,然后点击确定按钮。

  • 可以看到刚刚连接的数据库sourceDB,这里我是创建两个数据源,通过点击新增按钮可以创建多个数据源连接。
  • 选中数据源,即可对其进行编辑,删除操作。
  • 最后点击Back返回。

点击Finish按钮,即可。

创建成功,选中Connect Now。

  • 进入登录页面,默认是admin用户,密码也是admin,启动后可以修改用户密码或添加其他用户。

注意事项:这里在配置数据源时,虽然成功了,但是在后面创建作业选择数据库时,可能出现刚刚配置的数据库不见了,可以在创建作业后,再重新配置一下数据库(如下图)。具体原因还不清楚

3.2、修改、添加用户信息

点击工具–>资源库–>探索资源按钮,或者直接点击下图红色框中的图标。

选择安全按钮,即可新增、编辑、删除用户信息。

好啦,以上就是Kettle的安装配置教程

1.1 什么是kettle

Kettle是一款开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。

1.2 Kettle核心知识点

1.2.1 Kettle工程存储方式

1) 以XML形式存储

2) 以资源库方式存储(数据库资源库和文件资源库)

1.2.2 Kettle的两种设计

简述:Transformation(转换):完成针对数据的基础转换。

      Job(作业):完成整个工作流的控制。

区别:(1)作业是步骤流,转换是数据流,这是作业和转换的最大区别

           (2)作业的每一个步骤,必须等到前面的步骤都跑完了,后面的步骤才会执行;而转换会一次性把所有控件全部先启动(一个空间对应启动一个线程),然后数据流会从第一个控件开始,一条记录,一条记录地流向最后的控件。

1.2.3 Kettle的组成

勺子(spoon.bat/spoon.sh):是一个图形化的界面,可以让我们用图形化的方式开发转换和作业。Windows选择spoon.bat;Linux选择spoon.sh
煎锅(pan.bat/pan.sh):利用pan可以用命令行的形式调用Trans
厨房(kitchen.bat/kitchen.sh):利用kitchen可以使用命令调用Job
菜单(carte.bat/carte.sh):carte是一个轻量级的web容器,用于建立专用、远程的ETL Server
1.3 kettle特点

免费开源:基于Java的免费开源的软件,对商业用户也没有限制

易配置:可以在window、Linux、unix上运行,绿色无需安装,数据抽取高效稳定

不同数据库:ETL工具集,它允许你管理来自不同数据库的数据

两种脚本文件:transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制

图形化界面设计:通过图形化设计实现做什么业务,无需写代码去实现

定时功能:在job下的start模块,有一个定时功能,可以每日、每周等方式进行定时。

第2章 kettle安装部署和使用
2.1 kettle安装地址

官网地址

Home - Hitachi Vantara

下载地址

https://sourceforge.net/projects/pentaho/files/Data%20Integration/

kettle各版本国内镜像下载地址:http://mirror.bit.edu.cn/pentaho/(下载速度相对快一些)

2.2 Windows下安装使用

2.2.1 概述

在实际企业开发中,都是在本地环境下进行kettle的job和Transformation开发的,可以在本地运行,也可以连接远程机器运行

2.2.2 安装

1) 安装jdk

2) 下载kettle压缩包,因kettle为绿色软件,解压缩到任意本地路径即可

3) 双击Spoon.bat,启动图形化界面工具,就可以直接使用了

2.2.3 案例

1) 案例一 把stu1的数据按id同步到stu2,stu2有相同id则更新数据

(1)在mysql中创建两张表

mysql> create database kettle;

mysql> use kettle;

mysql> create table stu1(id int,name varchar(20),age int);

mysql> create table stu2(id int,name varchar(20));

(2)往两张表中插入一些数据

mysql> insert into stu1 values(1001,'zhangsan',20),(1002,'lisi',18), (1003,'wangwu',23);

mysql> insert into stu2 values(1001,'wukong');  

 (3)在kettle中新建转换

(4)分别在输入和输出中拉出表输入和插入/更新

(5)双击表输入对象,填写相关配置,测试是否成功

(6)双击 更新/插入对象,填写相关配置

编辑映射,添加需要的字段,因为表stu2中没有age,所以不需要Add

(7)保存转换,启动运行,去mysql表查看结果

注意:如果需要连接mysql数据库,需要要先将mysql的连接驱动包复制到kettle的根目录下的lib目录中,否则会报错找不到驱动。

2) 案例2:使用作业执行上述转换,并且额外在表stu2中添加一条数据

(1)新建一个作业

(2) 按图示拉取组件

(3)双击Start编辑Start

(4)双击转换,选择案例1保存的文件

(5)双击SQL,编辑SQL语句

(6)保存执行

运行之前,查看数据:

运行之后查看结果:会发现除了刚才我们写的,insert语句之外,stu1表中的id为1004的也插入到stu2中了,因为我们执行了stu1tostu2.ktr转换。

注:转换和作业的后缀不同

3)案例3:将hive表的数据输出到hdfs

(1)因为涉及到hive和hbase的读写,需要修改相关配置文件。

修改解压目录下的data-integration\plugins\pentaho-big-data-plugin下的plugin.properties,设置active.hadoop.configuration=hdp26,并将如下配置文件从集群上拷贝到data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp26下

注意:以上操作完,需要重启kettle才能生效

(2)启动hdfs,yarn,zookeeper,hbase集群的所有进程,启动hiveserver2服务

[root@node4 hadoop-2.6.4]# sbin/start-dfs.sh

[root@node4 hadoop-2.6.4]# sbin/start-yarn.sh

三台服务器分别开启HBase前启动Zookeeper

[root@node4 hadoop-2.6.4]# zkServer.sh start

[root@node5 hadoop-2.6.4]# zkServer.sh start

[root@node6 hadoop-2.6.4]# zkServer.sh start

开启hbase

[root@node4 hbase-1.2.3]# bin/start-hbase.sh

开启hive2

[root@node4 ~]# hiveserver2

(3)进入beeline,查看10000端口开启情况

[root@node4 ~]# beeline(回车)

Beeline version 2.1.0 by Apache Hive

beeline> !connect jdbc:hive2://node4:10000

Connecting to jdbc:hive2://node4:10000

Enter username for jdbc:hive2://node4:10000: root(输入用户名,回车)

Enter password for jdbc:hive2://node4:10000: ******(输入密码,回车)

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/opt/module/hive/apache-hive-2.1.0-bin/lib/hive-jdbc-2.1.0-standalone.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/opt/module/hadoop/hadoop-2.6.4/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]

Connected to: Apache Hive (version 2.1.0)

Driver: Hive JDBC (version 2.1.0)

20/05/23 20:05:58 [main]: WARN jdbc.HiveConnection: Request to set autoCommit to false; Hive does not support autoCommit=false.

Transaction isolation: TRANSACTION_REPEATABLE_READ

0: jdbc:hive2://node4:10000>(到了这里说明成功开启10000端口)

(4)创建两张表dept和emp

CREATE TABLE dept(deptno int, dname string,loc string)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\t';

CREATE TABLE emp(

empno int,

ename string,

job string,

mgr int,

hiredate string,

sal double,

comm int,

deptno int)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\t';

(5)插入数据

insert into dept values(10,'accounting','NEW YORK'),(20,'RESEARCH','DALLAS'),(30,'SALES','CHICAGO'),(40,'OPERATIONS','BOSTON');

insert into emp values

(7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20),

(7499,'ALLEN','SALESMAN',7698,'1980-12-17',1600,300,30),

(7521,'WARD','SALESMAN',7698,'1980-12-17',1250,500,30),

(7566,'JONES','MANAGER',7839,'1980-12-17',2975,NULL,20);

(6)按下图建立流程图

(7)设置表输入,连接hive

表输入1

表输入2

(8)设置排序属性

(9)设置连接属性

(10)设置字段选择

“选择和修改”、“元数据”什么都不操作即可,只操作“移除”。如果操作了“元数据”,那么要注意和“移除”比较一下,字段是否一致,不然会报错。

(11)设置文件输出

跟前端页面一致

(12)保存并运行查看hdfs

我们下载下来看一下:

4)案例4:读取hdfs文件并将sal大于1000的数据保存到hbase中

(1) 在HBase中创建一张表用于存放数据

[root@node4 ~]# hbase shell

hbase(main):002:0> create 'people','info'

(2)按下图建立流程图

(3)设置文件输入,连接hdfs

(4)设置过滤记录

(5)设置HBase output

注意:若报错没有权限往hdfs写文件,在Spoon.bat中第119行添加参数

"-DHADOOP_USER_NAME=node4" "-Dfile.encoding=UTF-8"

(6) 保持并运行,查看hbase

2.3 创建资源库

2.3.1 数据库资源库

数据库资源库是将作业和转换相关的信息存储在数据库中,执行的时候直接去数据库读取信息,很容易跨平台使用

1)点击右上角connect,选择Other Resporitory

2) 选择Database Repository

3) 建立新连接

4) 填好之后,点击finish,会在指定的库中创建很多表,至此数据库资源库创建完成

5) 连接资源库

默认账号密码为admin

6) 将之前做过的转换导入资源库

(1)选择从xml文件导入

(2)随便选择一个转换

(3)点击保存,选择存储位置及文件名

(4)打开资源库查看保存结果

2.3.2 文件资源库

将作业和转换相关的信息存储在指定的目录中,其实和XML的方式一样

创建方式跟创建数据库资源库步骤类似,只是不需要用户密码就可以访问,跨

平台使用比较麻烦

1)选择connect

2)点击add后点击Other Repositories

3)选择File Repository

4)填写信息


————————————————
版权声明:本文为CSDN博主「AllenGd」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Allenzyg/article/details/106308363

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/488083.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构学习记录——堆的删除(思路图解、代码实现、逐段解析)

目录 堆的删除(最大堆) 思路 代码 解析 堆的删除(最大堆) 思路 代码 ElementType DeleteMax( MaxHeap H ) { /* 从最大堆H中取出键值为最大的元素,并删除一个结点 */int Parent, Child;ElementType MaxItem, X…

戴尔Alienware m18r1原厂win11中文系统 带F12 Support Assist OS Recovery恢复功能

戴尔Alienware m18r1原厂win11中文系统 带F12 Support Assist OS Recovery一键恢复功能 恢复各机型预装系统,带所有dell主题壁纸、dell软件驱动、带戴尔SupportAssist OS Recovery恢复功能,一次性恢复成新机状态,并且以后不用重装系统&#…

手把手教你学习IEC104协议和编程实现 十三-写定值

直接进入主题,要想写入定值,首先要确定写入的是那个定值区,毕竟按照iec104的规定,定值区有8个为0~7,那么就首先涉及到了,切换定值区的过程,执行过程如下: 切换定值区 我们看到,TI=200=0xC8h 我们先设计一个按钮,用于切换定值区。如下图: 在这个按钮的相应的消息上…

【Docker_image_source】docker设置国内镜像源

关于Docker镜像源的设置 国内加速地址 1.Docker中国区官方镜像 https://registry.docker-cn.com 2.网易 http://hub-mirror.c.163.com 3.ustc https://docker.mirrors.ustc.edu.cn 4.中国科技大学 https://docker.mirrors.ustc.edu.cn 5.阿里云容器 生成自己的加速地址 登录&am…

升级企业数智化底座 用友iuap拉满长期主义

本文转自 深度 我们普遍认为,人类社会经历了工业革命、电气革命,现在正奔赴从信息革命到智能革命的道路上,这一过程迫切且不可逆。 因此,《“十四五”数字经济发展规划》指出,以数字技术与实体经济深度融合为主线&a…

JavaScript:数组---双指针法

文章目录 双指针法27.移除元素为什么返回值是整数,但输出的答案是数组?双指针法 977.有序数组的平方暴力法:先平方再排序双指针法 总结双指针 双指针法 27.移除元素 为什么返回值是整数,但输出的答案是数组? 双指针法…

阿里工作7年,肝到P8就剩这份学习笔记了,已助朋友拿到20个Offer

在阿里工作了7年,工作压力大,节奏快,但是从技术上确实得到了成长,尤其是当你维护与大促相关的系统的时候,熬到P7也费了不少心思,小编也是个爱学习的人,把这几年的工作经验整理成了一份完整的笔记…

3.13 结构体嵌套、大小及位域

目录 结构体嵌套结构体 结构体的大小 位域 结构体嵌套结构体 含义 结构体中的成员可以是另一个结构体 语法 struct 结构体名 { struct 结构体名 成员名; }; 结构体中共同的变量可以单独放出来,单独封装一个结构体 结构体的大小 字节对齐 含义 …

微服务篇:开始从头到尾搭建第一个微服务(小白)

微服务篇 我的一个微服务 手把手写微服务项目,从现在开始 文章目录 微服务篇环境搭建开发工具开发环境 一、创建项目:创建gitee链接1、登录 gitee 创建仓库2、 给项目起一个名字(本地名字要跟远端一致哦) panda3、打开IDEA创建项…

19. Unity - 2D游戏开发小记02 --- 伪透视图、2D物体碰撞、瓦片地图碰撞、素材缩放平铺

1. 伪视图 在2D游戏开发当中,当角色移动时,会发生物体与物体之间的前后遮挡。2D视图中的前后关系是由 Y 轴决定,y 值越小物体越靠前。unity的渲染应开启根据 y 值的大小进行渲染才能保证正确的遮挡效果,在菜单栏Editor–>project setting --> Graphic中按照下图方式…

MySQL之Doublewrite Buffer详解

前言 本文已收录在MySQL性能优化原理实战专栏,点击此处浏览更多优质内容。 上一篇文章MySQL之Adaptive Hash Index详解我们学习了InnoDB Adaptive Hash Index自适应哈希索引的工作原理。其本质是将频繁访问数据页的索引键值以“Key”放在缓存中,“Value”…

【微机原理】汇编指令之传送指令

目录 一、传送类指令 1.MOV 传送指令 2.XCHG 传送指令 二、LEA 有效地址传送指令 三.堆栈操作指令 (1)入栈指令:PUSH (2)出栈指令:POP 四、输入输出指令 (1)IN 输入指令 &#xff08…

nginx部署本地启动vue项目

需求:就是想在本地不运行vue项目,可以直接访问到打包后的vue项目 1.安装nginx nginx: download,这里我安装的1.12.2稳定版本 2.下载完直接得到一个压缩包,直接把它解压到一个目录 !!!&#x…

CSI指纹预处理(中值、均值、Hampel、维纳滤波、状态统计滤波器)

目录 前言 1、箱线法 2、中值滤波器 3、均值滤波器 4、Hampel滤波器 5、维纳滤波 6、状态统计滤波器 前言 因为设备、温度和实验室物品摆设等因素的影响,未经处理的CSI数据不能直接使用,需要对数据进行异常值处理以保证数据的稳定性,…

力扣刷题2023-05-04-1——题目:2614. 对角线上的质数

题目: 给你一个下标从 0 开始的二维整数数组 nums 。 返回位于 nums 至少一条 对角线 上的最大 质数 。如果任一对角线上均不存在质数,返回 0 。 注意: 如果某个整数大于 1 ,且不存在除 1 和自身之外的正整数因子,…

【前端】1、flex 布局

flex 布局目录 一、flex container 和 flex items二、用在 flex container 上的 CSS 属性(1) flex-direction(2) justify-content(3) align-items 三、用在 flex items 上的 CSS 属性 一、flex container 和 flex items 🎄 1、开启了 Flex 布局的元素叫 flex cont…

系统分析师---系统规划高频错题

系统规划---成本效益分析 评价信息系统经济效益常用的方法主要有成本效益分析法,投入产出分析法和价值工程方法。盈亏平衡法常用于销售定价; 可行性分析 系统规划是信息系统生命周期的第一个阶段,其任务是对企业的环境、目标以及现有系统的…

CAN总线(HALL库使用)

目录 1.CAN总线介绍 2.STM32中CAN总线配置 3.HALL库实验 1.CAN总线介绍 1.闭环特点:速度快,距离短(40m) 2.开环特点:速度慢,距离长(1000m) 2.STM32中CAN总线配置 stm32的can总线分…

体验 gpt4free

体验 gpt4free 什么是 gpt4free安装 ffmpeg启动 gpt4free访问 gpt4free gui其他 什么是 gpt4free GPT4Free 是一个由 xtekky 创建的基于 OpenAI GPT-4 和 GPT-3.5 的 API。它可以向用户提供类似于 OpenAI GPT-3 的功能,如文本生成、问答、翻译等。 GPT4Free 与 Ope…

2023前端面试上岸手册——VUE部分

目录 Vue 的基本原理双向数据绑定的原理MVVM、MVC、MVP 的区别slot 是什么?有什么作用?原理是什么?\$nextTick 原理及作用Vue 单页应用与多页应用的区别Vue 中封装的数组方法有哪些,其如何实现页面更新Vue data 中某一个属性的值发…