logo资料库

kettle插件开发(原创).pdf

第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
资料共17页,剩余部分请下载后查看
1 Kettle
1.1 Kettle介绍
1.2 Kettle组件
1.3 Kettle插件
2 Kettle转换步骤插件开发
2.1 Kettle转换步骤插件开发概述
2.1.1 Kettle转换步骤插件至少需要实现四个接口
2.1.2 Kettle转换步骤插件各个类命名推荐规则
2.2 Kettle转换步骤插件开发例子
2.2.1 Kettle转换步骤插件初步开发
2.2.2 Kettle转换步骤插件功能完善
2.2.2.1 Kettle转换步骤插件入口UrlContentValidatePluginMeta
2.2.2.1.1 入口UrlContentValidatePluginMeta作用和主要方法说明
2.2.2.1.2 入口调用UrlContentValidatePluginDialog
2.2.2.1.3 入口调用UrlContentValidatePluginData
2.2.2.1.4 入口调用UrlContentValidatePlugin
2.2.2.2 Kettle转换步骤插件界面UrlContentValidatePluginDialog
2.2.2.2.1 界面开发
2.2.2.2.2 界面数据传入到UrlContentValidatePluginMeta
2.2.2.3 Kettle转换步骤插件基础数据保存和解析
2.2.2.3.1 Kettle转换步骤插件基础数据XML格式保存和解析
2.2.2.3.2 Kettle转换步骤插件基础数据资源库格式保存和解析
2.2.2.4 Kettle转换步骤插件供给下转换步骤的元数据
2.2.2.5 Kettle转换步骤插件运行过程中遍历行级数据
2.3 Kettle转换步骤插件部署
Pantaho Kettle 插件开发 2012 年 03 月 文文档档修修改改记记录录 修订说明 初稿 版本 修订人 吴仲文 1.0 1.1 吴仲文 加入 kettle 介绍,本插件隶属范围 批准人 发布日期 20120328 20120329
目 录 1 Kettle 1.1 1.2 1.3 ......................................................................................................................................... 3 Kettle介绍 Kettle组件 Kettle插件 ............................................................................................................... 3 ............................................................................................................... 3 ............................................................................................................... 3 2 Kettle转换步骤插件开发 ......................................................................................................... 4 Kettle转换步骤插件开发概述 2.1 2.2 2.3 2.1.1 2.1.2 2.2.1 2.2.2 Kettle转换步骤插件至少需要实现四个接口 Kettle转换步骤插件各个类命名推荐规则 ............................................................................... 4 ....................................... 4 ........................................... 4 ............................................................................... 5 ............................................................. 5 ............................................................. 7 ..................................................................................... 15 Kettle转换步骤插件开发例子 Kettle转换步骤插件初步开发 Kettle转换步骤插件功能完善 Kettle转换步骤插件部署 Pantaho Kettle 插件开发 2
1 Kettle 1.1 Kettle 介绍 Kettle 也叫 PDI,在 2006 年 kettle 加入了开源的 BI 组织 Pantaho,正式命名为 PDI(Pantaho Data Integeration),而 kettle 是“Kettle E.T.T.L.Envirnoment”的缩写。 kettle 是一款国外开源的 ETL(Extract Transform Load)工具,纯 java 编写,可以在 Window、 Linux、Unix 上运行,绿色无需安装,被设计用来抽取、转换、装入和加载数据,可以形象 的理解为将各种数据放入到一个壶里面然后以一种指定的格式流出来。 Kettle 中有两种脚本文件,transformation 和 job,transformation 完成针对数据的基础转 换,job 则完成整个工作流的控制。 1.2 Kettle 组件 1. Spoon:一个图形用户界面,用来运行 transformation(转换)和 job(任务),其中 transformation 是用 Pan 工具来运行,任务是用 Kitchen 来运行。 2. Pan:一个数据转换引擎,主要用来执行数据源读取,操作和写入数据等等功能。 3. Kitchen:一个运行任务(利用 XML 或数据资源库描述)的工具。 1.3 Kettle 插件 Kettle 本身提供了很多组件,多个组件一起构成一个 transformation(转换),多个转换 一起构成一个 job(任务)。kettle 的组件已经非常丰富,在组件不满足需求时可以在 kettle 上面开发自己的组件,kettle 支持的组件开发如下: Pantaho Kettle 插件开发 3
注意:本文档接下来的内容只讲解“转换步 骤插件”开发 2 Kettle 转换步骤插件开发 2.1 Kettle 转换步骤插件开发概述 2.1.1 Kettle 转换步骤插件至少需要实现四个接口 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,编辑步骤的元数据。 对于以上四个接口的实现,都有相应的基类,具体的步骤只需要继承基类和实现相应的 接口即可。 2.1.2 Kettle 转换步骤插件各个类命名推荐规则 stepInterface 的实现类以插件的功能相关命名:*.java stepDataInterface 的实现类:*Data.java stepMetaInterface 实现类:*Meta.java StepDialogInterface 的实现类:*Dialog.java Pantaho Kettle 插件开发 4
2.2 Kettle 转换步骤插件开发例子 本例子主要实现功能:将输入的 HTTP URL 列表供后续步骤使用。 2.2.1 Kettle 转换步骤插件初步开发 1.在“src-plugins”下创建文件夹“kettle-urlContentValidate-plugin”,然后依次创建上面 四个接口类的实现,如下图: 2.上图中四个类实现的接口在 kettle 中已经有实现类,在实际开发中我们继承就可以了, 简单截图如下: 3.在“plugins”子文件夹“step”下建立文件夹“UrlContentValidatePlugin”,增加的配置 文件截图如下: Pantaho Kettle 插件开发 5
4.修改“plugin.xml”配置内容如下 5.将创建的源代码加入“java build path” 6.到目前为止一个初步的转换步骤插件开发已经完成,编译运行 kettle(kettle 入口为 Spoon.java),可以在 kettle 中看到如下界面: Pantaho Kettle 插件开发 6
2.2.2 Kettle 转换步骤插件功能完善 2.2.2.1 Kettle 转换步骤插件入口 UrlContentValidatePluginMeta 2.2.2.1.1 入口 UrlContentValidatePluginMeta 作用和主要方法说明 Kettle 转换步骤插件入口 UrlContentValidatePluginMeta 本身提供基础数据的配置,同时 负责调用 UrlContentValidatePluginDialog 展现界面,负责调用 UrlContentValidatePluginData 保 存中间处理数据,负责调用 UrlContentValidatePlugin 在运行的过程中遍历行级数据。 Pantaho Kettle 插件开发 7
2.2.2.1.2 入口调用 UrlContentValidatePluginDialog 1. 每一个开发的转换 kettle 都会为之添加一个代理,让我们看看代理的代码(以下代码为 kettle 源代码,在这里拿出来主要是为了讲解调用原理,无需手动添加) 从上面的代码我们看到代理会通过 StepMetaInterface 实现类中的 getDialogClassName() 找到 SWT 界面类名称 UrlContentValidatePluginDialog,然后反射 SWT 界面类中的固定方法 public StepDialogInterface getDialog(Shell shell, StepMetaInterface meta,TransMeta transMeta, String name) 2. 接着看看 org.pentaho.di.trans.stepBaseStepMeta 中的 getDialogClassName()(以下代码为 kettle 源代码,在这里拿出来主要是为了讲解调用原理,无需手动添加) Pantaho Kettle 插件开发 8
分享到:
收藏