ETL是EXTRACT(抽取)、TRANSFORM(转换)、LOAD(加载)的简称,实现数据从多个异构数据源加载到数据库或其他目标地址,是数据仓库建设和维护中的重要一环,也是工作量较大的一块。Kettle是ETL中其中一个开源工具,基于纯Java开发。
kettle有两种脚本Transformation(转换)和Job(作业)
transformation:定义对数据操作的容器,数据操作就是数据从输入到输出的一个过程,可以理解为比作业粒度更小一级的容器,我们将任务分解成作业,然后需要将作业分解成一个或多个转换,每个转换只完成一部分工作。
job:负责将[转换]组织在一起进而完成某一块工作,通常我们需要把一个大的任务分解成几个逻辑上隔离的作业,当这几个作业都完成了,也就说明这项任务完成了。
Kettle家族目前包括4个产品:Spoon、Pan、CHEF、Kitchen。
Spoon: 允许你通过图形界面来设计ETL转换过程(Transformation)。
Pan: 允许你批量运行由Spoon设计的ETL转换 (例如使用一个时间调度器)。Pan是一个后台执行的程序,没有图形界面。
CHEF: 允许你创建任务(Job)。 任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。任务通过允许每个转换,任务,脚本等等。任务将会被检查,看看是否正确地运行了。
Kitchen: 允许你批量使用由Chef设计的任务 (例如使用一个时间调度器)。KITCHEN也是一个后台运行的程序。
我们主要讲解spoon。
下载与安装
安装 jdk
官网http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,下载对应版本,直接安装。(网上操作较多,具体不在此说明)
安装kettle
下载
官网: https://sourceforge.net/projects/pentaho/files/Data%20Integration/
本文操作基于kettle 7.1版本。
安装
下载完成后解压压缩包pdi-ce-7.1.0.0-12.zip,直接生成data-integration文件夹。
下载数据库驱动
首先在 官网https://dev.mysql.co