最近公司在做数据总线的工作,需要用kettle这个ETL工具,所以花了一些时间来研究研究,喜欢的话点个赞
英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。
用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。
ETL工具的典型代表有:Informatica、Datastage、OWB、微软DTS、Beeload、Kettle等等
有两种架构,一种是ETL架构(简单来说,是将数据从数据源头拿过来,在中间直接通过处理(这里需要等待处理完成,处理时间可能比较长),之后再放到目标数据仓库,然后才能用)
另一种是ELT架构(简单来说,是将数据直接从数据源头拿过来,然后传到目标数据仓库,而处理则发生在拿的时候,或者最后放的时候,这样一来可以很快的处理,不需要等待,可以在查询的时候处理)
今天我们讲的是ETL工具中最受欢迎的一个工具——keettle
一款国外开源的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 ,必须按安装java 环境1.4或以上版本,kettle下载可以到: http://kettle.pentaho.org 取得最新版本。(pdi-ce-7.0.0.0-25)
(对应自己的系统,运行相应的文件即可,因为kettle是纯java,无需安装滴)
下面是不同平台上运行spoon 所支持的脚本 :
spoon.bat windows 平台运行Spoon
Spoon.sh linux 平台运行Spoon
这是我的版本
双击spoon.bat,运行完成后的界面
Kettle中,主要有2中任务,一个是作业,一个是转换。一般来说,转换是一系列具体的操作,比如:调度SP,导出Excel等等;作业的话,就是按照一定流程来调度一系列转换
右键—“新建”
mysql包 链接:http://pan.baidu.com/s/1hrX0qPm 密码:a40p
sqlserver包 链接:http://pan.baidu.com/s/1skCjnjR 密码:1uzy
将自己下载好的jar包复制到kattle文件夹的lib文件夹中即可
“表输入”,直接拖到右边的框中
这里进行修改,写sql语句
点击预览
观察效果
直接点击图标下的连接图标,然后拖到目的图标即可
(如何已经编辑好输入和输出,直接点击运行按钮就开始数据的转换和输入输出啦,但是这里还没有编辑好,所以继续往下看)
然后再编辑Execl输出,再获取字段,就可以从源头获取表中的字段了,当然,我们可以只导出,我们需要的字段
因为我之前运行过,同时也正在使用输出的Execl文件,所以这里出现了运行错误
重新删除文件之后再运行一下,成功时输入输出的图标也会打绿色钩
到保存地址打开相应的execl如下:
简单的kettle从数据库获取数据,输出到execl文件的例子就完成了
下一节: kettle——(2)抽取数据同步数据库