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

本系列文章主要索引如下:

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

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

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

本文主要阅读目录如下:

1、Kettle概念

2、下载和部署

3、Kettle环境配置

4、Kettle使用及组件介绍

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

1、Kettle概念

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

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

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

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

2、下载和部署

?Kettle可以在http://kettle.pentaho.org/网站下载

?

?下载kettle压缩包,因kettle为绿色软件,解压缩到任意本地路径即可

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

3、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目录。

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

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

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

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

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

3、3 运行Kettle

?进入到Kettle目录,如果Kettle部署在windows环境下,双击运行spoon.bat或Kettle.exe文件,出现如下界面:

这样配置环境这一块基本上就完成了。

4、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包

大家如果感兴趣可以继续阅读系列:二、ETL利器Kettle实战应用解析系列二 【应用场景和实战DEMO下载】

REFERENCE FROM : http://www.cnblogs.com/limengqiang/archive/2013/01/16/kettleapply1.html

时间: 2024-08-01 22:17:40

ETL利器Kettle实战应用解析系列一【Kettle使用介绍】的相关文章

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

原文地址:http://www.cnblogs.com/limengqiang/archive/2013/01/16/KettleApply1.html 本系列文章主要索引如下: 一.ETL利器Kettle实战应用解析系列一[Kettle使用介绍] 二.ETL利器Kettle实战应用解析系列二 [应用场景和实战DEMO下载] 三.ETL利器Kettle实战应用解析系列三 [ETL后台进程执行配置方式] 本文主要阅读目录如下: 1.Kettle概念 2.下载和部署 3.Kettle环境配置 4.K

kettle系列-1.kettle源码获取与运行

第一次写博客,心里有点小激动,肯定有很多需要改进的地方,望海涵. kettle算是我相对较为深入研究过的开源软件了,也是我最喜欢的开源软件之一,它可以完成工作中很多体力劳动,在ETL数据抽取方面得到了广泛的使用.我本身对kettle的各个控件使用也不是很熟悉,只会使用最常见的部分控件,就是这样简单的使用也被它的美深深的吸引住了. 好了,进入正题,这里假设你熟悉java开发.git一般使用.kettle一般使用.kettle源码之前托管在kettle官方的svn上,后来迁移到了github上,在g

赵强老师:免费实战微课系列课程

赵强老师实战微课系列课程 Oracle数据库.大数据.Weblogic中间件 永久免费!!! (*)赵强老师实战微课之一:在Oracle SQL*PLUS中修改SQL语句 http://edu.51cto.com/course/course_id-9016.html (*)赵强老师实战微课之二:搭建Hadoop的Eclipse开发环境 http://edu.51cto.com/course/course_id-9017.html (*)赵强老师实战微课之三:使用Weblogic Console生

Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 概要  和学习ArrayList一样,接下来呢,我们先对LinkedList有个整体认识,然后再学习它的源码:最后再通过实例来学会使用LinkedList.内容包括:第1部分 LinkedList介绍第2部分 LinkedList数

Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 概要 上一章,我们学习了Collection的架构.这一章开始,我们对Collection的具体实现类进行讲解:首先,讲解List,而List中ArrayList又最为常用.因此,本章我们讲解ArrayList.先对ArrayLis

《Web渗透技术及实战案例解析》pdf

下载地址:网盘下载 内容简介 编辑 本书从Web渗透的专业角度,结合网络安全中的实际案例,图文并茂地再现Web渗透的精彩过程.本书共分7章,由浅入深地介绍和分析了目前网络流行的Web渗透攻击方法和手段,并结合作者多年的网络安全实践经验给出了相对应的安全防范措施,对一些经典案例还给出了经验总结和技巧,通过阅读本书可以快速掌握目前Web渗透的主流技术.本书最大的特色就是实用和实战性强,思维灵活.内容主要包括Web渗透必备技术.Google黑客技术.文件上传渗透技术.SQL注入.高级渗透技术.0day

Java 集合系列 06 Stack详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列 05 Vector详细介绍(源码解析)和使用示例 Java 集合系列 06 Stack详细介绍(源码解析)和使用示例 第1部分 Stack介绍 Stack简介 Stack是栈.它的特性是:先进后出(FILO, F

CGI原理解析系列之一----CGI如何获取WEB服务器数据

//gcc get_post.c -o get_post.ums; #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> int main(int argc,char *argv[]) { size_t i = 0,n = 0; printf("Content-Type:text/plain\n\n"); char * method =

Backbone源码解析系列

01 编码风格.继承 02 Backbone.Events 03 Backbone.Model 04 Backbone.View 05 Backbone.Router 06 Backbone应用于web交互型应用 07 Backbone应用于移动终端应用 Backbone源码解析系列,布布扣,bubuko.com