kettle通用插件,通过json配置文件实现自定义插件的开发,配置中所有内容都支持变量形式。
通过git方式下载或者直接下载zip文件。
略……
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.version>号以及kettle安装目录<kettle.home>
3、可以直接编译(mvn clean package)后,打开kettle检查是否成功:在转换的插件类别CommonPlugin下
1、首先创建一个类继承nivalsoul.kettle.plugins.common.CommonStepRunBase
2、重写disposeRow()方法,用于处理每一行数据,该部分可以参考已有插件的实现方式
3、如果需要,可以重写init()和end()方法做一些初始化和清理操作
4、编译打包插件,确保插件已放入kettle的plugins文件夹下
5、重启kettle,在转换的插件类别CommonPlugin下拖拽插件到转换图流程图中,配置说明如下:
目前已实现从rest接口读取数据到字段、通过sax方式解析excel到多个字段。
1)rest输入默认配置如下:
{
"inputType":"rest",
"url":"",
"method":"get",
"headers": {},
"useSSL": false,
"loginUser": "",
"loginPass": "",
"params": {},
"isUploadFile": false,
"files": ["D:/aa.txt","E:/c.jpg"],
"resultField":"result"
}
其中,
2)excel输入的默认配置如下:
{
"inputType":"excel",
"filename":"",
"header":true,
"sheetNum": 0,
"outputFields":[
{"name":"col1", "type": "String"},
{"name":"col2", "type": "String"},
{"name":"col3", "type": "String"}
]
}
其中,
支持将数据输出到json对象或者json数组。默认配置如下:
{
"outputType":"array",
"fileName":"your-json-filename.json",
"fieldName":"data",
"batchSize": 1000
}
其中,
支持输出到hive的textfile/orc/parquet三种类型表,也可以只输出到对应的三种格式hdfs文件,不创建hive表。默认配置如下:
{
"hadoopUserName":"hive",
"hdfsUrls":"192.168.100.11:8020;192.168.100.12:8020",
"hdfsFileName":"/tmp/hiveload/aaa.orc",
"hiveDriver":"org.apache.hive.jdbc.HiveDriver",
"hiveUrl":"jdbc:hive2://192.168.100.11:10000/default",
"hiveUser":"hive",
"hivePassword":"hive",
"createTable":"true",
"tableType":"orc",
"hiveTable":"xuwl_orc",
"partitionField":[
{"name":"dt", "type":"string"}
],
"partitionValue":[
{"name":"dt", "value":"2019-12-04"}
],
"overwrite":"true",
"fieldSeparator":"\t",
"lineSeparator":"\n"
}
其中,
该插件未包含hadoop和hive相关的jar包,如果之前没有添加可能报错,需根据自己集群版本添加相应的jar包到kettle/lib下,主要是hadoop-auth-2.6.0.jar、hadoop-common-2.6.0.jar、hadoop-hdfs-2.6.0.jar、hive-exec-2.1.0.jar、hive-jdbc-1.1.0-cdh5.10.0.jar、protobuf-java-2.5.0.jar、htrace-core4-4.0.1-incubating.jar、fastjson-1.2.7.jar、servlet-api-2.5.jar等,如果还差看具体报错情况添加。 以上jar可以在kettle自带的bigdata插件里面或者大数据集群安装包里面找到,这里有一份:https://yun.baidu.com/s/1zxnUL48ZiWWUnWLfknAx4g 密码:hetg
支持从HDFS读取单个text文件。默认配置如下:
{
"hdfsUrls":"10.6.1.19:8020;10.6.1.20:8020",
"fileName":"/tmp/aa.txt",
"fileType":"text",
"fieldSeparator":"\t",
"lineSeparator":"\n",
"outputFields":[
{"name":"id", "type":"Integer"},
{"name":"xm", "type": "String"},
{"name":"age", "type": "String"},
{"name":"title", "type": "String"}
]
}
其中,
该插件也需要hadoop相关的jar包,同前面的[输出到hive表]。
支持中文简繁体转换,汉字转拼音,base64编码解码,MD5,sha256加密等。配置如下:
{
"changeConfig": [
{"inputField": "field1", "changeType": "sc2tc", "outputField": "field2"},
{"inputField": "field3", "changeType": "hz2py", "outputField": "field4"}
]
}
其中,inputField为需要转换的字段,outputField为转换后的新字段名,可以与inputField相同。 changeType为转换类型,含义如下:
如果大家在开发中遇到什么问题,可以加QQ群(195548102)咨询。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。