kettle简介
Kettle是一款国外开源的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。
下载地址为https://community.hitachivant...
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
基本概念
Kettle家族目前包括4个产品:Spoon、Pan、CHEF、Kitchen。
SPOON 允许你通过图形界面来设计ETL过程。启动过程为进入data-integration目录,双击spoon.bat
PAN 允许你批量运行由Spoon设计的ETL转换 。Pan是一个后台执行的程序,没有图形界面。
CHEF 允许你创建任务(Job)。
KITCHEN 允许你批量使用由Chef设计的任务。KITCHEN也是一个后台运行的程序。
作业(job)
负责将[转换]组织在一起进而完成某一块工作,通常我们需要把一个大的任务分解成几个逻辑上隔离的作业,当这几个作业都完成了,也就说明这项任务完成了。
转换(Transformation)
定义对数据操作的容器,数据操作就是数据从输入到输出的一个过程,可以理解为比作业粒度更小一级的容器,我们将任务分解成作业,然后需要将作业分解成一个或多个转换,每个转换只完成一部分工作。
支持的数据操作类型
kettle简单使用
eg:编写一个简单的ETL过程,实现从mysql一张表同步数据到另一张表
- 启动图形化界面:解压data-integration.zip,进入data-integration目录,双击spoon.bat
- 新建一个转换:点击左上角文件,选择新建->转换
- 左侧选择输入->表输入,双击表输入,在主界面上就会有表输入显示框
- 双击主界面的表输入,会弹出表的配置框
- 弹出表的配置框后,点击右上角新建,弹出需要输入数据库类型和数据库各项信息的配置框,选择你的源数据库类型,和信息后点击测
- 选择你的源数据库类型,填入信息后点击测试,出现类似下图提示则为连接成功,若果出现一串异常信息则为失败。
1、信息填错
2、账号密码没有权限
3、没有数据库的驱动包,如果没有驱动包,需要去网上找到对应数据库版本的驱动jar包放到data-integrationlib目录下,然后重启kettle
- 测试通过,可以连接上数据库后,点击右下角确认,就会返回表输入的配置框,并且在数据库连接上会出现刚才你填写的数据库,然后点击获取SQL查询语句进行选择某个表,也可以在SQL栏自己写sql语句,写完之后验证sql是否正确,可以点击下方的预览键查看。至此,源数据选择完毕。
- 源数据信息填写完毕后,需要填写目的信息,最左侧步骤栏点击输出,双击表输出
- 弹出表输出的配置后,点击新建,填入目的表的信息,在目标表栏目中选择需要将源数据同步到哪张表
- 配置完源信息和目的信息后,将表输入和表输出连接起来,连接方式是鼠标先点击一下表输入,然后按住shift键,鼠标左键点击表输入往表输出方向拖动,就能出现连接线
- 连接线连接后,就可以运行了,点击运行键,运行这个转换,运行前需要保存,将这个转换命名为simple_table2table.ktr
- 运行时,如果步骤上方出现打钩图案表示该步骤执行完成,下方可以看到具体的日志信息,和输入输出的数据量,一个简单的使用就完成了。
上图中可以点击Preview data查看数据转换过程
如何将上述转换(simple_table2table)放到linux下执行?
- 首先将data-integration.zip放在服务器某个目录下,
- 然后解压data-integration.zip,进入data-integration目录,
- 执行chmod +x *.sh,将所有脚本赋予可执行权限。
- 然后将simple_table2table放到服务器某个目录下执行
./pan.sh -file=xx/simple_table2table.ktr -debug=debug -log=xxx/xxxx.log
- 如果运行的是作业则用kitchen脚本执行
./kitchen.sh -file=xx/xxx.kjb –log=x/xxxx.log
- kettle任务可以使用crontab实现定时调度
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。