自己开发之前看过了网络上很多文章,大多文章简单直接翻译官网或转载,不适合初学者参考。现自己已经开发成功,将个人对程序的理解贴出给大家做个参考。
有图有真相,程序结构先看图:

Step 类实际要执行的业务逻辑,真对到行级的操作实现processRow方法。
StepData 数据流操作类,可以调用前一步的数据,再把它输出的下一步。
StepMeta 资源调用类,调用设置的资源信息。
Dialog UI设计时用到的类。
StepField 转换步骤附加属性(自己添加)。
具体代码实现接口的方法就行
Step
类
public class GJStep extends BaseStep implements StepInterface {
private GJStepData data;
private GJStepMeta meta;
private static Class<?> PKG = GJStepMeta.class; // for i18n
Data
类
public class GJStepData extends BaseStepData implements StepDataInterface {
public RowMetaInterface outputRowMeta;
Meta
类
public class GJStepMeta extends BaseStepMeta implements StepMetaInterface {
private static Class<?> PKG = GJStepMeta.class;
Dialog
类
public class GJStepDialog extends BaseStepDialog implements StepDialogInterface {
private static Class<?> PKG = GJStepMeta.class; // for i18n
有图有真相,整个工程结构
再看图:

工程编译,
当代码完成后可以直接打包,放到
kettle
的运行工程中使用。
有图有真相,目录结构
还看图:
其中
*.jar
为自己制作的
step
代码,
*.png
为显示图标,
plugin.xml
为配置文件主要是指定显示位置等:

有图有真相,展现效果
打开
UI
效果如下:

心得总结:
Kettle
的插件开发并不难,主要是弄清楚各个部分的代码结构和作用。希望本文能给初学者一下帮助。
分享到:
相关推荐
这个压缩包为学习者提供了15个实际操作的Kettle程序实例,旨在帮助用户通过实战演练掌握Kettle的使用技巧和工作原理。 Kettle的核心概念包括: 1. **转换(Transformation)**:这是Kettle处理数据的主要单元,...
源码中,可以研究 PluginRegistry 和 StepMetaInterface 类来了解如何注册和实例化插件。同时,通过查看 Transformer 和 ETL Metadata Injection 模块,可以深入理解如何将元数据注入到数据处理流程中,以实现动态...
5. `kettle-plugin-api.jar` 和 `kettle-plugin-rules.jar`: 支持插件系统的API和规则。 6. `kettle-engine-test.jar` (可选): 如果需要进行单元测试。 将这些jar包添加到Java项目的类路径中,可以通过Maven或...
Kettle,又称为PDI(Pentaho Data Integration),是一款开源的数据集成工具,它主要用于数据抽取、转换和加载(ETL)。Kettle最初由一家名为Pentaho的公司开发,并于2006年加入Pentaho开源BI(Business ...
Kettle是一款强大的ETL(Extract, Transform, Load)工具,用于数据抽取、转换和加载。Java作为广泛应用的编程语言,能够与Kettle结合,实现灵活的数据处理和自动化工作流。 1. Java与Kettle的集成原理: Kettle...
Kettle是一款强大的ETL(提取、转换、加载)工具,由社区驱动的Pentaho公司开发,它允许用户从各种数据源抽取数据,进行清洗、转换,并将其加载到目标系统,如数据仓库或数据湖。 在压缩包中的文件名称列表中,我们...
Kettle是一款强大的ETL(提取、转换、加载)工具,它使用脚本语言(.ktr和.kjb)来定义数据处理流程。在Java应用程序中调用Kettle,可以利用其丰富的数据处理功能,实现数据转换和整合的自动化。 要成功地在Java中...
1. **连接配置**:插件应允许用户配置Elasticsearch集群的相关信息,如节点地址、端口、索引名称、类型等,以便Kettle能正确地连接到Elasticsearch实例。 2. **数据预处理**:在批量插入之前,Kettle可能提供了数据...