1 概述
ETL是EXTRACT(抽取)、TRANSFORM(转换)、LOAD(加载)的简称,实现数据从多个异构数据源加载到数据库或其他目标地址,是数据仓库建设和维护中的重要一环,也是工作量较大的一块。
Kettle是ETL中其中一个开源工具,基于纯Java开发,Kettle 是 PDI 以前的名称,PDI 的全称是Pentaho Data Integeration。
kettle有两种脚本:transformation(转换)和 Job(作业)
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上运行。
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/omm/kettle_test/csv_input/userdata.csv
# 输出文件目录
/home/omm/kettle_test/excel_output\output.xls
2)用pan.sh 执行 ktr文件
执行命令
# -file:指定要运行的转换配置文件
pan.sh -file=/home/omm/kettle_test/csv2excel.ktr -level=Detailed
执行ETL清洗任务,清洗任务可以封装在shell脚本内,通过调度系统定时调度。
3.2.2 linux上用kitchen.sh 执行 生成的作业文件
1)上传kettle任务ktr配置文件到Linux操作系统
上传到linux后,需要修改配置文件中的 输入文件和输出文件 为linux系统的文件路径。
# 输入文件目录
/home/omm/kettle_test/csv_input/userdata.csv
# 输出文件目录
/home/omm/kettle_test/excel_output\output.xls
2)生成kettle任务kjb配置文件到linux操作系统
上传到linux后,需要修改配置文件中的 ktr配置文件 为linux系统的文件路径。
# ktr配置文件目录
/home/omm/kettle_test/csv2excel.ktr
3)用kitchen.sh 执行 kjb文件
执行命令
# -file:指定要运行的作业配置文件
kitchen.sh -file=/home/omm/kettle_test/csv2excel.kjb -level=Detailed