kettle——(1)介绍和Execl输出举例

  最近公司在做数据总线的工作,需要用kettle这个ETL工具,所以花了一些时间来研究研究,喜欢的话点个赞

一、何为kettle


1.ETL(数据仓库技术)

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

用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。

ETL工具的典型代表有:Informatica、Datastage、OWB、微软DTS、Beeload、Kettle等等

有两种架构,一种是ETL架构(简单来说,是将数据从数据源头拿过来,在中间直接通过处理(这里需要等待处理完成,处理时间可能比较长),之后再放到目标数据仓库,然后才能用)

这里写图片描述

另一种是ELT架构(简单来说,是将数据直接从数据源头拿过来,然后传到目标数据仓库,而处理则发生在拿的时候,或者最后放的时候,这样一来可以很快的处理,不需要等待,可以在查询的时候处理)

这里写图片描述
今天我们讲的是ETL工具中最受欢迎的一个工具——keettle


2.kettle

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

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

它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境。

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

Kettle家族目前包括4个产品:Spoon、Pan、CHEF、Kitchen。

SPOON 允许你通过图形界面来设计ETL转换过程(Transformation)。

PAN 允许你批量运行由Spoon设计的ETL转换 (例如使用一个时间调度器)。Pan是一个后台执行的程序,没有图形界面。

CHEF 允许你创建任务(Job)。 任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。任务通过允许每个转换,任务,脚本等等。任务将会被检查,看看是否正确地运行了。

KITCHEN 允许你批量使用由Chef设计的任务 (例如使用一个时间调度器)。KITCHEN也是一个后台运行的程序。


二、如何运行kettle

1.包

要运行Kettle ,必须按安装java 环境1.4或以上版本,kettle下载可以到: http://kettle.pentaho.org 取得最新版本。(pdi-ce-7.0.0.0-25)

2.运行过程

(对应自己的系统,运行相应的文件即可,因为kettle是纯java,无需安装滴)

下面是不同平台上运行spoon 所支持的脚本 :
spoon.bat windows 平台运行Spoon
Spoon.sh linux 平台运行Spoon

这是我的版本

这里写图片描述

双击spoon.bat,运行完成后的界面

这里写图片描述

Kettle中,主要有2中任务,一个是作业,一个是转换。一般来说,转换是一系列具体的操作,比如:调度SP,导出Excel等等;作业的话,就是按照一定流程来调度一系列转换

三、简单应用

这里只举一个最简单的应用例子——连接数据库,并将数据库中的数据导出为execl表格

1.主对象树—转换

这里写图片描述

右键—“新建”

这里写图片描述

2.选择 DB连接—右键“新建”

这里写图片描述

3.然后选择相应的数据源,填写相应信息

这里写图片描述

mysql包 链接:http://pan.baidu.com/s/1hrX0qPm 密码:a40p
sqlserver包 链接:http://pan.baidu.com/s/1skCjnjR 密码:1uzy

将自己下载好的jar包复制到kattle文件夹的lib文件夹中即可

这里写图片描述
`

4.填写好之后“测试”一下,同时也可以预览一下

这里写图片描述

5.之后就建好了DB连接

这里写图片描述

6.接着“核心对象”——“输入”

这里写图片描述

“表输入”,直接拖到右边的框中

这里写图片描述

7.双击“表输入”图标可以对其进行编辑

这里写图片描述

这里进行修改,写sql语句

这里写图片描述

点击预览

这里写图片描述

观察效果

这里写图片描述

8.“输出”——“Execl输出”,也是直接拖拽

这里写图片描述

9.编辑Execl输出,文件名,字段(获取字段这时是不能获取滴)

这里写图片描述

这里写图片描述

10.需要进行连接,需要将2个控件,连起来,源头有了,目标也有了,得让他们关联起来啊,再Kettle中,这个连线叫做Hop(跳),就像一个管道一样,将数据流从一个点,指向另一个点

直接点击图标下的连接图标,然后拖到目的图标即可

这里写图片描述

这里写图片描述

(如何已经编辑好输入和输出,直接点击运行按钮就开始数据的转换和输入输出啦,但是这里还没有编辑好,所以继续往下看)

这里写图片描述

然后再编辑Execl输出,再获取字段,就可以从源头获取表中的字段了,当然,我们可以只导出,我们需要的字段

这里写图片描述

11.最后再点击左上角的运行按钮

这里写图片描述

这里写图片描述

这里写图片描述

因为我之前运行过,同时也正在使用输出的Execl文件,所以这里出现了运行错误

这里写图片描述

重新删除文件之后再运行一下,成功时输入输出的图标也会打绿色钩

这里写图片描述

到保存地址打开相应的execl如下:

这里写图片描述

简单的kettle从数据库获取数据,输出到execl文件的例子就完成了

下一节: kettle——(2)抽取数据同步数据库

猜你喜欢

转载自blog.csdn.net/jack_yangying/article/details/78048107
今日推荐