当前位置: 代码迷 >> 综合 >> kettle 使用说明
  详细解决方案

kettle 使用说明

热度:98   发布时间:2023-12-03 09:13:49.0

kettle 使用说明

1.简介

ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少。kettle是纯java编写,支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现,其中最主要的我们通过熟练的应用它,减少了非常多的研发工作量,提高了我们的工作效率。

kettle有两种脚本transformation(转换)和job(作业)

kettle有三个主要组件:Spoon、Kitchen、Pan

Spoon:是一个图形化的界面,可以让我们用图形化的方式开发转换和作业

Kitchen:使用命令行调用Job

Pan:使用命令行的形式调用transformation

Carte:是一个轻量级的Web容器

1.1 下载地址

国内镜像地址 :http://mirror.bit.edu.cn/pentaho/

1.2 常见错误

1.2.1 缺少mysql驱动程序包

下载下来的kettle在连接mysql时缺少mysql驱动程序,而无法连接数据库

**解决办法:**在maven中央仓库中下载mysql驱动包,maven中央仓库地址:https://mvnrepository.com/

搜索mysql ,本文下载的是mysql

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.49</version>
</dependency>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-75kgLWT6-1594036592145)(H:\typora图片\maven-mysql.png)]

2.简单使用说明

2.1 打开方式

windows 下双击Spoon.bat 打开图形化界面

2.2创建转换

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OTAV8ahc-1594036592148)(H:\typora图片\kettle界面.png)]

在转换上右键—新建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bcr1ecUG-1594036592150)(H:\typora图片\转换1.png)]

界面分为主对象和核心对象,对于转换的相关组件在核心对象中。

2.2.1 创建DB连接

本例展示的是对于数据库的操作,故需要在DB中新建数据库连接。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pOUisOMA-1594036592152)(H:\typora图片\kettle-mysql连接.png)]

点击测试,测试数据库是否连接正常,若正确,会提示正确连接到数据库,点击确认完成本次设置。

可以在选项中设置连接参数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TbmIKmwp-1594036592153)(H:\typora图片\数据库连接.png)]

2.2.2 转换输出输入设置

1.设置输入

核心对象 – 输入 – 表输入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5GdisqU1-1594036592155)(H:\typora图片\转换-表输入.png)]

双击表输入图标,进行表输入的相关设置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Svpn7O4P-1594036592156)(H:\typora图片\转换表输入图标.png)]

示例如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AUAhqcAN-1594036592157)(H:\typora图片\转换-表输入配置详情.png)]

2.设置输出

同步到cs2数据库有两种方式,一种表输出,一种插入/更新

表输入:将记录同步到另一张表。

插入/更新:通过设置的比较字段,判断是插入还是更新表数据

本例中使用插入/更新做输出

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cZVQrSj3-1594036592158)(H:\typora图片\转换-插入更新.png)]

如上图配置好插入更新的相关数据,配置好要更新的字段。到此简单的转换设置完成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FFszDXPz-1594036592159)(H:\typora图片\转换.png)]

2.2.3运行转换

在保存转换文件后,点击运行,通过日志可以查看执行结果。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FrXphLAm-1594036592160)(H:\typora图片\转换运行.png)]

2.3 创建作业

点击红色框内创建作业

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w86cqbL2-1594036592161)(H:\typora图片\作业-新建.png)]

本例中,将通过作业的形式,执行cs1库的test表同步到cs2库的test表。

2.3.1 开始按钮

任何一个作业都是以开始按钮开始

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wmSDuFYr-1594036592162)(H:\typora图片\作业-流程1.png)]

双击START图标,设置作业

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ozwGbl6w-1594036592163)(H:\typora图片\作业-START.png)]

2.3.2 转换

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FJ52thmh-1594036592164)(H:\typora图片\作业转换设置.png)]双击转换,设置转换
在这里插入图片描述

2.3.3 运行作业

保存作业后,运行红色框内的按钮,运行程序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zYSYmRYo-1594036592165)(H:\typora图片\作业运行结果.png)]

到此最简单的数据表全量同步和更新说明完成

3.linux下运行

3.1 运行作业

./kitchen.sh -file=/opt/kettle/csjob.kjb -log=log.log

后台不间断运行

nohup bash ./kitchen.sh -file=/opt/kettle/csjob.kjb -log=log.log &

查看后台运行进程

ps -aux|grep kitchen.sh

ps aux | grep kitchen.sh| grep -v grep

结束进程

kill 进程id

3.2 运行转换

ile=/opt/kettle/csjob.kjb -log=log.log &

查看后台运行进程

ps -aux|grep kitchen.sh

ps aux | grep kitchen.sh| grep -v grep

结束进程

kill 进程id

3.2 运行转换

./pan.sh -file=/opt/kettle/csjob.ktr -log=log.log

  相关解决方案