知识结构图:
kettle是一款开源的ETL(extract抽取、transform转换、load加载)工具,纯java编写,可以在Windows、Linux、Unix上运行,绿色无需安装,图形化界面拖拽操作,数据抽取高效稳定。
在公司中对公司数据库直接进行改动是大忌,所以需要将数据拷贝一份,ETL工具由此诞生,由于kettle开源,相比高额的付费软件,很划算。
Kettle以xml形式或资源库方式存储,有两种设计:Transformation(转换)——完成针对数据的基础转换;Job(作业)——完成整个工作流的控制。其中作业是步骤流,转换是数据流。
Kettle有三个主要组件:
Spoon(勺子):图形化界面,windows选择.bat,linux选择.sh。
Kitchen(厨房):利用kitchen命令可以用命令行调用Job。
Pan(锅):利用pan可以用命令行的形式调用Trans。
另外,Carter(菜单)是一个轻量级的web容器,用于建立专用、远程的ETL server。
Windows下kettle的安装使用
一、安装
1.概述
在实际企业开发中,都是在本地环境下进行kettle的Job和Transformation开发,可以在本地运行,也可以连接远程机器运行。
2.安装jdk
不再赘述(kettle要在java环境中运行)
3.下载解压kettle
kettle为绿色软件,可下载后直接解压到本地任意路径,即可用。下载地址
4.数据库安装
不再赘述,以mysql为例(强烈建议大家数据库版本不要追新,由于版本问题在其他软件的协同工作时会出很多问题,目前稳定版本mysql5.6 5.7就可以了。)
5.启动
找到spoon.bat文件,打开,第一次开启时间略长
(文件中有.sh和.bat文件,Linux下使用.sh文件,windows下用.bat文件)
二、案例
案例一
把stu1的数据按id同步到stu2,stu2有相同id则更新数据
在mysql中创建两张表
1.打开 作业
2.在mysql中创建两张表并插入一些数据
mysql>
create database kettle; use kettle; create table stu1 (id int ,name varchar(20),age int); create table stu2 (id int ,name varchar(20)); insert into stu1 values (1001,'bajie',20),(1002,'shaseng',18),(1003,'sanzang',23); insert into stu2 values (1001,'wukong');
3.kettle操作
Kettle连接数据库时,总是连接失败,原因是mysql版本太高
解决博客:https://blog.csdn.net/weixin_40818105/article/details/86248915
连接成功过后,输入sql语句,点击预览查看。
打开插入/更新,在目标表预览处选择stu2,然后获取字段
由于stu1与stu2通过id关联,故删除另2个字段,然后点击编辑映射,编辑2个表之间的映射
更新处,修改id的属性为n,确定
保存运行,到数据库中查看结果。