kettle读取json文件并读取数据_kettlePlugins

本文介绍了如何使用kettle通用插件开发自定义功能,特别是通过JSON配置文件读取数据。文章详细阐述了开发步骤,包括环境准备、安装Kettle的jar包、开发流程和自定义插件的实现。此外,还提供了REST接口和Excel输入的示例配置,并提到了数据输出到JSON文件的选项。
摘要由CSDN通过智能技术生成

kettlePlugins

kettle通用插件,通过json配置文件实现自定义插件的开发。

开发步骤

下载本插件源码

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

环境准备

安装maven、jdk8

略……

安装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

开发流程

1、使用Eclipse或者IDEA引入项目

2、修改pom中kettle版本号以及kettle安装目录

3、可以直接编译(mvn clean package)后,打开kettle检查是否成功:在转换的插件类别CommonPlugin下

自定义插件开发

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文件,这样便可以在选择该插件类别的时候自动加载默认配置)

已有插件的使用

自定义输入类型

目前已实现从rest接口读取数据到字段、通过sax方式解析excel到多个字段。

1)rest输入默认配置如下:

{

"inputType":"rest",

"url":"",

"method":"get",

"params": {},

"resultField":"result"

}

其中,

method为post的时候,参数params才有效。

resultField表示结果字段名称。

2)excel输入的默认配置如下:

{

"inputType":"excel",

"filename":"",

"header":true,

"outputFields":[

{"name":"col1", "type": "String"},

{"name":"col2", "type": "String"},

{"name":"col3", "type": "String"}

]

}

其中,

header为true表示有表头,为false表示没有表头。

outputFields是指定的输出字段列表,可以跟表头字段不一致,如果想使用excel的表头字段作为输出字段,那么可以将header设置true,同时将outputFields设置为[]或者删掉。

输出到json文件

支持将数据输出到json对象或者json数组。默认配置如下:

{

"outputType":"array",

"fileName":"your-json-filename.json",

"fieldName":"data",

"batchSize": 1000

}

其中,

outputType可选“object”和“array”,分别表示输出为json对象和数组。

fieldName是输出为json对象所指定的名称,所有数据流以数组的形式作为value(形如{"data": []}),当outputType为object时有效。

batchSize表示多少行数据写一次文件。

其他

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值