kettle组件开发小结

   kettle是一款优秀的开源ETL工具,它本身提供了丰富的组件去做数据库数据抽取、清洗和转换等一些操作,但并不是对所有的情况它都能满足。当kettle本身的组件不满足你的要求时,就需要自己开发一些组件,那么怎么去开发一个组件呢?下面我们来看一下。

kettle组件涉及的类

   我们说的kettle组件就是一个step,它有四个类构建而成,每个类职责不同,各司其职。

BaseStep:步骤类,实现了StepInterface接口,它是每个组件实际的业务处理类,组件的功能在这个类里实现。

BaseStepMeta:步骤元数据类,实现了StepMetaInterface接口,它的职责是保存和序列化组件的配置。

BaseStepData:步骤数据类,实现了StepDataInterface接口,用于存放每个组件在执行过程中的数据。

BaseStepDialog:步骤界面类,实现了StepDialogInterface接口,实现组件和用户进行交互的界面,提供一个对组件进行配置的界面。

   个人认为,以上四个类说白了BaseStepDialog就是要用来设计组件的界面,定义组件有哪些属性和配置,用户通过这个界面配置好组件后,BaseStepMeta会把组件的配置进行持久化操作,保存到数据库和xml文件中。组件执行时,实际上就是执行BaseStep类,这个类去读取组件的配置信息,并依据配置信息完成相应的业务逻辑,BaseStepData在执行时可以缓存一些全局的数据。下面是这四个类的一些重要的方法的说明。

BaseStep:

//初始化步骤类,可以去获取组件的配置信息,并对配置信息进行数据校验。

public boolean init(…)

//步骤执行完后释放资源,如数据库连接等
public void dispose(..)

//业务处理方法,实现组件的功能
public boolean processRow(..)

BaseStepMeta:

// keep track of the step settings
public String getOutputField()
public void setOutputField(…)
public void setDefault()

// serialize the step settings to and from xml
public String getXML()
public void loadXML(…)

// serialize the step settings to and from a kettle repository
public void readRep(…)
public void saveRep(…)

// provide information about how the step affects the field structure of processed rows
public void getFields(…)

// perform extended validation checks for the step
public void check(…)

// provide instances of the step, data and dialog classes to Kettle
public StepInterface getStep(…)
public StepDataInterface getStepData()
public StepDialogInterface getDialog(…) 

BaseStepData:

   主要存放缓存数据,自己发挥。

BaseStepDialog:

   使用swt在open(..)方法里进行界面设计,自己发挥吧。

 

    对这四个类有了初步的了解之后,我们来看看怎么去开发自己的组件。

    首先,我们要创建四个类,类名要遵循kettle约定类得命名规则,如:假设步骤类类名为Compress,那么元数据类为CompressMeta,数据类为CompressData,界面类为CompressDialog。这四个类分别继承BaseStep、BaseStepMeta、BaseStepData、BaseStepDialog类。

    接下来分别去实现这些个类的主要方法,这里不再多说。下节我会说一些组件开发中遇到的问题。  

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值