文档章节

kettle通用插件[kettlePlugins]使用说明

空山苦水禅人
 空山苦水禅人
发布于 2018/02/09 14:40
字数 855
阅读 1228
收藏 2

1、下载插件源码

项目地址:https://gitee.com/nivalsoul/kettlePlugins

通过git方式下载或者直接下载zip文件。

2、环境准备

2.1 安装maven、jdk8

确保maven和jdk(最好是1.8)已安装好,并设置好环境变量,过程略……

2.2 安装kettle的jar包到本地maven仓库

1、首先下载kettle6或者7的发行包,并解压到指定目录
2、使用如下命令安装jar(定位到kettle/lib下或者修改脚本中jar包的路径,或者将以下jar拷贝到自定义的目录中后执行,其中,swt-6.1.0.1-196.jar是libswt目录下相应Windows平台文件中的swt.jar,为了统一需要拷贝重命名一下,下面以6.1.0.1-196版本为例):

mvn install:install-file -Dfile=./kettle-core-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=kettle-core -Dversion=6.1.0.1-196 -Dpackaging=jar
mvn install:install-file -Dfile=./kettle-dbdialog-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=kettle-dbdialog -Dversion=6.1.0.1-196 -Dpackaging=jar
mvn install:install-file -Dfile=./kettle-engine-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=kettle-engine -Dversion=6.1.0.1-196 -Dpackaging=jar
mvn install:install-file -Dfile=./kettle-ui-swt-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=kettle-ui-swt -Dversion=6.1.0.1-196 -Dpackaging=jar
mvn install:install-file -Dfile=./pentaho-metadata-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=pentaho-metadata -Dversion=6.1.0.1-196 -Dpackaging=jar
mvn install:install-file -Dfile=./metastore-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=metastore -Dversion=6.1.0.1-196 -Dpackaging=jar
mvn install:install-file -Dfile=./swt-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=swt -Dversion=6.1.0.1-196 -Dpackaging=jar

3、开发流程

1、修改pom中kettle版本<kettle.version>号(与上述mvn install指定的一致)以及kettle安装目录<kettle.home>
2、使用Eclipse或者IDEA引入项目
3、可以直接编译(mvn clean package)后,启动kettle检查是否成功:在转换的插件类别CommonPlugin下:

4、已实现的插件demo有【自定义输入类型】(从rest读取数据流和从csv通过sax方式读取数据流)和【输出到json文件】(支持输出为数组或者指定字段名的object格式):

4、自定义插件开发

1、首先创建一个类继承nivalsoul.kettle.plugins.common.CommonStepRunBase
2、重写disposeRow()方法,用于处理每一行数据,该部分可以参考已有插件的实现方式
3、如果需要,可以重写init()和end()方法做一些初始化和清理操作
4、编译打包插件,确保插件已放入kettle的plugins文件夹下

  • 其中用到的poi依赖版本为3.17,httpmine为4.5.1,如果需要使用自定义输入的excel/rest输入,则需要放到kettle/lib下
  • 另外还用到了fastjson和guava,如果原来没有也需要放到kettle/lib下

5、重启kettle,在转换的插件类别CommonPlugin下拖拽插件到转换图流程图中,配置说明如下:

  • 插件类型直接选择“自定义”(如果想指定为特有名称,可以在nivalsoul.kettle.plugins.common.PluginType枚举中增加相应的名称即可)
  • 自定义类名填写上述自己创建的类全路径
  • 配置部分格式为json,内容为在自定义插件中所使用到的配置字段信息(如果在插件类型中新增了自己的特有插件名称,同时也可以在resource下新增与插件枚举名相同的配置json文件,这样便可以在选择该插件类别的时候自动加载默认配置)

注:该部分可以参考已实现插件。

5、其他

如果大家在开发中遇到什么问题,可以加QQ群(195548102)咨询。

© 著作权归作者所有

共有 人打赏支持
空山苦水禅人
粉丝 18
博文 19
码字总数 12245
作品 0
成都
后端工程师
私信 提问
ETL Pentaho代码学习笔记

1、通过设置KETTLE_HOME环境变量可以让.kettle不需要在user.home下 2、默认kettlehome 为User.home,如果要自定义需要设置环境变量KETTLEHOME 3、在.kettle目录下可放置以下文件或目录: 文件...

小骏骏
2014/12/17
0
0
Kettle 6.x 源码开发环境搭建

1、引言 Data Integration - Kettle 作为免费开源的ETL工具,可以通过其桌面程序进行ETL步骤的开发并执行。kettle以插件形式来实现每个转换步骤的工作,发行版中已经提供了常用的转换清洗插件...

空山苦水禅人
2016/11/02
2.9K
6
Kettle 学习知识总结(三)

接kettle学习知识总结(一) 【注意事项】 1、 如果kettle 转化过程中,要将一张表中数据转化到另一张不同的数据结构表中,最好在进行“表输入”或者“插入/更新”前加入字段选择插件,通过字...

gerry_pang
2014/04/03
0
0
解决kettle调度效率低,不可高并发调度方法

“我在spoon里面运行一个作业只要几秒种,但是在命令行中运行却要好几十秒?” “并行同时运行几个job,就把内存撑爆了,Kettle好占资源呀!” Kettle作为用户规模最多的开源ETL工具,强大简...

波波夫空袭
2017/10/31
0
1
Kettle 的 Web 端管理工具--Kettle-Manager

平台简介 出发点 专门为kettle这款优秀的ETL工具开发的web端管理工具。 kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用的都是使用客户端操作管理,但问题是当投入生产环境...

马进举
2016/11/23
7.5K
5

没有更多内容

加载失败,请刷新页面

加载更多

Nextjs+React非页面组件SSR渲染

@随风溜达的向日葵 Nextjs Nextjs是React生态中非常受欢迎的SSR(server side render——服务端渲染)框架,只需要几个步骤就可以搭建一个支持SSR的工程(_Nextjs_的快速搭建见Next.js入门)...

随风溜达的向日葵
12分钟前
0
0
如何在 Linux 系统查询机器最近重启时间

在你的 Linux 或类 UNIX 系统中,你是如何查询系统上次重新启动的日期和时间?怎样显示系统关机的日期和时间? last 命令不仅可以按照时间从近到远的顺序列出该会话的特定用户、终端和主机名...

来来来来来
今天
2
0
Redis协议是什么样的

前言 我们用过很多redis的客户端,有没有相过自己撸一个redis客户端? 其实很简单,基于socket,监听6379端口,解析数据就可以了。 redis协议 解析数据的过程主要依赖于redis的协议了。 我们...

春哥大魔王的博客
今天
4
0
乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxCool
今天
4
0
携程Apollo统一配置中心的搭建和使用(java)

一.Apollo配置中心介绍 1、What is Apollo 1.1 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到...

morpheusWB
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部