相关文章推荐
不开心的消防车  ·  kettle(MalformedByteSe ...·  24 分钟前    · 
行走的甘蔗  ·  android - Why ...·  12 月前    · 
成熟的饭盒  ·  inheritance in Window ...·  12 月前    · 



KETTLE-作业-条件组件

  • 条件组件
  • Shell
  • JavaScript
  • 遗留
  • 资料


条件组件

Shell

kettle 中如何写 java脚本 kettle的两种脚本_KETTLE

  • 执行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组件中获取数据库、文件操作行数,测试不出效果 问题解决思路

资料


springboot国际化mvc

springboot 项目中实战演练,功能有参数非空校验、默认国际化、正常返回参数国际化、抛异常后信息国际化、全局异常后继续切面拦截国际化、动态参数国际化等后端各个方面的实战。1、新建springboot微服务,pom中jar的基本引用<parent> <groupId>org.springframework.boot</groupId>