KETTLE-作业-脚本组件

KETTLE-作业-条件组件

条件组件

Shell

Shell

  • 执行shell脚本,日志可输出控制台或日志文件
  • Insert script为不执行脚本文件,可以在Script区编写shell脚本内容
  • Script file name为选择要执行脚本文件,$ {Internal.Job.Filename.Directory} 为当前作业的目录,默认:${user.dir}为data-integration安装目录
  • Logging settings为定义日志文件,在${user.dir}生成日志文件,Append logfile?为日志追加,Extension of logfile为文件类型后缀(推荐.log/.txt)
  • Copy previous results to args?为与转换的 Copy rows to result组件配合使用,将复制的result作为参数传递到shell
  • Execute for every input row?为上个步骤返回多条流数据,每一行都执行一次shell脚本,且将这一行的数据作为参数传递
  • Fields为传递到shell脚本的参数,window(%1、%2),linux($1、$2)

JavaScript

支持使用java类以及方法,如equals
变量用var声明

语法描述
parent_job当前作业,对应 org.pentaho.di.job.Job类
new Number(var)数据类型转换
parent_job.getVariable(var)、${var}获取变量
parent_job.setVariable(var,value)设置变量
true、false对应成功返回、失败返回
is_windows是否为Window系统(boolean)
previous_result.getResult()上一个作业组件的执行结果状态(boolean,true:成功,false:失败)
previous_result.getExitStatus()、exit_status获取最近一个shell组件的执行结果状态(int,0:成功,1:失败)
previous_result.getEntryNr() 、nr获取前面组件总数(不包含某些组件:write to log等辅助性组件),发现在shell组件之前获取,总是返回0,在之后能正常获取到(int)
previous_result.getNrErrors()、errors获取上一个 作业组件返回的异常数,连线必须为异常连线;如果不连异常线而是成功线,可在write to log组件使用${nrErros}获取异常数(long)
previous_result.getRows()获取上一个转换组件的结果行,该转换需使用Copy rows to result组件(对应java类 RowMetaAndData,通过row[index].getString(key,normalValue)来获取属性值)
previous_result.isStopped()获取上一作业组件是否停止(boolean)
previous_result.getLogChannelId()获取上一个作业组件的日志通道ID,可以使用它来查找日志通道日志表中的具体信息,需要作业和转换配置日志记录功能(string)
previous_result.getLogText()获取上一个作业组件及其子子孙孙组件的日志文本,仅仅包含组件输出的信息(string)
previous_result.getResultFilesList()获取在此之前所有组件中使用的所有文件的列表(对应java类ResultFile)
lines_input、previous_result.getNrLinesInput()从数据库或文件读取的行数(long),实际无效
lines_output、previous_result.getNrLinesOutput()写入数据库或文件的行数(long),实际无效
lines_read、previous_result.getNrLinesRead()从上一个转换步骤读取的行数(long),实际无效
lines_updated、previous_result.getNrLinesUpdated()数据库表中更新的行数(long),实际无效
lines_written、previous_result.getNrLinesWritten()写入下一个转换步骤的行数(long),实际无效
previous_result.getNrLinesDeleted()、lines_deleted数据库表中删除的行数(long),实际无效
previous_result.getNrLinesRejected()拒绝的行数并通过错误处理传递给另一个步骤(long),实际无效
files_retrieved、previous_result.getNrFilesRetrieved()从FTP服务器检索的文件数(int),待测试

遗留

  • JavaScript组件中获取数据库、文件操作行数,测试不出效果问题解决思路

资料

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值