kettle整合 java代码

需求: 

   通过kettle脚本控件调用java项目的中方法 大体流程如下

    

步骤:

 创建输入

输入->自定义常量数据,  元数据2列 key,value

 ​​​​​​​​​​​​​​

创建java 代码

1 添加控件 脚本->java 代码

2 选用主程序,双击code snippits->common use->mian 方法,会再processor中创建processRow方法用于处理每一行数据

3 将java项目打包,并添加到lib下面,重启kettle,就可以加载自定义的类,例如我用到的StringUtil

中一个获取当前日期的方法genDate()

4 再processor 中引入我们自定义类,并在代码中调用自定义的方法

import com.yatsenglobal.mall.util.StringUtil;
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException {
  if (first) {
    first = false;

  }
  //获取行数据
  Object[] r = getRow();

  if (r == null) {
    setOutputDone();
    return false;
  }

  // It is always safest to call createOutputRow() to ensure that your output row's Object[] is large
  // enough to handle any new fields you are creating in this step.
  //创建输出结果
  r = createOutputRow(r, data.outputRowMeta.size());
  //调用自己jar中的函数
  String a=StringUtil.genDate();
  //对输出的结果value进行赋值
  get(Fields.Out, "value").setValue(r,a);
  // Send the row on to the next step.
  putRow(data.outputRowMeta, r);

  return true;
}


 创建输出

流程->空操作,对数据不做处理

看到这里大家都还有很多问号,这个code snippits 下很多函数怎么使用,贴上官方文档,只能找到部分用法,  函数直接点击,就会在processor中生成对应的代码。

自定义java类​​​​​​​   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值