Kettle部署与使用

1 概述

ETL是EXTRACT(抽取)、TRANSFORM(转换)、LOAD(加载)的简称,实现数据从多个异构数据源加载到数据库或其他目标地址,是数据仓库建设和维护中的重要一环,也是工作量较大的一块。

Kettle是ETL中其中一个开源工具,基于纯Java开发,Kettle 是 PDI 以前的名称,PDI 的全称是

transformation:完成针对数据的基础转换

job:完成整个工作流的控制

Kettle有三个主要组件:Spoon、Kitchen、Pan

     Spoon:图形化工具,用于快速设计和维护复杂的ETL工作流。windows选择Spoon.bat;Linux选择spoon.sh

     Kitchen:用来执行job(作业)

     Pan:用来执行transformation(转换)

 

         

2 windows 安装和使用

2.1 安装

kettle 是免安装的,只需要解压kettle pdi压缩包至本地即可。由于kettle是基于java语言的,所以要安装jdk。

 

2.2 启动

执行spoon.bat

 

2.3 转换

2.3.1 创建转换

文件 → 新建 → 转换, 进入转换页面

 

2.3.2 配置转换流程

在左面核心对象中,选择相应的组件拖到右面, 配置相应参数就可以实现转换操作。

注意:后面的组件要连上后能获取前面组件传过来的字段。

 

2.3.3 运行转换流程

点击

 

执行转换操作。

2.3.4 保存转换流程

点击 保存,会将当前转换流程生成 ktr配置文件,这个配置文件可用于在linux上运行。

2.4 作业

2.4.1 创建作业

文件 → 新建 → 作业, 进入作业页面

 

2.4.2 配置作业流程

在左面核心对象中,选择相应的组件拖到右面, 配置相应参数就可以实现流程操作。

注意:后面的组件要连上后能获取前面组件传过来的字段。

 

2.4.3 运行作业流程

点击

 

运行作业流程

2.4.4 保存作业流程

点击 保存,会将当前转换流程生成 kjb配置文件,这个配置文件可用于在linux上运行。

3 Linux操作系统

3.1 安装

ETL服务器解压kettle安装包。

cd /opt
unzip kettle.zip
chmod -R 777 /opt/kettle

用root用户修改 /etc/profile文件, 配置path,并source  

 

3.2 运行

3.2.1 linux上用pan.sh 执行 生成的转换操作文件

1)上传kettle任务ktr配置文件到Linux操作系统

上传到linux后,需要修改配置文件中的 输入文件和输出文件 为linux系统的文件路

# 输入文件目录
/home/panniu/kettle_test/csv_input/userdata.csv
# 输出文件目录
/home/panniu/kettle_test/out1\out1.xls
/home/panniu/kettle_test/out2\out2.csv

2)用pan.sh 执行 ktr文件

执行命令

# -file:指定要运行的转换配置文件
pan.sh -file=/home/panniu/kettle_test/csv_demo.ktr -level=Detailed

执行ETL清洗任务,清洗任务可以封装在shell脚本内,通过调度系统定时调度。

3.2.2 linux上用kitchen.sh 执行 生成的作业文件

1)上传kettle任务ktr配置文件到Linux操作系统

上传到linux后,需要修改配置文件中的 输入文件和输出文件 为linux系统的文件路径。

# 输入文件目录
/home/panniu/kettle_test/csv_input/userdata.csv
# 输出文件目录
/home/panniu/kettle_test/out1\out1.xls
/home/panniu/kettle_test/out2\out2.csv

2)生成kettle任务kjb配置文件到linux操作系统

上传到linux后,需要修改配置文件中的 ktr配置文件 为linux系统的文件路径。

# ktr配置文件目录
/home/panniu/kettle_test/csv_demo.ktr

3)用kitchen.sh 执行 kjb文件

执行命令

# -file:指定要运行的作业配置文件
kitchen.sh -file=/home/omm/kettle_test/csv_demo.kjb -level=Detailed

4 目录统一参数化

如果不想用替换目录的方法,可以用参数统一化。

 

在运行转换或作业时,kettle会自动将转换脚本和作业脚本的目录作为参数目录。

那这样输入、输出目录就可以参数化

比如:

 

 

 

这样,只要将windows和linux目录规划好,在linux运行时就可以不修改目录了,kettle会自动将 转换脚本和作业脚本所在的目录作为参数目录。

在作业配置中, 可以对转换文件路径参数化,还可以给转换加日志,方便查看日志

 

        

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值