1介绍

Kettle是一款国外开源的ETL工具,纯java编写,可以在WindowLinuxUnix上运行,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

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

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

作为Pentaho的一个重要组成部分,现在在国内项目应用上逐渐增多。

 

2研究实例

2.1 Spoon.bat首页(如图1.1)

ETL kettle

图例1.1kettle首页

 

2.1功能介绍

2.1.1转换内功能

2.1.1.1输入

1.Kettle可以输入文件类型,数据库表输入、json输入Excel输入等等。

2.选择输入的内容拖到转换区中如图(2.1)。

3.输入数据库,双击输入数据库Model打开界面输入数据库信息、表信息、字段信息。

4.输入json,双击输入json Model打开界面输入json文件路径和对应要输入的字段信息。

 

ETL kettle

图2.1转换区

 

2.1.1.2输出

1.Kettle可以输出文件类型,数据库表输出、json输出Excel输出等等。

2.选择输出的内容拖到转换区中如图(2.1)。

3.输出数据库,双击输出数据库Model打开界面输出数据库信息、表信息、字段信息。

4.输出json,双击输出json Model打开界面输出json文件路径和对应要输出的字段信息。

 

2.1.1.2.脚本

1.Kettle可以在输入和输出中间进行脚本操作,可以直接用java编辑输入的字段和输出的字段。

2.将User Defined Java Class拖到转换区(如图2.2)

ETL kettle

图例2.2JAVA脚本编辑界面

3.在Processor处理器中编写脚本

 

4.实例代码

import com.Test21;

 

public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException

{

    Object[] r = getRow();

    if (r == null) {

        setOutputDone();

        return false;

    }

 

    if (first)

    {

        first = false;

    }

 

    r = createOutputRow(r, 3);

    //获取输入字段   

    String test_value = get(Fields.In, "cmd").getString(r);

    //实例化自己编写的java类

    Test21 ti = new Test21();

    //操作编辑字段

    String uppercase_value = ti.getStr(test_value);

    //返回输出字段

    get(Fields.Out, "uppercase").setValue(r, uppercase_value);

putRow(data.outputRowMeta, r);

    return true;

}

 

5.将自己写玩的jar包放到安装目录的bin目录下Kettle可以自动加载

 

6.配置输出字段(如图2.3)

ETL kettle

图例2.3输出字段界面

 

 

2.1.2jobs内功能

1.新建jobs弹出jobs操作界面如图3.1

ETL kettle

图例3.1jobs操作界面

2.创建Start策略开始

3.创建Transformation转换

4.点击Transformation输入转换的引用文件*.ktr

5.保存

3系统调用Kettle

3.1编辑系统可执行文件

3.1.1编辑ktr

1.系统bat可执行文件实例

cd D:\KF\ETL\kettle_2\data-integration

Pan.bat /file D:\KF\ETL\kettle_2\sy.ktr /level Detailed /logfile D:\KF\ETL\ETL_Timing_Task_Folder\ETL_Timing_Task.log

@pause

2.注释

打开路径

调用类型 文件 路径 日志详细 日志地址

结束

 

 

3.1.2编辑tjb

1.系统bat可执行文件实例

cd D:\KF\ETL\kettle_2\data-integration

Kitchen.bat /file D:\KF\ETL\kettle_2\00.kjb /level Detailed -logfile D:\KF\ETL\ETL_Timing_Task_Folder\ETL_Timing_Task.log

@pause

2.注释

打开路径

调用类型 文件 路径 日志详细 日志地址

结束

 

3.2系统调用定时任务

1.右击我的电脑管理如图4.1

ETL kettle

图例4.1任务计划程序首页

2.打开定时任务

3.创建定时任务

4.输入执行时间

5.添加可执行程序

6.完成

 

相关文章: