Kettle开发体系是基于插件的,平台自身提供接口,开发者按照规范实现接口就能进行插件的开发。在Kettle8.1的官方文档上有关于插件非常详细的介绍,如果有任何疑问可以先去官方文档查看。下面先介绍一下需要进行插件开发最基本的原理。
插件类型
在Kettle中插件涵盖以下四种类型:
1.步骤插件:Kettle中转换的核心对象
2.作业输入插件:Kettle中作业的核心对象
3.数据库插件:数据库连接中的增加新的自定义连接
4.分区插件
自定义插件核心组件
这里只介绍转换步骤插件的开发流程。
转换步骤插件实现ETL数据流中数据处理的任务。转换步骤是为输入、处理或输出而设计的。输入步骤从外部数据源(例如文件或数据库)获取数据行。处理步骤使用数据行、执行字段计算和流操作,例如加入或过滤。一个转换步骤插件至少需要实现四个接口
org.pentaho.di.trans.step.StepMetaInterface:元数据的处理,加载xml,校验,主要是对一个步骤的定义的基本数据。
org.pentaho.di.trans.step. StepDataInterface:数据处理涉及的具体数据,以及对数据的状态的设置和回收。
org.pentaho.di.trans.step. StepInterface:负责数据处理,转换和流转。这里面主要由processRow()方法来处理。
org.pentaho.di.trans.step. StepDialogInterface:提供GUI/dialog,编辑步骤的元数据。
对于以上四个接口的实现,都有相应的基类,具体的步骤只需要继承基类和实现相应的接口即可。
Step扩展接口:
Java 接口 |
基类 |
主要功能 |
StepMetaInterface |
BaseStepMeta |
存储step设置信息 验证step设置信息 序列化step设置信息 提供获取step类的方法 |
StepDialogInterface |
BaseStepDialog |
step属性信息配置窗口 |
StepInterface |
BaseStep |