ETL利器Kettle实战应用解析系列一【Kettle使用介绍】

本系列文章主要索引以下:html

1、ETL利器Kettle实战应用解析系列一【Kettle使用介绍】java

2、ETL利器Kettle实战应用解析系列二 【应用场景和实战DEMO下载】程序员

3、ETL利器Kettle实战应用解析系列三 【ETL后台进程执行配置方式】sql

本文主要阅读目录以下:数据库

一、Kettle概念windows

二、下载和部署app

三、Kettle环境配置工具

四、Kettle使用及组件介绍post

 

ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来讲,咱们常常会遇到各类数据的处理,转换,迁移,因此了解并掌握一种etl工具的使用,必不可少,这里我介绍一个我在工做中使用了3年左右的ETL工具Kettle,本着好东西不独享的想法,跟你们分享碰撞交流一下!在使用中我感受这个工具真的很强大,支持图形化的GUI设计界面,而后能够以工做流的形式流转,在作一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现,其中最主要的咱们经过熟练的应用它,减小了很是多的研发工做量,提升了咱们的工做效率,不过对于我这个.net研发者来讲惟一的遗憾就是这个工具是Java编写的。测试

一、Kettle概念

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

Kettle 中文名称叫水壶,该项目的主程序员MATT 但愿把各类数据放到一个壶里,而后以一种指定的格式流出。

Kettle这个ETL工具集,它容许你管理来自不一样数据库的数据,经过提供一个图形化的用户环境来描述你想作什么,而不是你想怎么作。

Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工做流的控制。

二、下载和部署

Kettle能够在 http://kettle.pentaho.org/网站下载
下载kettle压缩包,因kettle为绿色软件,解压缩到任意本地路径便可

三、Kettle环境配置(有Java环境的直接忽略此章节)

三、1 安装java JDK

1)首先到官网上下载对应JDK包,JDK1.5或以上版本就行;

2)安装JDK;

3)配置环境变量,附配置方式:

安装完成后,还要对它进行相关的配置才可使用,先来设置一些环境变量,对于Java来讲,最须要设置的环境变量是系统路径变量path。

(1)要打开环境变量的设置窗口。右击“个人电脑”,在弹出的快捷菜单中选择“属性”选项,进入“系统属性”对话框,如图所示。选择“高级”标签,进入“高级”选项卡,再单击“环境变量”按钮,进入“环境变量”对话框,如图所示:

(2)在“Administrator的用户变量”列表框中,选择变量PATH,待其所在行变高亮后,单击“编辑”按钮,如图所示。

(3)在弹出的“编辑系统变量”对话框中,将JDK安装路径下的bin目录路径设置到Path变量中,如图所示。

编辑完后,单击“肯定”按钮,进行保存,环境变量Path的设置就正式完成。

注意:设置Path变量的路径,必须是JDK安装目录中的bin目录,有时候在JDK安装目录的同一层会有JRE的安装目录,所以请谨慎选取相关路径,避免将路径设置成JRE目录下的bin目录。

三、2 测试JDK配置是否成功

设置好环境变量后,就能够对刚设置好的变量进行测试,并检测Java是否能够运行。

(1)单击“开始”按钮,选择“运行”选项,在“运行”对话框中输入cmd命令。

(2)以后单击“肯定”按钮,打开命令行窗口。

(3)在光标处输入:javac命令,按下Enter键执行,便可看到测试结果

三、3 运行Kettle

进入到Kettle目录,若是Kettle部署在windows环境下,双击运行spoon.bat或Kettle.exe文件,出现以下界面:
这样配置环境这一块基本上就完成了。
四、Kettle使用及组件介绍
4.1 Kettle使用
Kettle提供了资源库方式的方式来整合全部的工做,可是由于资源库移植不方便,因此咱们选择没有资源库;
1)建立一个新的transformation,点击 保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestTrans,kettle默认transformation文件保存后后缀名为ktr;
2)建立一个新的job,点击 保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestJob,kettle默认job文件保存后后缀名为kjb;
4.2 组件树介绍

 

 

Main Tree菜单列出的是一个transformation中基本的属性,能够经过各个节点来查看。

 

DB链接:显示当前transformation中的数据库链接,每个transformation的数据库链接都须要单独配置。

 

Steps:一个transformation中应用到的环节列表

 

Hops:一个transformation中应用到的节点链接列表                            

 

Core Objects菜单列出的是transformation中能够调用的环节列表,能够经过鼠标拖动的方式对环节进行添加。

 

Input:输入环节

Output:输出环节

Lookup:查询环节

Transform:转化环节

Joins:链接环节

Scripting:脚本环节

 

 

 

 
 
 
 
      
4.3 Transformation转换介绍
每个环节能够经过鼠标拖动来将环节添加到主窗口中。
并可经过shift+鼠标拖动,实现环节之间的链接。
转换经常使用环节介绍

类别

环节名称

功能说明

Input

文本文件输入

从本地文本文件输入数据

表输入

从数据库表中输入数据

获取系统信息

读取系统信息输入数据

Output

文本文件输出

将处理结果输出到文本文件

表输出

将处理结果输出到数据库表

插入/更新

根据处理结果对数据库表机型插入更新,若是数据库中不存在相关记录则插入,不然为更新。会根据查询条件中字段进行判断

更新

根据处理结果对数据库进行更新,若须要更新的数据在数据库表中无记录,则会报错中止

删除

根据处理结果对数据库记录进行删除,若须要删除的数据在数据库表中无记录,则会报错中止

Lookup

数据库查询

根据设定的查询条件,对目标表进行查询,返回须要的结果字段

流查询

将目标表读取到内存,经过查询条件对内存中数据集进行查询

调用DB存储过程

调用数据库存储过程

Transform

字段选择

选择须要的字段,过滤掉不要的字段,也可作数据库字段对应

过滤记录

根据条件对记录进行分类

排序记录

将数据根据某以条件,进行排序

空操做

无操做

增长常量

增长须要的常量字段

Scripting

Modified Java Script Value

扩展功能,编写JavaScript脚本,对数据进行相应处理

Mapping

映射(子转换)

数据映射

Job

Sat Variables

设置环境变量

Get Variables

获取环境变量

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4.3 Job任务介绍
 

 

Main Tree菜单列出的是一个Job中基本的属性,能够经过各个节点来查看。

 

DB链接:显示当前Job中的数据库链接,每个Job的数据库链接都须要单独配置。

 

Job entries:一个Job中引用的环节列表

         

Job entries菜单列出的是Job中能够调用的环节列表,能够经过鼠标拖动的方式对环节进行添加。

 

每个环节能够经过鼠标拖动来将环节添加到主窗口中。

 

并可经过shift+鼠标拖动,实现环节之间的链接。

      
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
经常使用环节介绍

类别

环节名称

功能说明

Job entries

START

开始

DUMMY

结束

Transformation

引用Transformation流程

Job

引用Job流程

Shell

调用Shell脚本

SQL

执行sql语句

FTP

经过FTP下载

Table exists

检查目标表是否存在,返回布尔值

File exists

检查文件是否存在,返回布尔值

Javascript

执行JavaScript脚本

Create file

建立文件

Delete file

删除文件

Wait for file

等待文件,文件出现后继续下一个环节

File Compare

文件比较,返回布尔值

Wait for

等待时间,设定一段时间,kettle流程处于等待状态

Zip file

压缩文件为ZIP包

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/zhangchenliang/p/4179775.html