kettle下载安装于使用

一、kettle概述

1、什么是kettle

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

2、Kettle工程存储方式

(1)以XML形式存储

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

3、Kettle的两种设计

4、Kettle的组成

5、kettle特点

二、kettle安装部署和使用

1、kettle安装地址 官网地址

官网下载需要注册,本人从CSDN博主的网盘下载的安装包。

2、Windows下安装使用

(1)概述

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

(2)安装步骤

安装jdk;

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

双击解压后文件夹里的Spoon.bat,启动图形化界面工具,就可以直接使用了。

3、使用示例

案例需求:把stu1的数据按id同步到stu2,stu2有相同id则更新数据。

1)在mysql中创建两张表

复制代码
ysql> create database kettle;
Query OK, 1 row affected (0.00 sec)

mysql> use kettle;
Database changed

mysql>  create table stu1(id int,name varchar(20),age int);
Query OK, 0 rows affected (0.01 sec)

mysql> create table stu2(id int,name varchar(20));
Query OK, 0 rows affected (0.00 sec)

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

复制代码
mysql> insert into stu1 values(1001,'zhangsan',20),(1002,'lisi',18), (1003,'wangwu',23);
Query OK, 3 rows affected (0.05 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> insert into stu2 values(1001,'wukong');
Query OK, 1 row affected (0.00 sec)

备注:实际使用中,源表(stu1)与目标表(stu2)对应的字段可能相同,也可能不同。

(3)把kettle的zip安装文件拷贝到win环境中指定文件目录,解压后

在kettle中新建转换--->输入--->表输入-->表输入双击

在数据库连接栏目点击新建

在数据库连接栏目点击新建

备注:连接dm(达梦)数据库,需要将达梦数据库驱动jar包放入lib目录下,连接类型选择"Generic database",连接方式选择Native(JDBC)。



备注:如果stu2需要生成主键,上述箭头1处的sql可改为(以达梦数据库sql为例):

复制代码
select sys_guid() as uuid,* from stu1;

然后后续步骤可以将uuid与stu2主键字段映射;
如果stu2的某个字段需要常量值,上述箭头1处的sql可改为:

复制代码
select sys_guid() as uuid,'0' as status,* from stu1;

如果stu2的某个字段需要当前时间,上述箭头1处的sql可改为:

复制代码
select sys_guid() as uuid,'0' as status,sysdate as createDate,* from stu1;

以上说明stu1的数据输入ok的,现在我们需要把输入stu1的数据同步到stu2输出的数据

连接方法如下:

注意:拖出来的线条必须是深灰色才关联成功,若是浅灰色表示关联失败


备注:上图中的用来查询的关键字表示源表和目标表关联的字段,表字段为目标表,流里的字段1为源表,更新字段为需要更新的源表与目标表字段。

转换之前,需要做保存

之后,在mysql查看,stu2的数据

mysql> select * from stu2;

±-----±-------+

| id | name |

±-----±-------+

| 1001 | wukong |

| 1002 | lisi |

| 1003 | wangwu |

±-----±-------+

3 rows in set (0.00 sec)

参考文章:

https://zhuanlan.zhihu.com/p/137383200

https://blog.csdn.net/Jmayday/article/details/102860582

https://blog.csdn.net/estelle_belle/article/details/138999665

相关推荐
mldong5 小时前
一个 App,十三套后端:手机审批端 uni-jeeflow-app 开源了
java·架构
tqs_123456 小时前
MySQL RR隔离级别死锁|Gap间隙锁、临键锁,订单并发范围查询死锁根因方案
java
逆境不可逃6 小时前
Pi Agent 学习笔记:多个工具怎样并行执行
java
Flynt7 小时前
Java 27 升级实测:默认值动得比新特性多,有个老参数会让 JVM 直接起不来
java·jvm·后端
Bs_MoneyMagnet7 小时前
基于springboot+vue的个人健康管理系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·vue3·springboot3·计算机毕业设计
星云API技术支持8 小时前
企业微信二次开发:群权限设置、成员管理与群资料维护的接口组合实践
java·前端·企业微信
niucloud-admin8 小时前
JAVA V6 多商户商城 开发文档——job 计划任务开发
java·python·github
海宇AI9 小时前
零信任架构实战:基于海宇柠檬查出险-登记证构建自动化车抵贷核保网关
java·人工智能·架构·自动化
cfm_291410 小时前
单例模式详解
java
我叫张土豆11 小时前
本体论、DDD、SDD、TDD:AI 编程时代的四层认知栈
java·人工智能