简单的ava代码插件示例
因为有时候需要定制化对数据处理,部分插件不好使用使用,例如生成雪花算法的id。
所以才有这篇文章,便于才使用ckettle的小伙伴们学习,如何使用java代码这个插件。
先创建对应的项目(我这里是maven项目),然后创建对应的类。方便我们使用,然后将写完的项目打包成jar。放到CKettle的lib目录下。
然后打开CKettle,新建转换。拖出对应要使用的插件,我这里就使用自定义常量,java代码,空操作,三个插件,用于演示java代码的使用。
接下来就是java代码插件的编写工作,首先先点击常用类里面的main方法,而这方法不是我们常用的main方法。而是一个processRow方法。写过插件的小伙伴应该对这个方法挺熟悉的。这是一个处理行数据的方法,也是一个插件的主要方法。
在这里我讲解一下这个方法,processRow是对 行 数据的处理!如何有三条 数据
name age
张三 23
李四 24
王五 25
这里我们可以看到这里是三行数据。所以第一行数据 张三 23 是首先进入这个方法。然后接着就是 李四 24,再就是 王五 25。
这个方法作业就是对每行数据进行处理!每行数据都会执行该方法。
接下来就是参数解释,
first 是一个内置的属性。表示是否是第一行数据!,所以进入后会把置为flase,因为以后的数据都不是第一条数据,在这个判断用于初始化;
smi 和sdi我就不详细解释了,就是要开发插件时候,要写的类,嗯,开发过插件的都应该知道
给一个链接,里面有processRow常见方法
https://blog.csdn.net/csdn0214/article/details/100239823
对了注意一件事,在方法内部(除了first判断内部)生成对象,每一行数据都会生成一个对象!!!
所以我这里是个错误的示范,正确的是first方法内部,或在方法外,如图所示
然后 get(Fields.Out, “SnowFlakeId”).setValue(r, id);
添加列,比如上面三条数据,可以对应加id
这样简单的java代码插件的示例就写完了,感谢你的阅读,如果觉得写的不错,请帮忙点赞,分享。评论。谢谢。