ETL kettle

1介绍

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

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

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

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

 

2研究实例

2.1 Spoon.bat首页(如图1.1)

图例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文件路径和对应要输入的字段信息。

 

图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)

图例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)

图例2.3输出字段界面

 

 

2.1.2jobs内功能

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

图例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

图例4.1任务计划程序首页

2.打开定时任务

3.创建定时任务

4.输入执行时间

5.添加可执行程序

6.完成

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值