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; mysql>use kettle; mysql>create table stu1 (id int ,name varchar(20),age int); mysql>create table stu2 (id int ,name varchar(20));
mysql>insert into stu1 values(1001,’bajie’,20),(1002,’shaseng’,18),(1003,’sanzang’,23);
mysql>insert into stu2 values(1001,’wukong’);
3.kettle操作