kettle概述

http://www.kettle.net.cn/

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

ETL工具:ETL是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。

概念

Transformation(转换):数据抽取/迁移主要设计的对象,负责定义数据从数据源到目标地流动。各步骤并发执行。

Job(作业):支持组合多个转换,即流程控制,支持定时任务执行。各步骤按一定规则顺序执行,可定义为并行执行。

Step(步骤):最核心的概念,转换和作业都是由步骤组成,数据转换和数据清洗都是在步骤中完成,步骤是 Kettle 具体做事情的对象。

hop(跳):即连接,步骤与步骤之间的连接称之为跳。代表数据流量。

产品

Kettle 主要包含4类产品,Spoon,Carte,Pan,Kitchen。
Spoon:可视化开发工具。可视化运行,监控等。
Carte:轻量级 Web 服务器,支持远程执行 Kettle 脚本。
Pan:命令行执行 Kettle Transformation 脚本。如:pan.sh file=xxx.ktr 。
Kitchen:命令行形式执行 Kettle Job 脚本工具。如:kitchen.sh file=xxx.kjb 。

安装部署

windows

安装 JDK
下载 Kettle 压缩包,Kettle 是绿色软件,解压缩到任意本地路径即可
双击 Spoon.bat,启动图形化界面工具,就可以直接使用了

单机(linux)

运行数据库资源库中的转换

[djm@hadoop102 data-integration]$./pan.sh -rep=my_repo -user=admin -pass=admin -trans=stu1tostu2 -dir=/

参数说明:

rep:资源库名称

user:资源库用户名

pass:资源库密码

trans:要启动的转换名称

dir:目录(不要忘了前缀 /)

运行资源库里的作业:

[djm@hadoop102 data-integration]$./kitchen.sh -rep=repo1 -user=admin -pass=admin -job=jobDemo1 -logfile=./logs/log.txt -dir=/

参数说明:

rep:资源库名

user:资源库用户名

pass:资源库密码

job:job名

dir:job路径

logfile:日志目录

集群安装

准备三台服务器,hadoop102 作为 Kettle 主服务器,服务器端口号为 8080,hadoop103 和 hadoop104 作为两个子服务器,端口号分别为 8081 和 8082

上传解压 kettle 的安装包

进到 /opt/module/data-integration/pwd 目录,修改配置文件

修改主服务器配置文件 carte-config-master-8080.xml

<slaveserver>
    <name>master</name>
    <hostname>hadoop102</hostname>
    <port>8080</port>
    <master>Y</master>
    <username>cluster</username>
    <password>cluster</password>
</slaveserver>

省略,参考:

使用

  1. 生产环境和开发环境使用不同的数据库连接
    ~/.kettle/kettle.properties里设置key=value

在kettle.properties中添加变量,然后在类似数据库连接的地方可以用${key}来使用,这样可以实现开发环境和生产环境配置的差异,就算往资源库里提交也可以互不影响了